UDN
Search public documentation:
ImpersonatorHeadRigging
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
Impersonator Head Rigging
Last updated by Michiel Hendriks, formatting tweaks. Previous update by Doug Perkowski(ImpersonatorTeam?) to post on UDN. Original author was Ryan Cullins(ImpersonatorTeam?).- Impersonator Head Rigging
- Introduction
- UTRef
- Seting up your rig
- The Bone Poses
- Neutral Pose - "Silent" Frame 0
- Pose (EE) - "Eat" Frame 10
- Pose (Er) - "Earth" Frame 20
- Pose (Ih) - "If" Frame 30
- Pose (Oh) - "Ox" Frame 40
- Pose (Oh) - "Oat" Frame 50
- Pose (W/OO) - "Wet" Frame 60
- Pose (S/Z) - "Size" Frame 70
- Pose (Ch/J) - "Church" Frame 80
- Pose (F/V) - "Fave" Frame 90
- Pose (Th) - "Though" Frame 100
- Pose (T/L/D) - "Told" Frame 110
- Pose (B/M/P) - "Bump" Frame 120
- Pose (N/NG) - "New" Frame 130
- Pose (R) - "Roar" Frame 140
- Pose (K/G) - "Cage" Frame 150
- Targets (Eyebrow Up Left) - "EB_Up_L" Frame 160 and (Eyebrow Up Right) - "EB_Up_R" Frame 170
- Targets (Blink Left) - "Blink_L" Frame 180 and (Blink Right) - "Blink_R" Frame 190
- Downloads
Introduction
This tutorial will go over the basic implementation of facial bones in your character for ImpersonatorTM for Unreal. We chose UTRef, a character from Unreal Tournament to demonstrate our method of adding facial bones to a character. To obtain a copy of UTRef, please contact info@oc3ent.com. Please make sure you have thoroughly read all the information on UDN relating to the use of Character Studio and character rigging before continuing with this tutorial. The following information assumes that you have a general understanding on how to incorporate characters into Unreal.UTRef
Open UtRef.max in 3D Studio Max R4 We have slightly modified this character in a number of ways to support lip-synchronization. The steps that were taken are as follows:- Increased the polygon count in the face to allow enough facial movement for the Blinks, Eyebrows, and Mouth.
- Added Teeth, Tongue (optional, but a tongue greatly increases the realism of lip synching) and a mouth cavity
- Embedded facial bones on top of the Biped Head bone.
- Weighted the bones in the face and body accordingly
- Created the bone poses and exported them to a bone pose (*.lbp) file, which is provided as an example.
UTRef 10 Bone "minimum" rig (11 including head)
- Bip01 Neck1
- Bip01 Head
- BN-Brow
- BN-Brow-nub
- BN-Blink
- BN-Blink-nub
- BN-Jaw
- BN-Jaw-nub
- BN-LowerLipLT
- BN-LowerLipLT-nub
- BN-LowerLipRT
- BN-LowerLipRT-nub
- BN-LipCornerLT
- BN-LipCornerLT-nub
- BN-LipCornerRT
- BN-LipCornerRT-nub
- BN-Tongue
- BN-Tongue-nub
- BN-UpperLipLT
- BN-UpperLipLT-nub
- BN-UpperLipRT
- BN-UpperLipRT-nub
- BN-Brow
- Bip01 Head
UTRef 20 Bone "recommended" rig (21 including head)
- Bip01 Neck1
- Bip01 Head
- BN-BrowLT
- BN-BrowLT-nub
- BN-BrowRT
- BN-BrowRT-nub
- BN-CheekLT
- BN-CheekLT-nub
- BN-CheekRT
- BN-CheekRT-nub
- BN-Jaw
- BN-LowerLipLT
- BN-LowerLipLT-nub
- BN-LowerLipMI
- BN-LowerLipMI-nub
- BN-LowerLipRT
- BN-LowerLipRT-nub
- BN-LipCornerLT
- BN-LipCornerLT-nub
- BN-LipCornerRT
- BN-LipCornerRT-nub
- BN-LowerEyeLT
- BN-LowerEyeLT-nub
- BN-LowerEyeRT
- BN-LowerEyeRT-nub
- BN-Mic
- BN-Mic-nub
- BN-TongueBack
- BN-TongueFront
- BN-TongueFront-nub
- BN-UpperEyeLT
- BN-UpperEyeLT-nub
- BN-UpperEyeRT
- BN-UpperEyeRT-nub
- BN-UpperLipLT
- BN-UpperLipLT-nub
- BN-UpperLipMI
- BN-UpperLipMI-nub
- BN-UpperLipRT
- BN-UpperLipRT-nub
- BN-BrowLT
- Bip01 Head
Diagram of 20 Bone Rig
The diagram below shows the 21-bone rig we used for the UT-male character. The majority of the bones have been labeled and color-coded for your convenience. You may use this as a reference while rigging your character. "Display links" has been turned on to help visualize the hierarchy. If you have any questions relating to the reasoning behind this bone setup please refer to UDN for more detailed information regarding "Additional bones" setup.
Seting up your rig
Once the bone setup is complete, run the Maxscript, "Reset Xform" on all the bones. This sets all of the bones' orientations to be the same. If your bones are moving as you reset the transformations, undo. Otherwise you are ready to start weighting the face. It's always a good idea to run through a few test cases before starting to weight the mesh accurately. To do this, weight one vertex to each link "nub" and animate the bone in any direction on frame 30. Move the bones to create the most commonly used viseme, "If." Export the poses and test it in UnreadlEd. We find it easier to remove all pre-calculated Physique weighting on the head, this way you know exactly what it will and will not do when you start moving the bones around. Before starting, go ahead and insert a keyframe for the position, rotation and scale (P, R, S) of every "Bone." Do not do this for the "nub" bones.- Reset the transformation of all bones before applying skin. Make sure your Position, Rotation, and Scale values of each bone are 100%. Values other than 100% will produce unwanted results in lip synchronization.
- Apply Physique to your character mesh, then click the initialize button and link it to the biped pelvis
- Use "Rigid Vertices" and "3 links" in the initial dialogue box
- Now that your character is Physiqued, you are ready to start weighting the face .Switch to the vertex level of Physique
- Choose "Select", check the "Vertex type" filter and make sure it's set to Deformable, Rigid and Root, then select all the vertices in the head only
- Click "Remove from link" and marquee select all the links in the body. We remove the weighting because Physique doesn't do an accurate job of assigning the correct vertices to the associated links in the face. The result of this action will turn the selected vertices blue (root), meaning there are no current link assignments to the vertices.
- You can begin by assigning the root vertices in the head to the Biped head. Do so by clicking "assign to link" while the root vertices are selected. Set vertex type to rigid (Green) then click the biped head bone link. This should cause the entire selected set of vertices to turn bright green.
- At this point, try moving the biped head. This should move the head mesh with proper weighting.
- Select the vertices in the jaw that you wish to move 100% with the jaw bone movement. Include the lower teeth. This step excludes the Lower lip from being selected due to the current hierarchy setup.
- Assign these vertices to the "BN-Jaw-nub" and not "BN-Jaw". Remember that all additional bones must be weighted to the end-effector "nubs," not the Bone itself.
- Select the vertices around the lip corner and weight them to the BN-LIPCorner (LT/RT)-nub (don't forget you can assign up to 3 links per vertex) if you ever need a falloff between bones (i.e. the Jaw bone and Head bone)
- Continue this process for the rest of the lips and tongue using the UTRef.max as reference
- Once you have finished weighting around the mouth, start on the eyelids, eyebrows and cheeks.
- Now that the head is completely weighted and you have tested the bones' range of movement, go ahead and do a test export before continuing with the poses.
- Make a selection set of the Geometry bones under the head bone in the scene hierarchy (bones listed in bold)
- Now Insert a (P, R, S) keyframe at every 10th frame 0-190 on every bone in the selection set.
- Animate the Bones into a distinguishable pose at frame 30 "If"
- Now all the bones should remain still until it reaches frame 20-40, then it should blend in and out from your test pose. (While creating your bones poses you may get some artifacts between your poses, if so just ignore them or fix the curve if it bothers you.)
- If all looks good, go ahead and export your poses to *.lbp by running the provided script
- Click Export and use your selection set to select the bones that are keyed, click ok (Figure on last page)
- In the next list, choose your head bone "Biped Head" (Figure on last page)
- Keep the number of poses 20 and click ok
- Export your *.psk with ActorX
- Go into UnrealEd and make sure all your weighting looks correct.
The Bone Poses
Now you are ready to create your bone poses. You can refer to the UTRef.max file for visual reference or use the descriptions and images provided below. Impersonator for Unreal works with any rig. The default mapping is our standard nineteen bone poses; fifteen for lip-synching and four for the eyes and eyebrows. This standard rig is illustrated below. Please pay very close attention to the teeth in all illustrations where applicable. Targets in the following illustrations have been purposefully over-exaggerated for a more defined quality, however it's up to you to decide upon the look of your viseme set.Neutral Pose - "Silent" Frame 0

Pose (EE) - "Eat" Frame 10

- Open the mouth just far enough that the teeth are slightly separated.
- Pull the mouth corners up and out.
Pose (Er) - "Earth" Frame 20

- "Earth" is very close to "Church", but the lower lip completely covers the lower teeth.
- The Jaw closes slightly.
- The Tongue is close to the roof of the mouth
Pose (Ih) - "If" Frame 30

- "If" is used frequently in our phoneme mapping set.
- Imagine a combination of the jaw open along with a subtle "Eat" target; that is what "If" should look like.
- The lower teeth are just barely visible.
Pose (Oh) - "Ox" Frame 40

- "Ox" should practically be done.
- It will look close to what your 100% jaw open meta-target.
- The tongue is pulled down and resting at the base of the mouth.
Pose (Oh) - "Oat" Frame 50

- "Oat" is important. Think of how a cartoon character would make the "O" shape of its mouth.
- The mouth will form a near perfect "O" with a subtle lip extrusion.
Pose (W/OO) - "Wet" Frame 60

- "Wet" is the smallest of the targets. Imagine your character whistling and the position of the mouth.
- Mouth corners are turned down, only a small opening is visible, and the teeth completely behind the lips.
Pose (S/Z) - "Size" Frame 70

- Size is almost like "Eat" only with the mouth corners relaxed more and the jaw closed a bit.
- The mouth is open just far enough so the teeth are barely separated.
- The upper and lower teeth should show between the lips equally
Pose (Ch/J) - "Church" Frame 80

- Open the mouth and make the lips pull inward and purse.
- Be sure that the teeth are showing if they are not you can always tweak the lips
Pose (F/V) - "Fave" Frame 90

- The Jaw opens a bit and the lower lip curls under the upper teeth.
- Expose the upper teeth by moving the upper lip just high enough to show the tips of the teeth.
Pose (Th) - "Though" Frame 100

- In "Though" the Jaw is open about the same amount as "If". The tongue position is important here.
- Position the tongue so that the tip conceals most of the upper teeth.
Pose (T/L/D) - "Told" Frame 110

- The mouth corners are turned down and in but not to the point of frowning.
- The Jaw should be open a little wider than the "If" target.
- The tongue curls underneath the upper teeth, pressing forward.
Pose (B/M/P) - "Bump" Frame 120

- The lips are pressed tightly together.
Pose (N/NG) - "New" Frame 130

- "New" is a simple modification of the mouth corners and the tongue position of "If."
- Take the Tongue and place it on the roof of the mouth, exposing its underside.
- Pull the mouth corners inward just a bit.
Pose (R) - "Roar" Frame 140

- The "Roar": position is slightly smaller than "Oat" but with the lips extruded out.
- Remember you can refer to the method's chart at the top of this section to find the quickest way to complete this target.
Pose (K/G) - "Cage" Frame 150

- Then pull the mouth corners back slightly and inward.
- Position the tongue so that the tip is under the lower teeth and the back is near the roof of the mouth.
Targets (Eyebrow Up Left) - "EB_Up_L" Frame 160 and (Eyebrow Up Right) - "EB_Up_R" Frame 170


Targets (Blink Left) - "Blink_L" Frame 180 and (Blink Right) - "Blink_R" Frame 190



