Blog

New exporter features

1. OBJ exporter:

In addition to separate obj files for body and hair, some new files are created which contain the entire clothed character. If the exported character is called foo, these files are called foo_clothed.obj and foo_clothed.obj.mtl and are located in a newly created subdirectory of the export directory with the same name as the character. On Windows, that would be My Documents/makehuman/exports/foo. Moreover, all used textures are copied to the textures subdirectory. The obj file contains the body and all used clothes and proxies. Hair is still mysteriously missing.

There is also an option to choose between the default tif texture and a png version.

Finally, the exported character can be scaled by choosing units: decimeters, meters, inches or centimeters. The default is decimeters, which is also MakeHuman's native unit; the base mesh is 16.8 units tall. If you import the obj file into Blender or some other 3D package, you could scale the character to whatever size you like, but not all programs which use 3D assets allow scaling. This option was prompted by the need to export in the right size for Second Life.

2. Collada (DAE) exporter:

The exported dae files are similar to the clothed obj files, which is natural because the exporters share a large fraction of the code. The dae file is located in a folder named after the character, and all textures are copied into the textures subfolder. The file contains body (possibly replaced by proxy), clothes and hair; here the hair is indeed included in the file. There are options for choosing between tif and png textures (when they exist), and between different export units.

The character and clothes are rigged and ready for animation. One can choose between the rig files in MH/data/rigs. Currently three rigs are distributed with MakeHuman:

a. Simple rig, the default.
b. Game rig, with fewer bones and only three fingers with one link each. This is suitable for Rorkimaru's proxy, which only has that much geometry.
c. Second life rig. Hopefully suitable for use with Second Life, although this has not been confirmed yet.

3. MHX exporter:

Here we can also choose between output rigs. In addition to the once available for Collada export, there are two more rigs:
a. MHX rig, the default.
b. Rigify rig, described at http://makehuman.blogspot.com/2011/06/rigify.html

There are still some bugs to be sorted out.

 

 

 

Creating a custom rig

We can export rigged characters from MakeHuman both in MHX and Collada formats. However, we may want to use the character in some application which has specific rig requirements. In this example we will create a rig suitable for Second Life.

1. Makerig is a Blender script, located in the MH/utils/makerig folder. Copy the entire folder into Blender's add-ons directory, e.g. Blender/2.61/scripts/addons. Start Blender and enable the Makerig add-on in the MakeHuman category.
 

2. Create the rig in Blender, or open a blend file containing the rig. In this example the second life rig was already given to us in this form.

3. Load the MakeHuman base mesh into Blender, with helper geometry and joint diamonds present. One can either use maketarget to load the base mesh, or export an MH character with MHX. It is crucial that the joint diamonds are kept, because otherwise vertex numbers will be off and the rig will not work.

Adjust the rig in edit mode to fit the human mesh. The rig should be edited, not the mesh. Our second life rig is evidently joint oriented, where the joints correspond to bone heads. Move the bone tails into place. Make the bones connected to the parent where applicable.

4. When all bones are placed correctly, it is time to weight the mesh. Unfortunately, Blender's built-in bone heat algorithm does not work with the MakeHuman mesh. You could weight the bones manually, but that is a lot of work. The makerig script has some tools to facilitate weighting. It is not completely automated, but the necessary manual labor is limited.

4. With both the rig and mesh selected (in either order), press Auto weight MH body. This runs the build-in auto-weighting algorithm, but only on the main part of the body mesh. Only vertices which are connected to the body are weighted. Vertices that belong to disconnected parts, like the eyes, teeth and helpers remain unweighted.

5. Manually fix the weights of the rest of the body, but leave the helpers alone. This mainly involves the head. Since the joint diamonds are normally not exported, they should be left out of all vertex groups. The button Unvertex diamonds does this automatically.