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?

  • 5
    \$\begingroup\$ Look up "morph targets". \$\endgroup\$
    – Tetrad
    Commented Aug 24, 2011 at 21:15
  • \$\begingroup\$ 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. ;-) \$\endgroup\$ Commented Aug 25, 2011 at 2:41
  • \$\begingroup\$ 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 \$\endgroup\$
    – Exilyth
    Commented Apr 7, 2013 at 1:59

2 Answers 2


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.

  • \$\begingroup\$ 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. \$\endgroup\$
    – enigma
    Commented Aug 24, 2011 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.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .