Animating Facial Expressions using Blend Shapes in Maya

This is how you can use blend shapes to make facial expressions for your character.

First, select the mesh that contains the face of your character. In this case, the torso mesh contains Liah’s face so I selected that mesh. You want to duplicate this mesh several times – one for each expression. To keep things simple, I just duplicated it 3 times to make a happy face, an angry face, and a blinking face.

For each duplicate, manipulate the mesh to make the expressions you want. Here I made faces for blinking, smiling, and angry by moving vertices around her eyes, cheeks, and mouth.

Once you’re done, select the duplicates and the main character mesh last.

Make sure you’re in Animation mode and go to Create Deformers => Blend Shape.

There’s one thing left to do before you can go ahead and animate your character. Select the main character mesh that you added the blend shapes to, left mouse click on the inputs icon and select All Inputs…

If the BlendShape list item is above the Skin Cluster list item, your character will do weird things when animated like below.

To correct this, middle mouse drag the Blend Shape list item down and release the mouse button over the Skin Cluster list item so that Blend Shape is below Skin Cluster.

Now, to play with the blend shapes, open up Window => Animation Editors => Blend Shape.

By adjusting the value bars of your blend shapes, you can adjust your character’s facial expressions. To animate emotions, you can click on the Key buttons to key the values. You can also view and edit the values in the Graph Editor like other animations. Just click on the Select button to view the blend shape animations in the Graph Editor.

But this can be a bit annoying because you need to have the Blend Shapes window open. So let’s add this capability to a controller.

Create a nurb circle for a controller. Select it and go to Edit => Add Attribute in the Channels Box.

Fill in the name (a facial expression), select the data type as Float, and set a Minimum and Maximum value for it (which can be anything).

Do this for all of your blend shape expressions and they’ll appear as new attributes in the Channel box when you select the controller.

Now to link the new attributes to the expressions, go to Animate => Set Driven Key => Set…

Select the controller nurb and click Load Driver. Click the Select button in the Blend Shape window and click Load Driven.

For each facial expression, you want to:
1) Select the attribute name in the Driver list;
2) Select the corresponding blend shape name in the Driven list;
3) Set the value of the correponding attribute value to 0 (or the minimum value you set earlier) in the Channels Box; (If it’s not apparent in the Channels Box, select the main mesh)
4) Set the value in the Blend Shape window for that expression to 0;
5) Click the Key button;

To set the maximum value now, you want to:
1) Set the attribute value in the Channel box to 10 (or the maximum value you set earlier);
2) Set the value in the Blend Shape window for that expression to 10;
3) Click the Key button;

Once you repeat the above and set the maximum and minimum values for all the expressions you’ve made, you can animate your character’s expressions like you animate any other value.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s