Enable the MHX2 importer
Before the MHX2 importer can be used, it must be enabled in Blender. Choose File > User Preferences to open the Blender User Preferences window. In the Addon tab, select the MakeHuman category. Provided that you have copied or linked the import_runtime_mhx2 folder to Blender’s addon directory, it should be found here.
Enable the MHX2 importer by clicking in the checkbox in the upper-right corner, next to the running man icon. If you wish to enable the MHX2 importer every time you initialize Blender, press the Save User Settings button at the bottom-left corner.
It is also recommended that Auto Run Python Scripts is enabled in the File tab. The MHX2 importer sets up drivers that don’t work unless python scripts are enabled.
Import without modifications
By default a character is imported exactly as is was exported from MakeHuman.
To import a MHX2 file, select File > Import > MakeHuman (.mhx2). The importer can also be invoked from the tools panel. From the MHX Setup penal in the MHX2 Runtime tab, press the Import MHX2 button.
Either way, a file selector is opened. The importer options are found at the bottom of the left-hand side. The only import option is called Override Exported Data. Leave it unchecked (this is the default), select the exported .mhx2 file, and press the Import MHX2 button.
The character is now imported and can be posed and rendered.
There are some things to notice. First, the character is rigged with the skeleton chosen in MakeHuman. In particular, the new official MakeHuman rig can be imported in this way.
Second, vertices masked by clothes are removed from the human mesh. Depending on what you want, this may or may not be the desired behaviour. In particular, it is not possible to change or remove clothes in Blender, because there is no body below.
Third, the alternative topology is imported. In the default mode, the character is imported into Blender exactly as it looked in MakeHuman, including the alternative topology.
Import with modifications
If it were only possible to import characters exactly in the same way as they were designed in MakeHuman, there would be little reason to introduce a new format; FBX and Collada can already achieve this. The true power of MHX2 is that the exported character can be modified on import.
Select the Override Exported Data checkbox. Several new import options appear. Leave all options at their default values and import the character. Jane Doe is loaded into the scene, but this time the mesh is not rigged, because the Add Rig checkbox in the Rigging section was no selected.
Let us now explore the import options.
If the Helper Geometry option is selected, the full MakeHuman mesh including helper geometry is imported; otherwise, only the body is included.
If the Offset option is selected, the mesh is displaced so the object location coincides with the ground joint helper halfway between the feet; otherwise, the origin is placed at the center of mass in the pelvis area.
If the Add Rig option is enabled, more options become available in the Rigging section. The first option allows us to choose the rig type. The default is Exported, i.e. the same rig that was created with Overwrite Exported Data disabled.
We can also use Import Human Type to control which human mesh is imported: Body (the MakeHuman base mesh), Proxy (the alternative topology), or Both. The viewport becomes a bit crowded, but we can see both the base mesh (Jane_doe:Body) and the proxy mesh (Jane_doe:Female1605) in the outliner.
Here the base mesh and the low-poly proxy have been moved to separate layers and the mask modifiers have been removed. If no alternative topology was selected when the character was exported from MakeHuman, the base mesh is always imported.
If the Rig Type is set to MHX, the character is instead rigged with the advanced MHX rig from MakeHuman 1.0. Note that when an MHX rig is selected, two more panels become visibible in the MHX2 tab: Layers and FK/IK Switch. The MHX rig will be described on another page.
If the Rig Type is set to Rigify, the character will be rigged with Rigify, which is Blender’s de-facto standard rig. For this to work, it is necessary that the Rigify add-on is enabled; it is found in the Rigging category. The MHX2 importer signals an error otherwise.
With a rigified rig is selected, various panels appear in the user interface panel to the right of the viewport. Those panels are controlled by Rigify and beyond the scope of the MHX2 importer.
Finally, there is a selection of straight-forward FK rigs for special target applications. The Custom Shapes option control the visible appearance of the bones.
Facial shapes and visemes
The MHX2 importer can add a set of facial shapekeys, analogous to those exported by MHX in MakeHuman alpha 6. Note that the face shapes are not yet final, but will be tweaked in the future.
To enable import with facial shapekeys, select the Face Shapes option. The body mesh becomes equipped with a large number of shapekeys, hopefully with self-explanatory names. The character’s expression can now be tweaked.
A character typically consists of several separate meshes (body, eyebrows, eyelashes, teeth, hair, clothes, etc.). Shapekeys are transferred from the body to all other relevant meshes. However, there is a problem: the shapekey values must be changed for each separate mesh. The picture above shows how the brows are raised on the body, but not on the eyebrows mesh.
To circumvent this problem, the shapekeys can be driven by armature properties. When the Face Shapes option is selected, the new option Face Drivers appears just below it. The Add Rig option must also be enabled, because the face shapes will be driven by armature properties.
When the character is imported with Face Shapes and Face Drivers, a new panel called ”Shapekeys” becomes visible in the MHX2 Runtime tab. The shapekey values of all meshes are now controlled simultaneously by the properties in this panel. The little pin icon to the right of the shape value pins that shape, i.e. set the value to one and the values of all other facial shapekeys to zero.
Controlling the shapekey value by rig properties is also valuable for file linking, because normally only the armature is proxified.
When Face Drivers is enabled, an additional panel called ”Visemes” also becomes visible. When the button for a certain viseme is pressed, the mouth area forms the corresponding sound. Only the mouth area is affected, i.e. shapekeys beginning with ”mouth”, ”lips” or ”tongue”. Other shapekeys such as the eyebrows are unchanged.
The Visemes panel consists of two more buttons:
- Load Moho. Loads an animation in the Moho (.dat) format. A free application that generates Moho files is Papagayo.
- Delete Lipsync. Remove all keyframes from the ”mouth”, ”lips” or ”tongue” properties.
It may be unintuitive to drive the face shape values from a long list of armature properties. A more user-friendly alternative is to use bones arranged around a bone with a special custom shape. This was the way face shapes were controlled back in MakeHuman alpha 6.
When the Face Shapes and Add Rig options are selected, the Face Panel option appears in the Rigging section. The face representation is added when with option is selected. Note that Face Drivers and Face Panel are mutually exclusive. The character’s expression can now be controlled by moving the face bones.
The viseme buttons work with the face panel as well. The buttons move the bones in the face representation, which in turn drive the face shapekeys of all meshes. This works with file linking as well.
Masking and visibility
Just as with the default unmodified import, the modified import also hides vertices under clothes. However, unlike the unmodified import, the hidden vertices are not destructively removed. Instead, for each piece of clothing covering part of the body, the body mesh has a mask modifier.
Visibility of the body mesh can be toggled on and off in the mask modifiers. The camera button affects rendering, the eye button affects the viewport, and the cube-with-corners button affects edit mode.
Mesh visibility can be driven by rig properties. There are two reasons for doing so:
- The visibility properties control both the viewport and render visibility, and also whether mask modifiers of the other meshes are active in the viewport and in rendered. A single property controls four options.
- Rig properties are still available with file linking. This means that a character can be defined with multiple clothes in a single blend file, and use different clothes in difference scenes, or perhaps no clothes at all.
Visibility drivers are added after the character has been imported into Blender. With the rig selected, press Add Visibility Drivers in the MHX Setup panel. This adds visibility drivers to every mesh that is a child of the rig. Note that if extra meshes are added to the character in Blender, they will also have visibility drivers.
After visibility drivers have been added, a new panel called ”Visibility” appears in the MHX2 Runtime tab. There the visibility of every mesh can be toggle on and off with the rig selected. When the visibility of the suit is turned off, so is the corresponding mask modifier, and the whole body is visible.
Merging and genitalia
The MHX2 importer can add genitals to the character. If the character was already exported with genitalia from MakeHuman, it is replaced by the added genital. The main reason to replace the standard MakeHuman genitalia is that the MHX2 version is snapped to the body mesh. If the hidden body vertices are removed and the body and genital meshes are merged, the genital is seamlessly joined with the body.
To add genitalia, press the Male or Female button in the importer. In this case the female genital is added.
After visibility drivers have been added and the suit has been hidden, we see how the body and vulva meshes match at the boundary.
The MHX2 importer can join the different meshes that constitute the character into a single mesh. Any mesh modifiers corresponding to joined meshes are applied to make sure that hidden vertices are really deleted.
The options that control this are found in the Merging section.
- Merge Body Parts. When selected, some imported meshes are joined with the body. Exactly which meshes depends on the value of Maximum Merge Type.
- Merge To Proxy. When this option is selected and a proxy mesh (a different topology) is being exported from MakeHuman, the body parts are joined with the proxy mesh instead of the body mesh.
- Maximum Merge Type. Determines which types of meshes are joined with the body:
- Body. Meshes that naturally are part of the body are joined with it: eyebrows, eyelashes, teeth, tongue, genitalia.
- Hair. The meshes above plus any hair mesh is joined with the body.
- Clothes. All imported meshes are joined with the body. This is mainly useful if the character will be exported to other applications, where mask modifiers are not available.
In the picture above, female genitalia has been added, and the body parts have been merged with the body. Note that there are only three meshes whose visibility is controlled by rig properties: the body, the hair, and the suit. All other meshes have been joined with the body. Note also that the boundary of the female genital is not only snapped to body vertices, but duplicate vertices have been merge, making the genital seamlessly integrated with the body mesh.
Warning: Merging genitals to a proxy mesh is in general a bad idea. The genitals have been designed to integrate seamlessly with the base mesh. This will not work with a different topology.
Finally, the picture above shows the result of merging all meshes, by setting the Maximum Merge Type to Clothes.
MakeHuman exports polygon hair. Although this can produce excellent results, some people prefer to use particle hair, e.g. because it is easier to animate. The MHX2 importer can replace the polygon hair in the MHX2 file with particle hair.
Hair import is controlled in the Hair section of the importer:
- Hair. This is a drop-down list of available hairstyles. Currently only a single hairstyle is available, and the quality is not so good. More and better alternatives should be available in the future.
- Hair On Proxy. Assign the hair to the alternative topology rather than to the base mesh. If not proxy has been loaded, the base mesh is nevertheless used.
- Add Deflector. Add a low-poly deflector mesh to prevent the hair to penetrate the body mesh during simulations
If Hair has been selected, the importer ends in Particle Edit mode with the human mesh selected. The reason is that Blender’s particle system is quite brittle. Before finilizing import by changing to Object mode, verify that the Free Edit and Disconnect Hair buttons appear in the particle systems context. This is very important, because otherwise the hair will probably give you unpleasant surprises.
Jane Doe is now equipped with particle hair, and her exported polygon hair has been ignored.
If a proxy mesh has been imported and Hair On Proxy is selected, the hair is assigned to the proxy mesh instead. In this case MHX2 import stops in particle edit mode with the proxy mesh selected.
If Add Deflector is enabled, a low-poly deflector mesh is added to act as a collision object; the body mesh itself should not be used as a collision object, because the high poly-count makes simulations slow. Unfortunately, it appears that Blender’s hair simulation ignores collision object, so the deflector is rather useless at the moment. Hopefully Blender’s hair system will be improved in the future.