Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I'm working on a tool for character customization (e.g. starting from a base model, a player can control his fatness), so I'm looking for ideas, techniques or other regarding this topic.

After some research I thought to this technique: starting from two models (one standard human and one fat human, both with the same data, like vertices and triangles), then creating a new model by storing data about the two original mesh (e.g. store vertex data of the second mesh as color data), and controlling their interpolation with a shader.

What do you think about this idea? Suggestions?

share|improve this question
4  
Look up "morph targets". –  Tetrad Aug 24 '11 at 21:15
    
In the GUI, give them a bicycle pump that's labeled "Fat pump" and then let the user pump it with their mouse pointer until they get the desired size. When they want to reduce the fat, just make it look like steam is blasting out of the character's ears. ;-) –  Randolf Richardson Aug 25 '11 at 2:41
    
Makehuman is a program for generating human models (basically, a character generator without a game). Afaik, the program parametrically modifies a basemesh. It is open source and available on makehuman.org –  sarahm Apr 7 '13 at 1:59

2 Answers 2

up vote 8 down vote accepted

You might want to have a look at Elder Scrolls: Oblivion, in particular the character creation screen. They do a lot with modifiable anatomies there. Each race has its own anthropometric norms and ranges. Anthropometrics is the study of the particular measurements / proportions of individual physical characteristics (phenotypes) of individual human beings, comparatively speaking. It's a good place to start doing some research into exactly what varies between individuals.

Your idea sounds good, although I think simply interpolating between just two meshes may not give you enough variation.

share|improve this answer
    
Yes, the main problem with my idea is the low level of variation. I can allow to select a restricted area of the model (e.g. chest, thighs) and interpolate only this area. But overall control is always low. –  Andrea Benedetti Aug 24 '11 at 21:13

I would create two models for every attribute you want morphed, much like your original idea of having a fat and skinny model.

Using 'nose' as an example, have a 'nose' slider and you interpolate between the two nose meshes for your result. This way you could have many variations of modifiable attributes.

Depending on your language, I would then dynamically create a final model by assembling the interpolated body pieces together. You could then save this model if you want to use it between game plays, or it may be better / simpler to just save the various interpolation values and recreate the final model each time you load the game.

Stitching together the final model may be difficult if the perimeter vertices of the two models aren't the exact same.

[Edit] You may have to define reference vertices by name / id to know where to stitch the nose (for example). If you have a head size attribute, the location of the nose will vary. But if you knew nose vertice 'xxx' maps to head vertice 'yyy' you could shape the nose to fit the new head size exactly.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.