Advertisement

Building a Complete Human Facial Rig In 3D Studio Max, Part 3: Eye Controls & Morphs

by
What You'll Be Creating

In the third and final part of this series, you'll learn how to create the rig's eye controls and Morph Targets with Custom Attributes. This is the final step in the rig's creation and will result in a professional facial setup capable of a robust set of emotions and expressions for animation. Click through to complete the series!


Also available in this series:

  1. Building a Complete Human Facial Rig In 3D Studio Max, Part 1: Bone Setup & Controls
  2. Building a Complete Human Facial Rig In 3D Studio Max, Part 2: Custom Attributes & Skinning
  3. Building a Complete Human Facial Rig In 3D Studio Max, Part 3: Eye Controls & Morphs

Step 1

In the third and final part of the tutorial, we will learn how to create Eyes Controls and Morphs with custom attributes. So to get started, click on Create>Shape>Circle and then drag a circle out in the viewport.



Step 2

Now jump into the Perspective view, and align and reposition the circle curve with the left eye ball as shown in the image below.



Step 3

With the circle curve selected, press Ctrl+V to duplicate the circle curve for right eye ball. In the Clone Options box, select the Copy radio button and then click on the OK button.



Step 4

With the newly duplicated circle curve selected, press Alt+A and then click on the right eye ball. This opens the Align Selection settings box. Here turn off the Y Position as shown, and then click on the OK button.



Step 5

To be easily recognizable, you can change the color of the curves and then rename both of them to CtrlC_LeftEye01 and CtrlC_RightEye01.



Step 6

Now while in the front view, click on Create>Shape>Ellipse and draw an elliptical curve in the viewport.



Step 7

Now again jump into the Perspective view and then align and reposition the new Ellipse curve, as shown. Then click on Utility>Reset XForm and click on Reset Selected.



Step 8

With the new ellipse curve selected, click on the Collapse button and then click on the Collapse Selected button inside the Utility panel.



Step 9

Now, rename the ellipse curve as CtrlC_BothEye01. It will control both eyes, control left and right.



Step 10

Just like this, apply a Reset XForm and Collapse on both of the eye controls (this is quite necessary for controls.)



Step 11

Now, with all the eye controls selected, do a Right-click and then select the Freeze Transform command in the fly-out menu. After this, we will now apply constraints and link all the eye controllers.



Step 12

So select the Left EyeBall mesh and then click on Animation>Constraints>Look At Constraint.



Step 13

With the LookAt Constraint selected, click on CtrlC_LeftEye01 to apply the LookAt Constraint.



Step 14

After applying the LookAt Constraint onto the eye ball mesh, you’ll notice the eye ball mesh has flipped and is showing a straight wire.



Step 15

To rectify the flipping problem, click on Motion and inside the LookAt Constraint panel, turn on "Keep Initial Offset" and turn off the "Viewline Length Absolute" option.



Step 16

Just like this, apply a LookAt Constraint to CtrlC_RightEye01 too, and then turn On "Keep Initial Offset" and turn off the "Viewline Length Absolute"option like before.



Step 17

Now, with both the CtrlC_LeftEye01 and CtrlC_RightEye01 control curves selected, enable the Select And Link tool and then drag and drop onto the CtrlC_BothEye01 control curve, to link them together.



Step 18

Now we’ll lock the unwanted rotation and scale properties. So with CtrlC_LeftEye01 selected, Right-click on the viewport and then choose Curve Editor... in the fly-out menu.



Step 19

In the Track View Curve Editor window, select the X, Y and Z Rotation and Scale properties and then by Right-clicking, choose "Lock" in the fly-out menu.



Step 20

Do same thing with the CtrlC_RightEye01 control curve. In the Track View Curve Editor window, select the X, Y and Z Rotation and Scale properties and then by Right-clicking, choose the "Lock" command in the fly-out menu.



Step 21

Now finally select the CtrlC_BothEye01 control curve, and this time Lock the Scale property only.



Step 22

