Advertisement

Building A Complete Human Facial Rig In Maya, Part 3

by
What You'll Be Creating

In the third and final part of Soni Kumari's exceptional facial rigging tutorial for Maya, we'll pick up from where we left off in part two and finish building the character's facial GUI (graphic user interface.) At the end of this chapter you'll have a fully functional facial rig capable of a robust set of expressions and a easy to use interface, allowing you to animate with ease.

This tutorial is a companion piece to author Soni Kumari’s previous premium series covering the creation of a complete human character rig. Building a face rig suitable for animation is one of the more challenging aspects of character creation, this series will walk you through the entire process from start to finish and give you a detailed, in-depth lesson on what it takes to build a intuitive and animation friendly facial rig from scratch!


Also available in this series:

  1. Building A Complete Human Facial Rig In Maya, Part 1
  2. Building A Complete Human Facial Rig In Maya, Part 2
  3. Building A Complete Human Facial Rig In Maya, Part 3

Step 1

Let’s start Maya and open the Morph Completed.mb file which was saved in the previous part of the tutorial. In this last part of the tutorial, we will create the Face GUI controls.



Step 2

To create more controls for facial expressions, select the Face_GUI curve and duplicate it. Select the duplicated curve and then Scale it down and place it where the arrow indicates.



Step 3

Now, again make a copy of this curve and place it on the right side. Both copied curve shapes should look like the eyes. These will be later used as controls for the eye blinks.



Step 4

Now, rename these duplicated curves as Left_Eye_Curve and Right_Eye_Curve, and also Delete History and Freeze Transform.



Step 5

Now jump into the Front view to see and place the curves properly. Once again, select the Face_GUI curve, duplicate it and place it in the mouth location. Rename it as Mouth_Curve and again Delete History and apply the Freeze Transform command.



Step 6

You can always change the color of the controls to easily identify them, as we did in the second part of the tutorial. It looks better and makes you comfortable too.



Step 7

Now we need something which will control the deformation of these curves. So we will make several small circles which will control the deformation of the curves individually. So draw a small Circle in the Front view, as shown in the image below.



Step 8

Now, to align the small circle, select it (Z Axis selected), press and hold down the C key and then drag the middle mouse button onto the Face_GUI. The Small circle is now snapped to the Face_GUI.



Step 9

Now jump into the Front view, duplicate the small circle (3 times) and place them all as shown in the image below. Rename the two upper two circles as L_ Eyeblink and R_Eyeblink, and the lower circles as L_Smile1 and R_Smile1.



Step 10

Again duplicate the circle one more time to drive the sadness control. Keep it positioned in the center of mouth and rename it as Mouth_Updown. Now select both the L_Smile1 and R_Smile1 and then press Shift+ P for parenting.



Step 11

Now let’s duplicate the small circle one more time to control the mouth's opening action, and place it in the center of the lower lip as indicated by the arrow below, and also rename it as Open_Mouth_Control. Finally select all the curves and do a Delete History and Freeze Transform.



Step 12

Now, we will create controls for the frowning action. So in the Front view draw a Curve line as shown in the image below.



Step 13

Now, jump into the Perspective view. You can see the new curve's pivot point is at the coordinates 0, 0, 0, so we have to place the pivot transform gizmo at the center of the curve.



Step 14

To place the pivot point at the center of the curve, click on the Modify menu and then select the Center Pivot command. You will notice now the pivot point jumps to the center of the curve.



Step 15

With the curve line selected in Move mode, click on the Z axis to constraint it and then press and hold down the C key and drag the middle mouse button onto the Face_GUI curve to snap it.



Step 16

Now, jump into the Front view, duplicate the small circle curve twice and position them at the either side of the frown curve as shown in the image below. And rename these curves as L_Eyebrow and R_Eyebrow.



Step 17

Duplicate the small circle once again. Scale it and place it in the center of the frown curve and rename it as SurpriseAnger. Select all the newly created curves and do a Delete History and Freeze Transformation.



Step 18

For parenting all the control curves, select them all and then while pressing the Shift key, first select the Face_GUI curve then press the P key.


If you want to change the display color of the controllers you can do so for your comfort.



Step 19

Now, we will create clusters for the internal connections of the controllers. So first select the Mouth_deformer curve and press the F8 key to jump into vertex components mode.



Step 20

Select the two corner vertices and click on the Create Deformer menu and then select the Cluster options box.



Step 21

This opens the Cluster Options box. Here check on the Relative mode and then click on the Create button to create the cluster.


Do same thing with left side vertices and create a cluster for them too.



Step 22

