Mesh Deform Modifier

The MeshDeform modifier can deform a mesh with another 'cage' mesh. It is similar to a lattice modifier, but instead of being restricted to the regular grid layout of a lattice, the cage mesh can be modeled to fit the mesh better.

Chinchilla deformed with the mesh deform modifier, model and rig by the Peach team.

Usage

The cage mesh is a regular mesh object, but it must form a closed cage around the part of the mesh to be deformed. Only vertices within this cage will be deformed. Typically the cage mesh will have far fewer vertices than the target mesh. The distance of the cage vertices to the target mesh is useful to tweak the influence. Offsetting the cage far will give smooth but less local influence on the mesh below, while setting the cage closer will give more local control but less smoothing out of the influence.

After modeling the cage mesh, add a MeshDeform modifier,  fill in the cage mesh object name, and press the Bind button. This will compute the binding weights, which can take a while, from a few seconds to a few minutes, depending on the specified Precision. Setting the precision higher increases the accuracy, but can also make the binding process considerably slower.

Binding at high precision can take up a lot of memory and take a long time. Unfortunately even at high levels the results can still be inaccurate if the cage mesh is close to the deforming mesh, which is quite visible when the cage is rotated by a large amount, like 180 degrees. A workaround is to first rotate a parent object of both the cage and deformed mesh to roughly the right position, and then do the finer transformations with mesh deform. In the future we hope to improve both the accuracy and performance of the mesh deform modifier.

NOTE: Mesh deform does not work for multi-res.

Effect of cage mesh offset: larger cage on the left gives rounder deformation than smaller cage on the right.

Interior Control

Besides the cage, more faces within the cage, loose or forming another smaller cage, be used for extra control. Such smaller cages may also overlap with the main cage, for example to get extra control over the eyes, two small sphere cages could be added around them.

Dynamic Binding

By enabling the Dynamic option, the mesh can still move within the cage mesh and deform correctly. If it goes outside of the cage mesh the results are undefined. This option is disabled by default because it is slower and uses more memory. An example scenario where this would be useful is to do the main deformation with the mesh deform modifier, and use shape keys for facial expressions.

Implementation

The implementation is based on this paper:

Harmonic Coordinates for Character Articulation
Pushkar Joshi, Mark Meyer, Tony DeRose, Brian Green and Tom Sanocki, SIGGRAPH 2007.

Example

Chinchilla demo file.