Now, we will create a dynamic relationship link. So first open the Layer Manager and hide the Head mesh. Then with all the newly created eye control curves selected, click on the ControlCurves layer and then click on the Add Selected object (+) button.



Step 23

Hide the Extra Objects layer too (where we have kept all the point helpers,) because it will be easy to create new point helpers for linking in a better way.



Step 24

Now, start creating new point helpers. So go to Create>Helper>Point and then click on the grid to create a new Point Helper.



Step 25

With the newly created helper selected, press Alt+A and then click on the CtrlC_BothEye01 control curve for alignment. It opens the Align Selection window. Here check on all X, Y and Z positions, and also all X,Y and Z Axes under Align Orientation. Then click on the OK button.



Step 26

With the point helper selected, press Shift+A and then click on the Bn_Head01 bone to quickly alignment it with the head bone, as shown in the image below.



Step 27

Now rename the point helper as PtTurns_Eye01.



Step 28

Make a duplicate of the PtTurns_Eye01 point helper by selecting it and pressing Ctrl+V (this opens the Clone Options box.) In the Clone Options box, turn on the Copy radio button and then rename it as PtWorld_Eye01 and then click on the OK button.



Step 29

For selecting and identifying the PtWorld_Eye01 helper easily, select it and keep its size at 12.0cm and re-color it as you wish.



Step 30

Now, select the PtTurns_Eye01 point helper, enable the Select and Link tool and then drag and drop on the Bn_Head01 bone, to link them.



Step 31

With the the PtWorld_Eye01 helper selected, enable the Select and Link tool and drag and drop on the CtrlC_Global01 control curve, to link them.



Step 32

With the CtrlC_BothEye01 control curve selected, click on the Group menu and select the Group command.



Step 33

It opens the Group window. Here rename the group to Grp_CtrlC_BothEye01 and then click on the OK button.



Step 34

With the CtrlC_BothEye01 control curve selected, click on the Group menu and select the Open command.



Step 35

After opening Grp_CtrlC_BothEye01, it will display a pink colored bounding box.



Step 36

Again, with the Grp_CtrlC_BothEye01 control curve selected, click on the Animation menu, then select Constraints and then choose Orientation Constraint.



Step 37

Now click on the PtTurns_Eye01 point helper to apply the Orientation Constraint to the point helper.



Step 38

Now, with the PtTurns_Eye01 point helper selected, go to the Motion panel and first click on the Add Orientation Target button, then click on the PtWorld_Eye01 helper.



Step 39

Now, with the Grp_CtrlC_BothEye01 control curve selected, click on the Hierarchy panel then click on the Affect Pivot Only button.



Step 40

Now press Shift+A and click on the Bn_Head01 bone to quick align the pivot point to the neck bone. Then turn off the Affect Pivot Only button.



Step 41

Again, with the Grp_CtrlC_BothEye01 control curve selected, go to Animation>Constraints and choose Position Constraint.



Step 42

Then click on the PtTurns_Eye01 point helper to apply the Position Constraint.



Step 43

Now, with the PtTurns_Eye01 point helper selected, go to the Motion panel and first click on the Add Position Target button and then click on the PtWorld_Eye01 helper.



Step 44

First select the Grp_CtrlC_BothEye01 control curve, then expand the modifier list and select the Attribute Holder command.



Step 45

Now, with the Grp_CtrlC_BothEye01 control curve selected, click on the Animation menu and then click on Parameter Editor... to open the parameter editor window.



Step 46

In the Parameter Editor, select Float as Parameter Type and write the name as EyesFollow. After that, press the Add button to add the new Attribute control.



Step 47

With the Grp_CtrlC_BothEye01 control curve selected, Right-click and then choose Wire Parameters... in the fly-out Menu.



Step 48

In the Wire Parameter fly out menu, first choose Modified Object>Attribute Holder>Custom Attributes and then choose EyesFollow.



Step 49

After choosing EyesFollow, click on the Grp_CtrlC_BothEye01 control curve (it opens the fly-out menu again.) This time select Transform>Position>Position Constraint and then click on Position Weight 0.



