Facial Animation with character studio

Note: snake2.avi, snake2.max, and cs.wav are the files used in this example of facial animation. You can locate them in the cstudio\tutorial directory.

As an alternative to morphing, Physique can be used effectively for detailed facial animation when a character's face is set up with extra links. Using 3DS MAX bones or placing dummy objects at appropriate locations on the mesh head and linking them to one another, you can define a skeletal structure for moving the facial features. You can also use splines linked to the biped head to deform the mesh. You can add a spline to a character that already has Physique applied by using Add in the Physique Bones rollout and clicking the spline in the viewports.

In the example used for this topic, a snakelike character is made to talk. Dummy objects (blue cubes in the image) were linked to each other, and the parent-most was linked to the Biped head. Speech and facial expression is created by keyframing the dummy objects.

Vertex-Link assignments are determined by Physique envelopes. A single large rigid envelope on the head link insures that the whole head follows the biped. The new facial links each have deformable envelopes that add influence to specific facial features.

The 3DS MAX hierarchy does not recognize Biped's Figure mode, so special consideration is needed to establish the initial skeletal pose. Leave Figure mode on to position and link the dummy objects at frame 0; frame 0 will act as the "at rest" position for the dummies. You should start keyframing the face at frame 1 or later.

In this example the dummy in the middle of the upper lip and the dummy between the eyebrows are linked to the biped head. All the dummy objects that are positioned around the character's lips are linked in a chain to the dummy in the middle of the upper lip. The dummy objects around the character's brow are linked in a chain to the dummy between the eyebrows.

How the Dummies Should Be Linked

The dummies around the mouth are linked to create a deformation spline that follows the contours of the lips when Physique is applied. This allows smooth lip deformation when the mouth dummies are animated. The dummies on the lower eyelid create envelopes to control cheek movement, as when the character smiles, and also act as an anchor to the cheeks when the upper lip is animated. In this example, the eyebrow dummies and corresponding links control eye expression and blinking.

The snake's face is relatively simple. On the other hand, if your character has a large jaw, you may want to create links around the jawbone to separate lip motion from jaw motion. If your character has large eyes, you can add dummies and links to control eyelids separately from eyebrow motion.

The envelopes on the links between the biped head and the dummy objects are turned off at the Envelope sub-object level. Envelopes around the lips and brow are adjusted, also at the Envelope sub-object level.


Isolate vertices of the lips from influence by inappropriate links

When working with a complicated facial bone structure, envelopes for the lower lip are bound to affect vertices in the upper lip, and vice versa. In general, this can be corrected in at the Vertex sub-object level:

  1. Select the head and on the Modify panel turn on Vertex sub-object.

  2. Select Initial Skeletal Pose

  3. Click Select and fence select vertices of the lower lip, and then click Remove from Link.

  4. Select the links of the upper lip, and click Lock Assignments.

  5. Fence select vertices of the upper lip, and click Remove from Link.

  6. Select links of the lower lip, and click Lock Assignments.

Keyframing the Dummies

By default, when a dummy is moved the child objects of that dummy will move also. Use the Don't Affect Children control in the Hierarchy panel, with Pivot active, if you don't want to move the child objects of the dummy you are positioning.

For example, if the dummy in the middle of the upper lip is moved, the entire mouth moves, because the child dummies inherit the move. Turn on Don't Affect Children to move this dummy independently.

Bezier position interpolation, the default 3DS MAX position controller, will sometimes overshoot a dummy key. For example, after setting a lower lip key at frame 10, you may find that at frame 13 the lip is positioned too low. Use the Bezier spline controls in the Motion panel or in Track View to correct for overshoot. For example, choose linear interpolation for the "In" and "Out" for a key.

Lip Sync

A sound track can be loaded in Track View by selecting Sound in the Track View hierarchy, selecting properties, and using the Sound Options dialog to load an audio file. Turn on Real Time in the 3DS MAX Time Configuration dialog to enable sound when you use the Play button. By scrubbing the time slider, you can locate a sound and keyframe the dummies to appropriate positions.