A tip for making clusters:- Clusters are very useful, but always determine first which vertices need a cluster for shape deformation.



Step 23

Again select the bottom three vertices of the mouth shape and create a cluster.



Step 24

Now to apply constraints, we need to align the cluster pivot center of the controller.



Step 25

Now, first select the L_Smile1 curve, then click on the Display main menu and select Transform Display, and click on Rotate Pivots. You will see a point icon in the center of the selected circle.



Step 26

Again select the Cluster and hold down the D key followed by the V key and middle mouse button drag on the point icon of the circle.



Step 27

Now first select the L_Smile1 curve, then select the cluster and click on the Constrain menu and select the Point command to apply a point constraint to the cluster.



Step 28

For checking purposes, drag the control upward and see the deformation of mouth curve. Once satisfied, click on Undo to reset.



Step 29

Now do the same for the opposite side. First select the R_Smile1 curve, click on the Display main menu, select Transform Display, and then click on Rotate Pivots.



Step 30

For snapping, select the cluster and hold down the D key followed by the V key and then click and drag the middle mouse button onto the point icon of the circle. Also select the R_Smile1 curve, then go to and click on the Constrain menu and select the Point command to apply the point constraint to the cluster (as shown in step 30 and 31.)



Step 31

For applying point constraints, apply the same treatment to all the clusters. And we are now done with the Open_Mouth_Control.



Step 32

After snapping each and every cluster's pivot point, you can hide the Rotate Pivot icons. For that go to Display> Transform Display and then select Rotate Pivots. This option is used for both hiding and displaying the Pivot point icons.



Step 33

Now, let’s create the cluster for the left eye blink shape. So select the three upper vertices in component mode by pressing the F8 key.



Step 34

With the vertices selected, click on the Create Deformers menu and select the Cluster command. Just like this, create the cluster for the right eye too.



Step 35

Now, we have created clusters for both eye deformer shapes. Now we will snap the clusters pivot points and also apply the point constraints.




Step 36

After applying point constraints, drag them down to check the connections. Once satisfied, do an undo and hide the circle’s pivot points.



Step 37

Now let’s create three more clusters for the three controllers on the eyebrow curve.



Step 38

And also snap and align the cluster pivot points to their related control circles.



Step 39

Finally apply point constraints to all the clusters.



Step 40

Next, we will parent all the clusters with the Face_GUI curve so that they all can move together with It. For now if you drag and move the Face_GUI curve, you'll notice all the clusters and created curves deform wrongly here and there.



Step 41

So to fix this problem, first undo the last movement and then select any one of the clusters. Then while pressing the Shift key, select the Face_GUI curve and press the P key. When you press P, you'll see a warning display in the command (// Warning: clusters were grouped to preserve position). Simply ignore it and do the same with all the clusters one by one.



Step 42

After doing the parenting, drag and move the Face_GUI curve now. This time all the curves move along with the Face_GUI curve properly.



Step 43

Now this is the time to connect all the Blend shapes with the respective controllers. To make it comfortable, first open the Set Driven Key settings box.



Step 44

Let’s open the Blend Shape window too. Click on Window> Animation Editors and then select the Blend Shape option.



Step 45

In the Blend shape control window, click on the Select button to load the blends into the channel box. It is necessary for loading in the set driven key for loading the Driven key. After loading the Blend shapes in the channel, close or minimize it.



Step 46

With the FaceMorphGroup selected in the Channel Box, click on the Load Driven key button to load the FaceMorphGroup in the Driven Group.



Step 47

Next, select the L_Smile1 control curve, and then click on the Load Driver button to add it in the Driver group.



Step 48

First select Translate Y in the Driver group, then select L_ Smile in the Driven group and then click on Key, to add the initial key.



Step 49

Again select L_Smile in the Driven group and then in the Channel Box, put the value 3 in Translate Y field.



Step 50

Again select the FaceMorphGroup in the Driven group and enter a value of 1 in the L_Smile box, then click on the Key button in the Set Driven Key box.



Step 51

Next, select the R_Smile1 control curve and then click on the Load Driver button to add it in the Driver group.



Step 52

Now, select Translate Y in the Driver group, and R_Smile in the Driven group and then click on the Key button for the initial key.



Step 53

Now select Translate Y in the Driver group, and enter a value of 3 in the Channel Box of the same.



Step 54

Now, select the FaceMorphGroup in the Driven group and enter a value of 1 for R_Smile in the Channel Box. Then click on the Key button to add the final key.



Step 55

For connecting the other controls, select the Mouth_Updown curve and then load it in the Driver group. Select Translate Y in the Driver group and then select both Upper_Mouth_open, and the Lower_Mouth_open in the Driven group. Then press the Key button for the initial key.



