Character rig main points: These
points are organized as to provide some insight and guidance to what is
necessary to setup a custom rig. I have
left it somewhat vanilla by only walking you through one side and one set of
fingers, but you may take it further as you construct your own rig. There are plenty of opportunities while
constructing a rig to add extra attributes and controllers depending on how
much you need to control your character.
- Create leg bones in the left viewport.
- For standard character use 5 bones + nub.
- Thigh, calf, heel, foot, toe, and nub. (the nub is needed for the chains)
- Create 3 chains for the leg (Animation > IK Solvers > HI Solver)
- Thigh > Heel “IKC_Heel”
- Heel > Toe “IKC_Foot”
- Toe > Nub “IKC_Toe”
- Link chains:
- IKC_Heel > IKC_Foot > IKC_Toe
- Create large rectangle shape around foot to use as a selection and control shape. Make it renderable in the modify panel. Name it: “Ctrl_Foot”
- Link IKC_Toe to Ctrl_Foot
- Ctrl_Foot now will move the entire Leg IK rig.
- Move the Ctrl_Foot shape to see the leg move. Notice how the foot and ankle rotate side to side when the controller is moved? We will fix that in the next step.
2. Leg Parent Space fix
- Select the IKC_Foot chain and go to the Motion panel.
- Change the Parent Space to IK Goal in the IK Solver Properties rollout.
- If the bone flips on its side or rotates, just change the swivel angle to -90 or 90 to fix this.
- Change the Parent Space of IKC_Toe to IK Goal and adjust the swivel angle if necessary.
- The feet should now maintain their orientation when the Ctrl_Foot is moved.
3. Leg and Foot custom attributes. (Automatic foot rolls)
- Custom attributes create a special area on the modify panel of a selected object that allow for preset animations.
- Add a custom attribute to the Ctrl_Foot shape.
- Select Ctrl_Foot and choose Animation > Parameter Editor.
- For the Name section enter “Roll” and for Range set it to 0 to 90.
- Click Add. This adds the new parameter “Roll” to the modify panel. Close the Parameter Editor.
- Masters and Slaves in the Reaction Manager.
- Open Reaction Manager: Animation > Reaction Manager
- This allows us to control the roll of the foot while still having the CTRL_Foot shape selected.
- Click the black plus sign “Add Master” and choose Ctrl_Foot. From the pop-up menu, choose Object>Custom Attributes>Roll.
- Now we need to add the slaves to the master.
- Choose IKC_Toe and IKC_Foot and select the white plus sign “Add Selected” from the pop-up menu choose Transform>IK Goal>Rotation>X Rotation.
- This has created two states for our reaction in which both “slaves” are currently in their “rest” position with a value of zero.
- Select Ctrl_Foot and in the modify panel choose the Pin Stack button (looks like a pushpin)
- We will now setup the foot roll reaction in two stages to allow the foot to raise up naturally off the ground during a walking cycle.
- Open Reaction Manager (if it still isn’t open)
- Select the Create Mode button (should turn yellow)
- Increase the Roll value to 60 and rotate the IKC_Foot chain about 45 degrees on the x axis to get the heel off the ground.
- Click the create state button (looks like an arrow pointing down with a yellow blotch behind it) This will make the Reaction Manager remember that when you adjust the Roll value to 60 that the heel must raise off the ground.
- Change the Roll value to 90 and rotate the IKC_Toe on its x axis to appx. 60 degrees. (this will really spin the foot around but we will fix it in the next step)
- Select the IKC_Foot chain again and rotate it on its x axis about 70 degrees in the opposite direction. (This should straighten the foot out)
- Click the Create State button
- Test it out
4. Spine rig (A spine rig does not require chains to make it work, a simple wire setup can control the spine for us quite easily)
Video Tutorial Link: Spine Rig 01
| 11:31 | This video tutorial will cover adding control objects to the spine and wiring the controllers to the spine bones.
- Spine bones should be created in the right viewport to insure they are orientated correctly.
- The overall guiding principle behind a good spine rig is to insure easy movement and rotation with each higher spine bone rotating or twisting at a higher value than its predecessor. This will allow for a natural looking bend to your character. We will use some control shapes and wire parameters to accomplish this. It is also important to note that wiring parameters together will also require us to use the “Freeze Rotations” command as well as aligning objects based on pivot points and orientations.
- We will be using a spine with four bones as well as a neck, head bone, and head nub. (Seven total bones)
- We will be using a control shape called “gyrohandle” to control our spine (provided in separate file) Merge this shape and name it Ctrl_SpineBase.
- Name the bottom 4 bones with the naming convention B_Spine01 – 04 starting at the bottom. Name the neck bone B-Neck and head bone B_Head and head nub B_HeadNub.
- Align the pivot point of Ctrl_SpineBase to B_Spine01 and rotate it to the front if it isn’t already.
- Link B_Spine01 to Ctrl_SpineBase. This now allows us to rotate the spine in any direction simply by rotating our control object.
- Wiring the control object to the 2nd spine bone:
- If we simply wired the control object to the second bone to give us that little extra bend every time we rotated the control object the spine would flip upside down and go crazy. To avoid this we need to align the orientations of our pivot points first.
- Select Ctrl_SpineBase, go to the hierarchy panel and select Affect Pivot Only and align it to B_Spine02, but deselect all of the position check boxes and assign XYZ on the bottom align orientation area. Turn off Affect Pivot Only.
- Freeze Rotations for both objects (ALT+Rt Click)
- Wire x rotation of Ctrl_SpineBase to B_Spine02, but while you are in the wire
parameters dialog box change the selected parameter from x rotation to the
whole rotation category to prevent us from having to redo this several more
times because our spine will need to rotate in every direction. Click the right arrow and select connect.
Video Tutorial Link Spine part two. | 14:16
This video tutoria will cover finishing up the spine as well as rigging the shoulders, elbow controllers and waist control object.
- Extra Control objects: create two copies of the Ctrl_SpineBase object and name them Ctrl_SpineNeck and Ctrl_SpineMid. These will
be used to control the rest of our spinal column.
- Align the “Position” of Ctrl_SpineNeck to the neck bone (Turn off orientation in the align
dialog and make sure position values are selected) and align Ctrl_SpineMid to B_Spine03.
- Match the control object and bone orientations.
- Select Ctrl_SpineNeck and in the hierarchy panel select Affect Pivot Only. Align the orientation (bottom of the dialog box) to the B_Head bone.
- Select Ctrl_SpineMid and align it’s orientation to B_Spine04
- Turn off Affect Pivot Only.
- Link all of these pieces together.
- B_Neck to Ctrl_SpineNeck to B_Spine04
- B_Spine03 to Ctrl_SpineMid to B_Spine02
- Rig the remaining two controllers
- Freeze rotations on B_Head, B_Spine04, Ctrl_SpineNeck, and Ctrl_SpineMid.
- Wire Keyframe XYZ rotation controller from Ctrl_SpineNeck to B_Head and wire Ctrl_SpineMid to B_Spine04.
- Test and Save. Progress to this point
- Shoulder > Upper arm > Lower arm > Hand (Create in Top viewport)
- Fingers each have 3 bones (Create in Top viewport)
- We will use an IK Solver to connect the upper arm to the handbone, so lets name our bones first. We will continue to use the same naming
convention to insure easy locating of parts later. Shoulder = B_Shoulder, Upper arm bone = B_UpperArm,
forearm = B_LowerArm, hand = B_Hand. Name the fingers, B_index01 starting at the bone closest to the hand and
continue down to the tip 01-03. (Just add Nub to the end of the nub’s name)
- Select B_UpperArm. Go to Animation>IK
Solvers>HI Solver and select the B_Hand to create the chain that we will name IKC_Wrist.
- Merge or create a Gyro shape and name it Ctrl_Wrist.
- Align the position to IKC_Wrist.
- Now just like we did with the spine controls we
need to align the orientation of the pivot points of the CTRL_Wrist to the bone it will control,
in this case that is the B_Hand bone.
- Almost done, we want the wrist to twist using this
control, so we must tell the B_Hand to constrain it’s orientation to the control object (Ctrl_Wrist).
- Select B_Hand and go to Animation>Constraints>Orientation
Constraint and select Ctrl_Wrist. Test the rotation out and see if it works.
6. Fingers and Thumb are typically setup using custom
attributes, so I will walk you through creating one finger and the thumb. Depending upon the complexity or dexterity
your character needs you may assign one attribute to control many fingers
simultaneously, but you can do that on your own. The premise behind setting up a custom
attribute for the fingers is that there are three basic poses for the
fingers. There is the “Flex” position
where the finger is fully extended, there is the “neutral” or “relaxed”
position in which the finger has a slight curl to it, and finally there is the
“clench” or “fist” position.
Video Tutorial Link Hands and Fingers
- Setting up rotations of a finger requires a few
maintenance things to be taken care of first. Select one of your finger bones, change the Reference Coordinate System
to Local and rotate one of the fingers in a natural finger curl direction to
see which coordinate you are rotating on. Undo any rotation. (Remember this
- We will be setting up custom attributes for this
process, but we will need to an Attribute Holder (an extra stack element that
lets us to easily access a custom attribute).
- We will assign the Attribute Holder to the Ctrl_Wrist object.
- Select Ctrl_Wrist and go to Animation>Parameter Editor. This will open up the Parameter Editor dialog box. There are a
few options in here we would like to adjust:
- Name = Curl_Thumb
- Range = -20 to 200. (we are using a negative value for the flex position because we want to
save the zero position for the relaxed pose, makes more sense that way)
- Repeat this step for each finger, renaming each
attribute with the appropriate finger name.
- Check out the bottom of the modify panel with the Ctrl_Wrist object selected. You should find your new Attribute Holder
- Setting up master and slave objects
in the Reaction Manager. We now have an
Attribute Holder, but we need to be able to tell it what to actually do.
- We will start with the index finger. First we will open the reaction manager by
going to Animation>Reaction Manager.
- Click the Add Master (black plus sign) and select Ctrl_Wrist and choose Modified Object>Attribute
- Select all of the bones for the index finger and
click the Add Selected (white plus sign) and choose Transform>Rotation>YRotation.
- Initial states for the y rotation of the finger
bones have now been created. Now it is
time to move on and setup some of the animations for the finger that can be
controlled through the Attribute Holder.
- e. Setting up the reactions for the index finger.
- Select Ctrl_Wrist and pin the stack on the modify panel to hold these options in place regardless
of the object selected.
- Change Curl_IndexFinger to -20 and turn Create Mode on. Rotate
the finger on the Y Axis until it has a “flexed” position and click the Create State button.
- Change Curl_IndexFinger to 100 and rotate all of the finger bones to give a partially clenched finger,
click the Create State button.
- Change Curl_IndexFinger to 200 and rotate all of the finger bones until the finger tip almost touches
the palm. Click Create State.
- Turn off Create Mode and test your attributes.
- The thumb is setup slightly different.
- First of all, the thumb rotates on a different axis
than the fingers, and the thumb bone needs to be setup with the base bone
having controls set for all three axis.
- Pin the Ctrl_Wrist stack again and add the Curl_Thumb as a master into the Reaction Manager.
- Now we have to add the B_Thumb01 as a slave, but
when we add it’s rotation values, we need to repeat this step for every axis,
so select Transform>Rotation>X
Rotation, repeat this with Y and then Z.
- Select the remaining thumb bones and click Add
Selected on the Z axis (or whatever Axis applies to your thumb)
- Turn on Create mode and as you change the Curl_Thumb values, rotate the thumb and
click the Create State button.
- Test it out
7. Making the Shoulder work. This will be slightly different than the
wrist, but yet again effective for giving you a lot of control. You will need a fresh gyro object (don’t copy
the one you already have because it has all kinds of attributes already
attached to it), name this gyro Ctrl_Shoulder.
- Align this control object to B_UpperArm using pivot point mode.
- Now we need this controller to actually rotate
according to where the shoulder bone starts, so in the hierarchy panel select
Affect Pivot Only and align the pivot point of the Ctrl_Shoulder to B_Shoulder (Make sure pivot point is selected in the align dialog box) Align both position
- Now linking the Ctrl_Shoulder to the appropriate geometry is important to insure
that it controls and moves our geometry correctly.
- Link B_Shoulder to Ctrl_Shoulder to B_Spine04
- Shoulder Dun.
8. Extra appendage controls
- Any shape will do just fine for this next step, but lets use a helper object. Create a Point Helper and change it’s type
to box and we shall call him Ctrl_Knee. Place this box in front of the knee and link
it to CTRL_Foot.
- Select IKC_Heel and in the Motion panel under the Solver Properties rollout there is a spot to
pick the target. Pick the Ctrl_Knee dummy. Knee Dun.
- Copy this dummy and place it behind the elbow. Name It Ctrl_Elbow and link it to Ctrl_Wrist.
- Select IKC_Wrist and in the motion panel pick the Ctrl_elbow as the target.
Video Tutorial Link: Finishing the Rig. | 12:52
This video tutorial will walk you through the final steps of placing the remaing body control objects and testing to make sure the rig is functioning properly.