I’ve been working with the MeshDeform modifier for a few days now, and I just can’t seem to get good results.
This is the process:
1.Create character in makehuman and export to collada dae
2.Import character with armature into blender using the collada importer
3.Move skeleton, eyelashes, eyebrows, teeth, and tongue to layer 20 (to get them out of the way)
4.Move the main skin mesh to layer 3
5.Build a low poly cage using the armature on layer 1 as a guide. Name this cage “cage”
6.Check the shape of the cage by comparing it to the high poly mesh on layer 3
7.Move the low poly cage to layer 2
At this point:
Armature on layer 1
Cage on layer 2
High poly mesh on layer 3
8.Right click cage, holding shift, right click armature. Ctrl-P–>Armature–>Bone Heat
(Makes the armature the parent of the cage)
9.Check that the aramature correctly deforms the cage, and it seems to
10.Select the high poly skin mesh on layer 3 and add the meshdeform modifier. Set the object in the MeshDeform modifier to be “cage” and press bind
11.Wait a moment while blender binds the mesh to the cage
12.Select a bone in the armature in pose mode, and try to rotate the bone
13.Get odd deformations like moving verts in the high poly mesh that are in the leg that isn’t being manipulated, even though the corresponding verts in the low poly cage are not effected at all
I’m obviously doing something wrong, but I can’t figure out what I’m missing.
Is my low poly cage too “low poly?” Should I sub-divide it more? Can anyone look at what I’ve done and tell me what I can do to make this function correctly?
Notes: I tried to upload the blend file, but it wouldn’t take so I’ve uploaded it to this external url:
http://www.cwaze.com/meshdeformtest.blend
This blend has the cage unbound to reduce the size. Just select the high poly mesh on layer 3 and press bind under the modifier controls to re-bind it. remember to allow a few moments to recalculate the binding before trying to use the blender interface again.