Step 56

This time we are connecting both up and down with one control, so first select Mouth_Updown in the Driver group and enter a value of 1 for Translate Y in the Channel Box.



Step 57

Again for the secondary key, click on FaceMorphGroup in the Driven group, then enter a value of 1 in the Channel Box for Upper_Mouth_open, and then press the Key button.



Step 58

Now, select Mouth_Updown in the Driver group and then enter a value of -1 for Translate Y. A negative value (-1) is used to close the mouth.



Step 59

Now, first select the FaceMorphGroup, then select Lower_Mouth_open and enter a value of 1 for Lower_Mouth_open in the Channel Box, and click on the Key button.



Step 60

Next, we are going to connect the Open_Mouth_Control with the connection editor. So with the Open_Mouth_Control selected, click on Window > General Editors and open the Connection Editor.



Step 61

After opening the Connection Editor, select the Head_Control and click on the Reload Right button. Then connect the Open_Mouth_Control Translate X to Head_Control JawY, and Open_Mouth_Control Translate Y to Head_Control Jaw Z. Now, close the Connection Editor window.



Step 62

For checking the controls, drag them and you will see the result on the character face. Once checked, do an Undo to return to the initial positions of the controllers.



Step 63

Next, maximize the Set driven key box, select L_Eyeblink and click on Load Driver, to load it in the Driver group. Then select L_Eye_Blink and click on the Key button for the initial key.



Step 64

Now, click on L_Eyeblink in the Driver group and enter a value of -3 for Translate Y in the Channel Box.



Step 65

Select the FaceMorphGroup in the Driven group, then select L_EyeBlink and enter a value of 1 in the box. And then click on the Key button



Step 66

Now, do same with the right eye blink control. So load R_Eyeblink first as the Driver, then select Translate Y and then select R_Eye_Blink in the Driven group and click on key the button for the initial key.



Step 67

Again for the secondary key, repeat Steps 64 & 65. Click on R_Eyeblink in the Driver group and enter a value of -3 for Translate Y in the Channel Box. Then select the FaceMorphGroup in the Driven group, also select R_EyeBlink and enter a value of 1 in the box. And then click on the Key button.



Step 68

Next, first select the L_Eyebrow curve control, then Translate Y , then select L_Frown_Up in the FaceMorphGroup Driven group, and finally click on the Key button to add the initial key.



Step 69

Now, click on L_Eyebrow in the Driver group and enter a value of 3 in the Translate Y box.



Step 70

With the FaceMorphGroup selected in the Driven group, enter a value of 1 in the L_Frown_Up box and click on the Key button.



Step 71

Do the same for the R_EyeBlink curve control, as we did for L_EyeBlink. This time we have to create a set driven key with the R_Frown_Up morph.



Step 72

Next, select the SurpriseAnger curve control. Load it as the Driver and then select Translate Y and select both Surprise and Anger in the driven group, and then click on the Key button for the initial key.



Step 73

Now first select SurpriseAnger in the Driven group and enter a value of 3 in Translate Y. Then enter a Surprise value of 1, and click on the Key button.



Step 74

Like in the previous steps, first select SurpriseAnger and enter a value of -3 in Translate Y. Then select Anger and enter a value of 1 and click on the Key button. (In the image, the arrow has overlapped the value of the Anger channel. So please take care of it. The value is 1 there.)



Step 75

After finishing all the connections with the controllers, close the Set Driven Key window. And also check all connected controllers for the face. Now select all the controls in the viewport and select Translate Z, Rotate (XYZ), Scale (XYZ) in the Channel Box, and Right-click and select "Lock and Hide Selected" in the list. This is done because no move, rotate or scale is needed in these controllers attributes now.



Step 76

Now one important thing is to fix the movement of all controllers. So select the L_Smile1 Curve control and press Ctrl+A key to open the Attribute Editor. In the Attribute editor, click on “Limit Information”, and then select “Translate”.



Step 77

Now, enter a value of 0 in the Trans Limit Y Min field, and enter a value of 3 in the Trans Limit Y Max field, and also turn them ON too.



Step 78

And also fix the rest X and Z Trans Limit Min & Max values, with a 0 value as shown in the image below.



Step 79

Just like this, fix the transformations (Move, Rotate, Scale) of all the controllers as per requirement.



Step 80

Select all the clusters and add them into a Clusters layer to hide. Then finally check all controls and make the desired face expressions and enjoy the facial animation.



Step 81

Finally save the file as "Face Rigged character.mb". I hope you have enjoyed this tutorial!