Blend Shape Animation Basics with Maya 4.5
Blend Shape Animation Basics with Maya 4.5
For 3D character animation, the user typically creates connected bone objects (called "joints") inside the character's skin. These bones are connected to the character mesh with rigid or smooth binding techniques; animating the character's movements can be done by simply animating the joints. However, sometimes using skeletons to animate is problematic. This is particularly true of facial animation. The human face uses hundreds of different muscles to arrange the face into the positions with which humans communicate non-verbally. Trying to emulate this arrangement with dozens of bones strewn throughout a character's face would not make for easy animation. A better solution is the Blend Shape deformer, sometimes known as a "morph."
Blend Shapes can work on any NURBS or polygonal geometry, warping the source object to the shape of the target. In general, you copy the base object and modify the copy into a new shape. For example, you would copy the head of a character and arrange its facial features for one of the phonemes used for human speech"ooo." You would then be able to use this as a Blend Shape target for the original neutral face. Animating the percentage of blend would make the face gradually change from the neutral pose to the "ooo" pose. You can apply any number of targets to the base object, allowing you to mix percentages of all the targets into the base. With enough phoneme poses, you can simulate speech.
In addition, you can blend any combination of poses. For example, you can have a left eyebrow-raised pose, and a right eyebrow-raised pose. These can then be independently animated alongside the speech animation, for truly emotive character animation.
Tutorial: Facial Expression with Blend Shapes
Animating facial expression is a snap with Blend Shapes. Facial expressions are created by making a copy of the original head, changing the facial expression, and adding this as a target to the original head on a Blend Shape deformer. Maya offers a Graphic Equalizer-style Blend Shape Editor that makes it easy to set keys for facial expression.
You might recognize the head shape as the cage for the creepy alien we created in Chapter 7. We'll use this same cage to create facial expressions, because editing this simple object will allow us to quickly make major changes to the character's face.
First, we'll copy the original head to make sure we have a source for future facial expressions. Duplicate the head with Hotbox | Edit | Duplicate | Option Box, reset the settings, and click Duplicate. Move the duplicate to the left of the original head, and name it more_faces.
Select the more_faces head and duplicate it (hotkey: Ctrl-d). Drag this new head to the right of the original head. Name it "confused."
Choose Hotbox | Polygons | Smooth Proxy to see the smoothed mesh under this proxy mesh. Drag the proxy to the right of the smoothed head if you like; it might be easier to see the edits as you make them to the facial expression. Right-click on the proxy and choose Vertices. To make a concerned, worried monster, select the vertices at the four faces at the front of the brow and bring them down as in Figure 1.
Figure 1 Editing the proxy while observing the effect on the smoothed object.
Right-click and select Face mode. Now select the center face of each eyebrow lobe and bring it slightly inward.
Now marquee-select an area around the nose. This will select polygons at the front and at the rear of the head. Orbit to the rear of the head and de-select these faces by holding down the Ctrl key as you drag a marquee over the unwanted faces. Notice how the manipulator moves to the front faces of the head once you deselect the faces in the rear. Orbit back to the front and push the nose up and scale it down vertically a slight amount. This should add to the confused facial expression. Continue editing the proxy head until you like the facial expression you've created on the smoothed face. Exit face editing (literally!) with RMB | Object Mode.
The Blend Shape may give unwanted results if the target and base objects are not precisely the same geometry. Do not split, add, subtract, or otherwise change the target object in a way that would change the number of vertices or faces!
Select the smoothed head and delete it. Right-click on the smooth layer in the Layer Editor, named confusedSmoothMesh, and delete it. Do the same for the proxy mesh layer. Select the confused proxy head, and then shift-select the original, expressionless head. Now choose Hotbox | Deform | Create Blend Shape | Option Box and reset the settings. Change the BlendShapeNode name to Alien_Expression. Click Create, and the dialog disappears.
Open the Blend Shape Editor with Hotbox | Window | Animation Editors | Blend Shape A dialog will appear with a "confused" slider. As you adjust this, you will see the original face move into the confused shape, as shown in Figure 2.
Figure 2 The Blend Shape slider adds any amount of "confused" to the original head's facial expression.
You could delete the confused head if you wanted to at this pointthe facial position is recorded by the Blend Shape Editor, and the actual geometry is no longer needed.
Although 0 to 1 is the range created for the Blend Shape slider, you can type in other values, as we saw with other portions of Maya such as the color picker in the materials chapter. You can use negative values to bring the pose the opposite direction, or go beyond 1 to extrapolate to a more exaggerated blend.
You can now see the real result if you want, by applying a smooth to the head. Smooth the original AlienHead object by selecting it, and choosing Hotbox | Polygons | Smooth. Now try the slider in the Blend Shape dialog to see the real result.
Now we'll make another facial configuration and add it to the Blend Shape set of facial expressions. Duplicate the more_faces object and drag it to the right of the confused head. Name this head "open_mouth."
Make a smooth proxy of this open_mouth head, and drag the proxy object to the right of the smoothed head. Now, right-click over the proxy object and choose face mode editing. Select the faces at the front of the chinyou may need to orbit to a point where you are looking down on the face to easily select just the front of the chin.
Choose the marking menu activated by Ctrl+RMB (new to Maya 4.5) and choose "To Edges." Ctrl+RMB again and choose Grow Selection. Grow the selection repeatedly until the entire lower jaw is selected. Then use the Ctrl key while marquee-selecting unwanted edges to deselect them. You'll need to orbit around the head to find the unwanted edges and deselect them.
With just the lower jaw selected, switch to the Side view. Set it to wireframe mode (hotkey: 4). Switch to rotate mode (hotkey: e). Toggle the pivot point with the Insert key. Move the pivot point to the hinge of the jaw, and exit pivot editing with the Insert key again. Now you can rotate the jaw down to open the mouth. Check your work in the Perspective view, as shown in Figure 3. RMB and choose Object mode to exit Component mode.
Figure 3 Opening the mouth requires selecting edges, and then moving the rotate pivot point before rotating the edges.
Select the smoothed open_mouth head and delete it. Right-click on the smooth layer in the Layer Editor, named open_mouthSmoothMesh, and delete it. Do the same for the proxy mesh layer. Select the open_mouth proxy head, and then shift-select the original, smoothed, expressionless head.
To add this Blend Shape to our Alien_Expression set of Blend Shapes, we need to apply this Blend Shape differently. Choose Hotbox | Deform | Edit Blend Shape | Add | Option Box. In the dialog that appears, reset the settings and choose Specify Node. Set this to Alien_Expression. Uncheck the option to check topology. Click Apply and Close, and go back to your Blend Shape Editor. If you closed it, you can find it under Window | Animation Editors | Blend Shape. You'll see a new slider for the open mouth. Try this slider, and the smoothed shape will open its mouth. You can also still add any amount of "confused" to the slack-jawed alien, as shown in Figure 4.
Figure 4 Opening the mouth requires selecting edges, and then moving the rotate pivot point before rotating the edges.
You can repeat Steps 10-15 to add more facial expression sliders for the alien. At this point, we'll stop creating sliders and instead create a little facial animation. Set both sliders to 0 in the Blend Shape Editor, and set the current frame to 0. In the Blend Shape Editor, click the Key All button.
Go to frame 35 and raise the "confused" slider to 1.0. Click Key All again. Go to frame 40. Set "confused" to 0, and raise "open_mouth" to 0.5. Click Key All again. Go to frame 60, raise "confused back to 1.0, and again click Key All.
Create a playblast of frames 0-60 with Hotbox | Window | Playblast | Option box. Set the time range to Start/End, set start and end to 0 and 60, and click Playblast to create an AVI to see your animation.
Blend Shape deformers are a delightful way to animate poses for any geometry. They provide an intuitive interface for mixing and animating poses, and you can even take any mixed configuration and "bake" it into another Blend slider (the Add function in the Blend Shape dialog).
You can mix Blend Shape deformers with characters that have been skinned with a skeleton to get walking, talking objects in Maya. You can also use Trax to animate facial poses with blended still poses or clips of motion.
Try creating other animation clips and combining them in Trax. Try creating more facial targets and animating them doing some more complex facial animation. Try creating a skeleton for a quadruped, like a dog, and explore the unique walk cycle of these creatures.