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)
- In the Channel Box, you can lock and hide all other channels (all except Translate X and Translate Y
- Create a nurbs Square around it
- 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)
- 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
- 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
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));