Step 50

After this the Parameter Wiring window opens. Select EyesFollow and Position Weight 0 and click on the left to right control direction button, then click on the Connect button.



Step 51

Now, select EyesFollow : Bezier Float and Position Weight 1 and then click on the left to right control direction button. After this, you also have to write an expression as abs(EyesFollow-100) and then finally click on the Connect button.



Step 52

Again with the Grp_CtrlC_BothEye01 control curve selected, Right-click and then choose Wire Parameters... in the fly-out menu.



Step 53

Here choose Modified Object>Attribute Holder>Custom Attributes and then choose EyesFollow.



Step 54

After choosing EyesFollow, click on the Grp_CtrlC_BothEye01 control curve. It again opens the fly out menu, so this time select Transform>Rotation>Orientation Constraint and then select Orientation Weight 0.



Step 55

After this the Parameter Wiring window appears. Here select EyesFollow Bezier Float and Orientation Weight 0 and then click on the left to right control direction button, then click on the Connect button.



Step 56

Now, again select EyesFollow Bezier Float and Orientation Weight 1 and click on the left to right Control direction button. After this you also have to write an expression as abs(EyesFollow-100) and then finally click on the Connect button.



Step 57

Now, we’ll start creating the facial expression controls. So jump into the Front view and go to Create>Shape>Circle and then check on the Enable in Viewport option and keep the Thickness value at 1.5cm and finally drag a circular shape out in the viewport as shown in the image below.



Step 58

With the newly created circle curve selected, do a Right-click and then choose the Convert To:>Convert to Editable Spline option in the fly-out menu.



Step 59

Select the Segment component of the Editable Spline and then delete the lower half of the circle curve, as shown.



Step 60

Now jump into the Perspective view and select the Vertex component. Then modify the curve as shown in the image or as you wish.



Step 61

Also rename the control to CtrlC_Face Expression to be identified properly.



Step 62

With the CtrlC_Face Expression curve selected, enable the Select and Link tool and drag and drop on the CtrlC_Global01 control curve to link both of them.



Step 63

With the CtrlC_Face Expression curve selected, Right-click and then select Curve Editor... in the fly-out menu.



Step 64

It opens the Track View Curve Editor Window. Here first select the X, Y and Z Position, Rotation and Scale properties and then Right-click and choose the Lock command in the fly-out menu. In this control, we don’t need any transform properties to be controlled.



Step 65

Now we’ll create morph targets. So, with the main head mesh selected, hold down the Shift key and move it a bit to right. This opens the Clone Options box. Write the name of the duplicated object as Mrph_LeftEye_Blink and then click the OK button.



Step 66

When you press the OK button, the duplicated face shifts its position with the main head mesh because of the Skin modifier we have applied on it. So select the TurboSmooth and the Skin modifier and then click on the Remove modifier from the stack button to delete them.



Step 67

After deleting the TurboSmooth and Skin modifiers, the duplicated head mesh comes back to the dragged position.



Step 68

Following the same process, I ’ve created all the morph targets and renamed them as follows: Mrph_LeftEye_Blink, Mrph_RightEye_Blink, Mrph_Left_Smile, Mrph_Right_Smile, Mrph_Left_sad, Mrph_Right_sad, Mrph_Leftfrown_Up, Mrph_Rightfrown_Up, Mrph_Surprise, Mrph_Angry and Mrph_Fear.



Step 69

Now we will deform all the morph objects one by one according to their names. For that we need to keep the mesh in wireframe. So press F4 or Right-click on the Shaded+ Edged Faces viewport label and then choose Edged Faces. Working in wireframe mode makes the selection and modification process easy.



Step 70

Now, let’s work on the eye area of the Mrph_LeftEye_Blink mesh. While in Vertex component mode, select the vertices as shown in the image. Then with the Use Soft Selection option turned On, keep the Falloff value at about 1.782cm. (Note* in your case the values may change.)



Step 71

