|
Home Table of Contents News Dev Blogs Gallery Timeline Legend Tags |
|
Join us on... |
|
|
|
Current: Month Day, Year
Mechanism of body morphing (Targets) explained.
There are several ways to explain what morphing means, usually a morphism is a structure-preserving map between e.g. algebraic structures. In MakeHuman2 the number of vertices and there relations to neighbouring vertices are preserved. There are different terms for this feature: Blender calls morphs shape-keys, in old MakeHuman1 the morphs are named targets.
The technical correct term would be morphing. Using the initial mesh M1 and the deformed morphed mesh M2 , a parameter t in the range [0..1] describes how much the initial and deformed morph are used by linear interpolation.
MResult = (1-t) * M1 + t * M2All morphs work like this, however the combination of different but related morphs create a larger variety of possibilities.
Most morphs are bidirectional, so there is a decrease morph and an increase morph of a certain feature and a neutral position where none of these are used (example for hm08: leg size). So slider ranges from -100 to 100 which internally represents -1 to 1 and all negative values are used for decreasing.
The known target opposites are mentioned in the base.json file, for an hm08 mesh the opposites are:
Macro morphs are more complicated, they use a certain percentage from a number of features. For the hm08 base mesh the influence of the muscle slider will combine age, proportion, height and gender characteristics and will involve these morphs. Therefore it will use a certain percentage of a number of predefined morphs using the following name pattern:
<gender>-<age>-<muscle>-<weight>
using:
Example: a female aged between child and young with approximately 70% of muscle and 75% of weight would result in using the following morphs:
Hint: missing percentage is from female-child-averagemuscle-averageweight and female-young-averagemucle-averageweight, which are the standard values for each age
Custom morphs can be made with maketarget version 2. You need a standard base mesh like the hm08 one with exactly the same vertex numbers as the internal base inside MakeHuman 2. These bases are usually available in makeclothes 2.
Name your morph meaningfully and press “add new target”. You will get the Basis and a new shape key named like your morph. After modifying this shape key save it as a target. Own targets must be placed in your USERHOME folder, so e.g. for the hm08 base it would be placed in:
USERHOME/target/hm08
If you work with a lot of own morphs and want to keep it structured, best to use yor own subfolders, like
USERHOME/target/hm08/head
There is also a limited way to create bidirectional morphs by naming conventions. Morphs in same folder named like:
USERHOME/target/hm08/head/mymorph-decr.target
USERHOME/target/hm08/head/mymorph-incr.target
will result in a bidirectional morph.
It is also possible to equip the morphs with icons (png files only). The icons must be placed in the folder:
USERHOME/target/hm08/icons
They are named as the morph including the subfolder connected by ‘-’. In case of a bidirectional morph the name should not contain “-decr” or “-incr”. So an image:
USERHOME/target/hm08/icons/head-mymorph.png
should display the head-mymorph.png icon instead of the generic one.