Advertisement
3D

Building a Complete Human Facial Rig In 3D Studio Max, Part 2: Custom Attributes & Skinning

by

In the second chapter of this series, you'll learn how to create and setup Custom Attributes and build the necessary jaw control for the character's facial rig. You'll also learn how to work with 3ds Max's skin modifier, including adjusting vertex weights and fine tuning their influence on the facial mesh.

Building an animation ready facial rig can be one of the most challenging, time consuming aspects of character creation. But fear not! 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 an intuitive, animation friendly facial rig from scratch using 3ds Max’s built in tools.

This tutorial is a companion piece to our previous premium series Complete Human Character Rig In 3D Studio Max, so it’s recommended that you complete that series first.


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

Let’s start from where we ended in the last part of the tutorial. First select Ctrl_Head01, go to the Modify panel, expand the modifier list and then select the Attribute Holder command.



Step 2

You can see the Attribute Holder is now applied to the Ctrl_Head01 control curve.



Step 3

Now, with the Ctrl_Head01 control curve selected, go to the Animation menu and click on Parameter Editor.



Step 4

This opens the Parameter Editor window. Inside the Parameter Type drop down menu, select Float, and inside UI Type, select Spinner. And then write the name "NeckFollow" and press the Add button to add the new Attribute Control.



Step 5

Here you can see the NeckFollow attribute added to the Ctrl_Head01 control curve.



Step 6

With the Ctrl_Head01 control curve selected, Right-click and then in the fly out menu, click on Wire Parameters...



Step 7

Here first select Modified Object > Attribute Holder > Custom Attributes and then click on NeckFollow.



Step 8

After clicking on NeckFollow, the fly out menu opens again. So this time go to Transform > Rotation > Orientation Constraint and then select Orientation Weight 0.



Step 9

It opens the Parameter Wiring window. Select both NeckFollow and Orientation Weight 0, and click on the left to right control direction button, then click on the Connect button.



Step 10

Now, again select NeckFollow Bezier Float and Orientation Weight 1 and click on the left to right control direction button. This time we’ll write an Expression: abs(NeckFollow-100) and then finally click on the Connect button.



Step 11

Now let’s check the neck control. With the Ctrl_Head01 control curve selected, enter a value of 0 in the NeckFollow attribute.



Step 12

Now, with the CtrlC_Neck01 control curve selected, rotate it on any axis. You’ll notice the neck bones rotate in the World direction.



Step 13

Now select the CtrlC_Neck01 control curve and press Alt+Right-click, select the Transform To Zero command to reset the transform.



Step 14

Again with the Ctrl_Head01 control curve selected, enter a value of 100 in the NeckFollow attribute.



Step 15

Now, with the CtrlC_Neck01 control curve selected, rotate it. You’ll notice the neck bones rotate in the Local direction. And don’t forget to reset the transformation of the CtrlC_Neck01 control curve by using the Transform To Zero command.



Step 16

Now, let’s create the jaw control. So go to the Create panel and under Shapes, select the Ellipse tool and then draw an elliptical curve onto the grid. And also check On the Enable In Viewport option.



Step 17

Now with the elliptical curve selected, press Alt+A and then click on the jaw tip bone (Be_Jaw01) to quick align the selected elliptical curve with the Be_Jaw01 bone.



Step 18

With the same elliptical curve selected, click on the Utility panel button and then click on the Reset Xform button, and finally click on the Reset Selected button.



Step 19

After that, click on the Collapse button and then click on the Collapse Selected button.



Step 20

Rename the elliptical curve to "CtrlC_Jaw01". Now with the curve selected, press Alt+Right-click and then click on the Freeze Transform option.



Step 21

Now with the CtrlC_Jaw01 curve selected, enable the Select and Link button and then drag and drop onto the Ctrl_Head01 curve, to link both of them.



Step 22

Now, we need to create a point helper for control linking. So click on the Create panel, go to Helpers and select Point helper, then click on grid with Size of about 6.0cm.



Step 23

With the newly created point helper selected, press Shift+A and then click on the Bn_Jaw01 bone to align and orientate it with the jaw bone.



Step 24

This opens the Align Selection window. Here check On the X, Y and Z positions and also check on the X,Y and Z axes, then click on the OK button.



Step 25

Now, with CtrlC_Jaw01 selected, click on the Hierarchy panel and then click on the Affect Pivot Only button. Then by pressing Shift+A, click on the Bn_Jaw01 bone to align the pivot point to the jaw bone.



Step 26

After doing this you'll see the pivot point of CtrlC_Jaw01 is now placed with the jaw bone’s pivot point. Then turn Off the Affect Pivot Only button.



Step 27

Also rename the newly created point helper to "Ptctrl_Jaw01".



Step 28

Now with the Bn_Jaw01 bone selected, go to Animation > Constraints and click on Orientation Constraint.



Step 29

With Orientation Constraint selected, click on the Ptctrl_Jaw01 point helper to apply the Orientation Constraint to the Bn_jaw01 bone.



Step 30

Now with the Ptctrl_Jaw01 point helper selected, enable the Select And Link tool and then drag and drop onto the CtrlC_Jaw01 curve to link both of them.



Step 31

Now, we will lock the Position and Scale properties to fix the transformation of the controls. So first select the CtrlC_Neck01 control curve and go to the Motion panel button and expand the Assign Controller stack. Then select X position: Bezier inside Zero Pos XYZ.



Step 32

Now, with X position: Bezier selected, click on the Assign Controller button to open the Assign Float Controller window. In the Assign Float Controller window, select Float Limit and then click on the OK button.



