In this section, we'll make some final adjustments to the rig to make it easier to control. Specifically, we'll add:
- a master bone so we can move the entire character at once.
- knee-lock targets so we can control where the knees point.
- an eye target bone so we can easily change which direction the eyes are looking.
An improved rig
The rig described on this page is the original rig used for writing this tutorial. Later parts of the tutorial refer to the bones you create in this rig. There are some limitations, because I tried to keep it simple. Once you've gone through this tutorial, I highly recommend you check out the improved foot rig instructions by Mike Stramba. His improvement starts with the rig you create here, but makes changes that make the armature easier to manipulate and animate. Plus, you'll learn a lot more about rigging!
Adding a master bone
- Select the armature and enter Edit mode.
- Select the tip of spine1 and extrude it backward with E.
- In the Armature Bones panel of the Edit buttons, name this bone something meaningful. I named it "master".
- Make this new bone the child of none, so that the only way this bone will move is if we move it directly.
This bone will the be highest parent of all the other bones in the armature. The master bone will be the one to move when we want to move the whole body at once, like in a jump.
- For each bone (spine1, leg.l, and leg.r)
- Select the bone.
- Choose master in the Child of menu to parent it to the master bone.
Note that dotted lines are now drawn from each bone to the master bone.
Now when we move master in Pose mode, the entire armature and body will move.
- (Turn off Auto IK if you have it on)
- Here's something that needs fixing: in Pose mode, grab the spine1 bone and move it around. When you move it forward and down, you get something like this.
- But when you move it back and down, you get something like this. Ouch!
The IK constraints on the legs are doing their job. They're trying to keep the leg pointed at the leg target, and they don't know that knees only bend one way. To fix this, we'll add another constraint to the upper leg bone to keep it pointing in the direction we tell it.
- Clear location and rotation of all bones (A-A-AltG-AltR).
- Switch to the armature's Edit mode.
- Select the tip of the upper leg bone (at the knee) and symmetrically extrude a bone forward.
For each of the two new bones (remember you have to change these settings individually, they're not automatically symmetrical):
- Name the bone (I called them knee.l and knee.r).
- Disconnect the bone (Click the Con button).
- Make it the child of master.
- In Side view, move the knee bones away from the actual knees. These bones will be acting as targets for the upper legs, and if they're too close the upper legs might not know what to point to. I also scaled them down a little with Sso they're less in the way. Remember, with X-Axis Mirror selected, you only have to move and scale one bone, and the other will automatically update.
Now we'll add another IK Constraint to the upper legs, telling them to try to point to the new knee bones.
- Switch to Pose mode.
- First select knee.l, then shift-select upper_leg.l.
- Add an IK constraint with ⇧ ShiftI. Whoa, the armature goes crazy! That's because by default, the ChainLen is 0, which means the IK constraint tries to point as long of a chain as it can toward the knee bone. That chain includes hip.l and spine1, so it tries to point them to the knee.l target as well.
- We only want a single bone chain (just uper_leg.l) to point to the knee, so change the ChainLen of the IK constraint on upper_leg.l to 1.
- The armature now acts normally.
Do the same thing for the other leg:
- Select knee.r, then shift-select upper_leg.r.
- Add an IK constraint with ⇧ ShiftI.
- Change the ChainLen to 1.
Test out the new knee bones by moving the spine1 bone around, especially down and back. Much better!
While we could rotate the eyes individually when animating, it will be a lot easier to have them track an object. It's possible to have the eyes track any object, but it will be easier to animate if we make that object a bone in the existing armature.
- In Pose mode, clear the rotation and location of all bones.
- Switch to the armature's Edit mode.
- Select the head bone.
- Duplicate it with ⇧ ShiftD, and move it in front of the head.
- Name the bone eyes or something meaningful.
- Make eyes a child of master. Note we didn't have to disconnect the bone this time, a bone is automatically disconnected when it's duplicated from an existing bone.
- Move the bottom (the root) of the bone to eye level. The root of the bone is where the eyes will point to (by the way, you could switch to Octahedron draw type for the bones to better see where the root is).
- Press ⇆ Tab to switch to Pose mode (which is a substitute for Object mode) and select the character's left eye. It may take a couple of attempts to select the eye instead of the body. You can always switch to Layer 2 (with 2, to see just the eyes), select the eye, then return to view all layers (`). The eye mesh is in Object mode.
- Switch to the Object buttons in the Button window (F7). There is a Constraints panel here, just like there was for the armature in Pose mode.
- In the Constraints panel, add a Track To constraint.
We want to tell this constraint that we want it to point the eye at the eyes bone in the armature. We'll also have to tell it which axis of the eye should be considered "up", and which axis should point toward the eyes bone. To figure this out, we need to remind ourselves of rotation of the eyes.
- In the Draw panel under the Object buttons, make sure Axis is selected.
- I had to switch to wireframe mode and just view Layer 2 to see the axes, and even then it was a little tough to see. Here, the Z axis is pointing up, the X axis is pointing to the right, and the Y axis is pointing back. In this case, I want to tell the Track To constraint that Z is up. The axis arrows point in a positive direction, and the Y axis is pointing back, so I want negative Y to point toward the eyes bone.
- Armed with the knowledge of which axis you want up and which you want to track with, view all layers and switch back to shaded mode (Z).
- In the OB: text box of the eye's Track To constraint, make the target object "Armature".
- Make the target bone "eyes" or whatever you have named the eyes bone (in the BO: text box that appears).
- Select "-Y" in the To: buttons. This is the axis we want to point to the eyes bone.
- Select "Z" in the Up: buttons. This tells the constraint which direction to point up.
Do the same thing to the other eye:
- Select the other eye.
- Double check the axes and the direction you want it to point (both eyes should be the same, otherwise go back and check out the instructions on rotating the eye).
- Add a Track To constraint.
- Make the target "Armature" and the "eyes" bone.
- Select the To: and Up: axes as appropriate (I used -Y as the To: and Z as the Up).
- Select the armature in Pose mode and move the eyes bone around. The eyes should track the bone!
Sidenote Update: - 13. Dec. 2009
(although not the original author) -
Following this tutorial i learned that you can make each eye track either tip or root on the "eyes" bone. Doing this makes it much easier to correct the cross eyes, and give a more natural look. simply rotate the eyes bone 90 degrees, and adjust the "head/tail" setting in each eye's Object Panel (F7).
Tips for using the rig
A note on Auto IK
While it can be very useful for broadly positioning the arms, for the most part, you'll want to leave Auto IK off. If you have Auto IK on, the eyes, knee bones, and leg bones won't work.
Some tips for each bone, starting from the top:
- head: use trackball rotation (R-R) to swivel the head around.
- eyes: move this bone around to control what the eyes are looking at. Move this bone farther away from the face to correct cross-eyes.
- neck and spine bones (except spine1): Rotate individually for subtle bending of the body, or use Auto IK on the head bone for extreme bending of the spine.
- arm bones: Turn on Auto IK and move the finger2 bones for broad sweeping motions of the arms.
- For more control, turn off Auto IK and rotate the bones in the arm individually. This is the only way to get sharp angles in the arm joints. Don't forget to turn off Auto IK when you're done with it.
- master: move and rotate this bone to manipulate the entire armature. For example, using the master bone is the only way to get the whole character off the ground in a jump.
- spine1: Move this bone to move the entire upper body while the feet stay put. Very useful for walkcycles.
- knee: these bones are not used very often and are primarily used to keep the IK constraints on the legs under control. But when you need to point the knees in a direction, use these bones.
- upper_leg and lower_leg: leave these bones alone. The leg bones and IK constraints do all the work.
- leg: These are the most versatile bones. Move the leg bones to move the entire leg. Be careful: with this simple of a foot rig, you run the risk of stretching the feet away from the legs.
- Rotate the leg bone to rotate the entire foot.
- foot: leave this bone alone, it is rotated by rotating the leg bone.
- toe: Rotate these bones to bend at the toe.
Next: Setting up for animation
Previous: Lower body: armature and weight painting