/dis/ - Discussion

Password (For file deletion.)


Lately I've been fascinated by the idea of body part lego, where bodies can be systematically designed by snapping together the appropriate parts. For example, we might have an RPG game where character creation allows you to create a two-headed cyclops centaur whose hind legs are steam-punk prosthetic machine legs. The idea isn't to just have a list of body plans like minotaur and mermaid, but to give the players a system for building up their characters out of pieces, like putting an extra hand growing out of their character's forehead, or an arm coming out of the middle of his chest.

The whole system would be computerized so that an RPG game could determine the capabilities of a character using rules based on what sort of body they have. The game would be able to calculate how fast a centaur would run based on how many legs it has, and it could have mechanics for how amputations affect gameplay.

Another possibility for such a system would be to automatically construct a 3D model to represent the person. It shouldn't be hard to take existing 3D models of people and break them apart so they can be re-assembled in any way imaginable.

Even though this is a simple concept, the details of such a system can be daunting. How does one make a list of all the places where someone might have an extra limb, especially when each extra limb adds more places. How do we organize all this information so that it's easy to understand and ready to use for a computer?

Has this already been done somewhere? Has anyone heard of something like this, or made something like this already?


So... Spore on steroids, then?


Breaking and reassembling model is not really possible because 3d models are just hollow surfaces they have nothing inside.

I guess at most what can be done relatively easy is to use some kind of building blocks that have several flat, non bending surfaces and you can attach other blocks to those surfaces. so you could stack shoulders or torsos on top of each other to make human centipede
or replace hands with heads

I woud say that Minecraft is closest to this concept

something similar is already done in 3d modeling software like daz3d under that mane of "geografts"
however this system does not allow to place anything anywhere you need co construct replacement for single specific place of attachment my matching loop of vertices.

determining character capabilities is practically impossible because you cant even tell what kind of behavior will be optimal for that character.
like if you replaced legs with hands it will be hard to decide if it is better to move on all four or just use 2 hands as legs and keep other 2 free.
not even mentioning issues with bending and strength differences in different positions.
Imagine how woud it feel if your legs were placed backwards, it woud be hard to predict how that woud work.


I have no clue, have you looked at
It makes humans automatically and you can import that into blender for free.

for bodyparts
*Read from



There was a game like this... you'd have bets and if you won could choose what body part you switched.


Good thinking! Spore is an amazing game. The way that it allows such freedom to design creatures and then smoothly animates them is a wonder. In a way it is both less and more than what I'm hoping for.

The way that Spore allows you to drag parts around and precisely position them amazing and fairly unnecessary. If we want to give a person an extra pair of arms growing out of her sides, then there's really no need to worry over whether they are an inch too high or too low. The ability to add parts literally anywhere just makes the system more complicated than it needs to be.

Of course, Spore also has serious limitations. It has no system for amputations or bizarre non-biological parts like prosthetics or limbs made of inanimate materials like water, glass, or stone. There are a whole world of features I would want to add to Spore.

> Breaking and reassembling model is not really possible because 3d models are just hollow surfaces they have nothing inside.

Specifically, a 3D model is a mesh of edges and vertices. What we'd want to do is take that mesh and cut along its edges. For example, to make a centaur, we'd could take a model of a man, find a line of edges that run horizontally around his waist, then remove all the mesh below those edges. Next we take a model of a horse and do something similar around its shoulders. This would give us two partial models with roughly circular holes. We just need to line the holes up and adjust them to exactly fit with each other, and there we have a model of a centaur.

We can do the chopping up of models by hand, and then let the computer select the appropriate parts from the pieces we've made and fuse them together based on the body plan we give it. Mostly we'd be taking human models and cutting many holes in them so the computer can re-assemble them later as needed.

> Determining character capabilities is practically impossible because you can't even tell what kind of behavior will be optimal for that character.

That sound more like an interesting challenge than an impossibility. RPG games always tend to simplify things, so if we can't make the system totally realistic it still wouldn't be a total failure. For example, for speed we could simplify by simply counting the number of legs and assuming that more legs means faster, even if one of those legs happens to be sticking out of the top of your head. Of course, more realistic is always better, but let's not let the perfect be the enemy of the good.


Usually, vertices are not arranged in nice lines and do not form flat slices so it is not that easy to cut models at any place randomly, maybe it would be possible to make some algorithm which can calculate intersection between 2 surfaces, but it will still require considerable human editing

I think you would end with something similar to the lego blocks that can be glued together into something bigger

If you only want to make some random stats this is, of course, no problem at all, but if we want our monstrosity to move and behave somewhat reasonably it will be considerable problem.

I guess it can be somewhat solved by some kind of algorithm where simulator will try to find optimal way to control every arm and leg to maintain balance while moving.


> I think you would end with something similar to the lego blocks that can be glued together into something bigger.

The question is the manner in which they are glued together. It would be simple enough to have a 3D grid of cells into which cube body parts can be placed, but it's not easy to decide how big each cell should be.

For example, we might make the person's trunk 1 cell thick and 2 cells wide. A width of 2 cells nicely gives us room to attach 2 legs at the bottom and 2 breasts on the chest, but where does the head go? There's no middle cell in which to put the neck. So perhaps 3 cells wide, but then the body seems too wide since there's a full cell gap between the legs and between the breasts.

We might solve that problem by allowing part blocks to be attached between cells, so half the part is in one cell and half in the other, and that would allow a head to be centered on top of a 2-block-wide trunk, but there's a another issue that wouldn't be so easily solved by block construction.

In an RPG you want to keep track of each character's situation. For example, if a character loses an arm, the player should be notified of this clearly and concisely. To make this happen, the computer needs to understand changes in the body's structure. It's not enough for the computer to know what the body used to be like and what is like now; the computer needs to recognize the relevant differences between the two.

