Mesh Deform ModifierPosted in Development by brecht
In some early deformation tests it became clear quickly that rigging our fat characters was going to be a challenge. For skinny models bones correspond well to the different parts of the body, but for fat models they do not, and there is a lot of overlapping influence. With a lot of corrective extra bones and shape keys we might have been able to get reasonable deformations, but part of this project is of course to tackle these problems head on, instead of having our artists waste time endlessly tweaking the deformations! So we decided that we needed a mesh deform modifier, as detailed in Pixar’s SIGGRAPH 2007 paper.
A known trick in rigging is to use lattices to e.g. get smoother arm deformations. But lattices are restricted to have vertices in a regular grid layout, which doesn’t fit an entire body shape, whereas with a mesh deform modifier a mesh with arbitrary shape can be used as a lattice. This way we can make the armature deform a low poly cage mesh, which in turn deforms the actual model. Using a lattice between the armature and the actual mesh smooths out the influences from multiple bones, and so gives better deformations in difficult areas. Of course the result of this is not always perfect, and we still need corrective shape keys (but fewer). Such shape keys can also be made on the cage mesh, which has much fewer polygons. In addition the vertices of the cage mesh could be used for e.g. facial deformation controls.
How this modifier integrates into the rigging system is still being worked out. For example hands and fingers are being deformed directly with the armature modifier, and blended with the mesh deform modifier using a vertex group. This however conflicts with the dynamic binding that was added to make shape keys on the mesh work, so we are working on a better way to blend modifier deformations.
A .blend file with the chinchilla using mdef can be downloaded. Note that this is not a complete rig, the deforming bones can be manipulated directly, but the high level controls for this model are not finished. Also this requires a very recent blender SVN version to work (preferably built after this blog post).
For further information read the mesh deform release logs.