Step 33

Once you click the OK button, it shows the Float Limit Controller box. Enter a value of 0 in both the Upper and Lower Limit boxes and then close the Float Limit Controller box.



Step 34

Now, with Y position: Bezier selected, click on the Assign Controller button to open the Assign Float Controller window. In the Assign Float Controller window, select Float Limit and then click on the OK button.



Step 35

Once you click the OK button, it shows the Float Limit Controller box. Put a value of 0 in both the Upper and Lower Limit boxes and then close the Float Limit Controller box.



Step 36

Now, with Z position: Bezier selected, click on the Assign Controller button to open the Assign Float Controller window. In the Assign Float Controller window, select Float Limit and then click on the OK button.



Step 37

Once you click the OK button, it shows the Float Limit Controller box. Enter a value of 0 in both the Upper and Lower Limit boxes and then close the Float Limit Controller box.



Step 38

Now, let’s work on Scale. With Scale: Bezier Scale selected, click on the Assign Controller button and then in the Assign Scale Controller window, choose the Scale Expression and then click on the OK button.



Step 39

This opens the Expression Controller window. It has already created an expression, so we don’t need to do anything, so just press the Close button.



Step 40

Now, with the CtrlC_Head01 control curve selected, go to the Motion panel and then expand the Assign Controller stack and select X position: Bezier. With X position: Bezier selected, click on the Assign Controller button to open the Assign Float Controller window. In the Assign Float Controller window, select Float Limit and then click on the OK button.



Step 41

Once you click the OK button, it shows the Float Limit Controller box. Enter a value of 0 again in both Upper and Lower Limit boxes and then close the Float Limit Controller box.



Step 42

In the same way, lock the Y Position and Z Position of CtrlC_Head01 also.



Step 43

With CtrlC_Head01 selected, select Scale: Bezier Scale and then click on the Assign Controller button and then in the Assign Scale Controller window, choose the Scale Expression and then click on the OK button.



Step 44

Once again this opens the Expression Controller window. Just press the Close button to close the window, as the expression is already written there.



Step 45

Just like this, lock all three control curves; Ctrl_Head01, CtrlC_Neck01 and CtrlC_Jaw01.



Step 46

Now, before creating the eye controls, we have to first complete the skinning process. So let’s open the Layer Manager first.



Step 47

In the Layer Manager window, select the head mesh layer and then click on the Hide/Unhide button to unhide the head mesh. After that, close the Layer Manager window.



Step 48

Now with the head mesh selected, do a Right-click and select Object Properties in the fly out menu.



Step 49

In the Object Properties window, turn on the See-Through check box (which was turned off previously) and then press the OK button to apply the changes.



Step 50

Now, with the head mesh selected, go to the Modify panel and choose the Skin modifier.



Step 51

You can see the Skin modifier has been applied to the head mesh. Now click on the Bones: Add button in the Skin modifier. This opens the Select Bones window. Here type Bn_ in the Find box to find the bones and then click on the Select button.



Step 52

You can now see the skin influence weights on the head mesh.



Step 53

Now, for checking purpose, select the jaw control curve and Rotate it a little bit in any random direction. You will notice here the head mesh is not deforming properly. So we have to make amendments in the skin weight management.



Step 54

Also animate the head, jaw and neck controls for a few frames.



Step 55

Now, with the head mesh selected, go to the Modify panel and choose TurboSmooth. And it will smooth out the head mesh.



Step 56

The head mesh now becomes smooth. This is only for smooth viewing purposes, as it can be turned On or Off according to our needs.



Step 57

Now, first turn off the TurboSmooth modifier and then with the Bn_Head01 bone selected, go to the Skin modifier and click on the Edit Envelopes button. Then turn on the Vertices option. You can now see the selected bones influence weight denoted by a red color.



Step 58

To carefully select the vertices, jump into the Left viewport (or any side view) and then Right-click on the viewport mode and change the display type to Wireframe mode. Then select the upper lip vertices as shown in the image below.



Step 59

After selecting the vertices, you can change the mode again to shaded by pressing F3. Now, enter a value of 1.0 in the Abs. Effect spinner box. You’ll notice, the selected vertices shift with the head bone.



Step 60

Again for the rest of the unmatched vertices, press F3 to go into wireframe mode and then select the vertices properly.



Step 61

Just like before, enter a value of 1.0 again in the Abs. Effect spinner box. You’ll notice, the selected vertices shift with the head bone once again.



Step 62

This is a very challenging and time consuming process to refine the skin weights, so be patience while doing the skinning work.



Step 63

Here we have applied a 0.5 value to the Abs. Effect between the upper and lower lip vertices. That’s why it is showing some areas in a yellow color.



Step 64

Now, let’s see how it looks with the TurboSmooth modifier turned back On.



Step 65

Now let’s work on the neck area. Select the neck vertices and enter the required value in the Abs. Effect box to refine the weight influence accordingly.



Step 66

Sometimes we have to keep minimum values for proper deformation. So here with the vertices selected, change the Abs. Effect value to something like 0.22.



Step 67

After refining the skin weights, the deformed mesh should look something like the image shown below. Now reset all the control curves for the next process of the face rig.



Step 68

After resetting the controls, select both eye balls and Right-click in the viewport and select Object Properties from the fly out menu.



Step 69

This opens the Object Properties window. Here turn off the See Through option and then click on the OK button.



Step 70

Now, we are ready for the eyes controls. Which we'll learn how to create in the next, and final part of this tutorial series.



Related Posts