Now, Scale down the selected vertices to close the eyelid. You can also use your own techniques for deformation, like closing or opening the eyes as shown in the image below.



Step 72

Follow the same steps for the right side eye too.



Step 73

Now, let’s work on the mouth area of the Mrph_Left_Smile mesh. Again while in Vertex component mode, select the vertices as shown in the image. With the Use Soft Selection option turned On, keep the Falloff value at about 13.32cm. Then drag the vertices upwards a little bit (it should look like a smile expression on the left side.)



Step 74

Now also deform the Mrph_Right_Smile mesh for the right side smile, in the same way.



Step 75

Now let’s work on the mouth area of the Mrph_Left_Sad mesh. While in the Vertex component mode, select the left side mouth vertices. Again with the Use Soft Selection option turned On, keep the Falloff value around 13.32cm. Then drag the vertices downwards a little bit (it should look like a sad expression.)



Step 76

Now in the same way, also deform the Mrph_Right_sad mesh for the sad expression on the right side. Just like this, continue creating the deformed morph targets for the desired expressions.



Step 77

After deforming all the morph targets, select them all and then click on the Layer Manager Button. Here click on the Create New Layer (Containing Selected Objects) and also rename the layer as MorphMeshes. Then close the Layer Manager window.



Step 78

Now with the main head mesh selected, click on the Modify panel and select the Morpher modifier from the list.



Step 79

When you apply the Morpher modifier, you will see some Empty spinners which will be used to pick the deformed meshes as morph targets. So first click on the Capture Current State button, which opens the Name Capture Objects box. Here type Mrph_FaceExpression and then click on the Accept button.



Step 80

Now for adding morph target objects, Right-click on an empty spinner and choose Pick from Scene, then click on the Mrph_LeftEye_Blink mesh.



Step 81

Now you can see the Mrph_LeftEye_Blink mesh target is added to that empty spinner. Remember, you have to keep the Morpher modifier underneath the Skin modifier in the modifier stack.



Step 82

Again, Right-click on another empty spinner, choose Pick from Scene and this time click on the Mrph_RightEye_Blink mesh.



Step 83

In the same way, keep adding the rest of the morph target objects.



Step 84

After picking all target objects, open the Layer Manager and hide the MorphMeshes layer.



Step 85

Now with the CtrlC_Face Expression control curve selected, apply the Attribute Holder modifier.



Step 86

Then go to the Animation menu and click on Parameter Editor... to open the parameter editor window.



Step 87

In the Parameter Editor, Set the Parameter Type to String and write the name FaceExpressions under UI Type. Then press the Add button to add the new attribute control.



Step 88

Again in the Parameter Editor, select Float as the Parameter Type this time and write the name Left_EyeClose under UI Type. Finally press the Add button to add the new attribute control.



Step 89

In the same way we have to create the rest of the custom attributes.



Step 90

Now with the CtrlC_Face Expression control curve selected, Right-click and then choose Wire Parameters... in the fly-out menu.



Step 91

It opens the Wire Parameter menu. Here choose Modified Object>Attribute Holder>Custom Attributes and then choose Left_EyeClose.



Step 92

After choosing Left_EyeClose, click on the main face mesh. A fly out menu appears. This time select Modified Object>Modified Object>Morpher and then select [2] Mrph_LeftEye_Blink.



Step 93

After this the Parameter Wiring window opens. Here select both Left_EyeClose and [2] Mrph_LeftEye_Blink and click on the left to right Control direction button, and then click on the Connect button.



Step 94

Now, select Left_EyeClose and [3] Mrph_RightEye_Blink, and click on the left to right control direction arrow, and then finally click on the Connect button.



Step 95

In the same way, we have to connect all the morph targets to custom attributes. At last select Fear and [12] Mrph_Fear and click on the left to right control direction arrow, and then finally click on the Connect button.



Step 96

Finally we are done with the face rig controls, which will give us incredible facial expressions for creating good animation. I hope you have liked this series!



Advertisement
Related Posts