3D Computer Animation
MU logo
Instruction Pages by Wobbe F. Koning
General Animation 3D Modeling 3D Animation Shade/Light/Render Post Production Resources

Building a Face Rig

To build face rig controller:

  • In front view, create a Nurbs Circle, at origin, radius .25
    • In the transform node of that circle, got to Limits and activate the Trans X and Trans Y limits (in the attribute editor)

Set Limits

  • In the Channel Box, you can lock and hide all other channels (all except Translate X and Translate Y
  • Create a nurbs Square around itScale Square
    • Again at the origin in front view. Snap it to the grid, but then scale it so it fits around the circle when it is in one of the corners
  • Use the Create > Type tool to create a label for your controller
    • It will create HUGE type, adjust the scale in the type1 node, under Font Size
    • You may choose a nice font, like !ComicSans or !Papyrus
    • Type the name
    • Move it over the square (still in Front view)

Type Tool

  • Within the Type Tool Node, go to the Geometry Tab and hit Create Curves From Type
  • Select the group with those curves, also select the nurbsSquare, and group them together
    • Name the group something that makes sense
    • You can hide the typeMesh1 tool, so you can re-use it for other controllers
  • Set the Display for that group to Template in the attribute editor

Display Template

  • Group that group with the Circle
  • Duplicate that group
    • Rename the circle in the duplicate group
  • Move and Scale that group to where you need the controller
  • The movement of the circle will still be limited, yielding a set of parameters that will go from -1 to +1

Controller Done

Now simply add and adjust the script posted below.

  • O.K., that needs more explanation.See part 2 on how to script it.

The Script

BlendMyFace.BrowL_up = clamp(0,1,EyeMoveCTRL.translateY) * (1 - abs(clamp(-1,0,EyeMoveCTRL.translateX)));
BlendMyFace.BrowR_up = clamp(0,1,EyeMoveCTRL.translateY) * (1 - clamp(0,1,EyeMoveCTRL.translateX));
BlendMyFace.BrowL_Dwn = abs(clamp(-1,0,EyeMoveCTRL.translateY)) * (1 - abs(clamp(-1,0,EyeMoveCTRL.translateX)));
BlendMyFace.BrowR_Dwn = abs(clamp(-1,0,EyeMoveCTRL.translateY)) * (1 - clamp(0,1,EyeMoveCTRL.translateX));

← BACK