This is useful not just for telling players about changes to character bodies during play. It's also important for the computer to know the difference between a character's body and a ordinary body, so that the computer can highlight what's special about the character for the player. For example, if there is a human with horns on his head, then it's important for the computer to recognize that only the horns matter, so it doesn't bother showing a full list of all the parts of a perfectly ordinary human and bury the horns as a detail among all the ordinary fingers and toes.

Aside from Spore, there is another game that does something like this: Dwarf Fortress. It keeps track of character bodies down to extraordinary detail, like fingernails and toenails. Even I think that's overkill. Unfortunately it's not easy to discover exactly how it manages this, so it's hard to learn from it.


I think in this situation there is no point using grid
because if you have functional lego style components that can essentially stick to each other of predefined surfaces all you need to do is just stick them together.

so there is no reason why you cannot replace the neck with another leg while head will be stuck in place of the foot. since leg component has its own functionality it will be able to move head just as it was foot.

in that situation, I guess it would be more rational to unify all functional components, and just give set joints sticks, tentacles. while you can put some decorations/tools on their ends.

as you, for example, coud put some horn on the arm and computer will recognize is as possible tools/weapon so when fighting another beast it will use that horn to do damage or for the defense. and just move everything in the way to stab than horn into the opponent
If the character has several heads probably every head would be responsible for control of certain joints so if it gets amputated character loses control over those joints.



DF can get away with that much complexity because it doesn't have graphics. It works by using a hierarchical graph, where a main part houses all other parts. Toe nail is attached to toe attached to foot attached to lower leg and so on. You can easily decipher the hierarchy by looking at the .raw files. Similar system is also present in Rimworld.

Maybe someone should ask Toady how he did the first Slaves to Armok, because it has (rudimentary) 3D graphics *and* amputation mechanics, among other things.

Re: Attachment, I thought Spore's system is good enough? If it's too unnecessary, we can make each vertex of the part's mesh as 'female' attachment points, then assign 'male' attachment points to some other vertex that makes sense (or not).


> It works by using a hierarchical graph, where a main part houses all other parts.

A hierarchy makes a lot of sense, but it has issues because no part of a body is clearly superior to any other. We might say that the head or the chest is superior to the others because we certainly need a brain and a heart, but there's no reason why we shouldn't imagine creatures with two heads and even two chests in a fantasy game. We wouldn't want the system to make that impossible.

> Slaves to Armok

It's so easy to forget that Dwarf Fortress was actually a sequel to an older game. Looking at youtube videos, the original Slaves to Armok is far, far closer to what I was hoping for. If only there was a way to find out how it was made.

> I thought Spore's system is good enough?

Spore's system is amazing. It's a shame they didn't make a better game out of it, but they clearly put such hard work into that system that they didn't have time and money for the rest of the game. Unfortunately it's not clear exactly how Spore makes its amazing creatures happen, so it's difficult to duplicate that miracle.


Who says the main part must be tangible? wink wink


Metal Gear Rising Revengeance has a system where you can cut characters pretty much anywhere with a sword. If you cut their arm a certain way it will be cut that way and it somehow fills the hole.

If you can figure out how they did this...



Honestly, if you are patient enough for DF, someone would eventually implement a 3D graphics representation that should work like how you want it, then you can join the dev team or whatever. Maybe in 15~20 years, ha


3D meshes can be morphed and merged just like any other model, image, dataset... in fact as DAZ was already mentioned, pretty sure that has a mesh morphing function in it somewhere.

And certainly human body models have hierarchical trees defining each major part (starts with torso, then e.g. pelvis, (crotch...) thigh, knee, shin, angle, foot, toes... or chest, (breasts..) shoulders, neck, head... etc), so why not have the ability to separate each one out and mix and match? So long as the attachment points survive and the bare ends can be morphed onto each other... maybe with some kind of hinting and resizing system... doesn't matter that it's hollow or with one-sided textures (so if you look from the inside out it's transparent), as the tubes are always closed up and the inside/outside orientation always preserved.


It certainly seems like something that could be done. Unfortunately it seems like no one has already done it. If you want something done right, you have to do it yourself, as they say.

I've been doing some drawing to figure out how a body should be divided into pieces and what each piece should be called. At least I can do that much even if the technical aspects are beyond me. Unfortunately a lot of body parts don't have obvious recognizable names. How many people realize that the part of your body between your shoulder and your elbow is technically your arm, and everything below that is not part of your arm, but is instead your forearm? And who knew that your legs only go up to your knees? And where exactly is a person's waist?

As for the technical aspects, I'm not totally oblivious about 3D modeling and programming, but I'm afraid I have dreams that are bigger than my skills. Someday!


'makehuman' is free (&open source) software to create models of humans by pulling sliders, but it does not contain generation of internal organs.

You could always use that to generate some humans, then cut them into parts in the modelling program of your choice, then use free software 'mechmixer' to put the parts together in new and interesting ways.

But, for all the body scanning and medical imaging hype going on lately, generation and simulation/animation of skeletal structure and internal body parts seems to be a sparsely researched complex of topics atm, e.g. there's not much research papers available on it.


Sorry, that should have been 'meshmixer'.


>Unfortunately it's not clear exactly how Spore makes its amazing creatures happen, so it's difficult to duplicate that miracle.

There is a siggraph paper which explains the process: "Real-time Motion Retargeting to Highly Varied User-Created Morphologies" by Hecker et al.

Very technical, but also contains referrences to some interesting related papers.

[Return][Go to top] [Catalog] [Post a Reply]
Delete Post [ ]