Toetap v3
Toetap v3
In this tutorial you will create and rig a simple leg with custom Attributes to allow more
efficient animating. You will then create a copy of the leg, and rig it and create another set of
custom Attributes.
Learning Outcome
The objective of this tutorial is to introduce you to the following :
1
Maximise the Side viewport (SPACE BAR in Front viewport). Turn on “snap to grid”. Click and
create joints for the Hip (joint1), Knee (joint2), Ankle Knee (joint3), Toe (joint4) and Toetip
(joint5), by aligning them to the grid.
Turn on “snap to point”. Then, select joint 1 and shift it into position by translating it along
the z-axis.
Make sure the final position is aligned to the centre of the topmost sphere (which represents
a ball joint). Refer to diagram below:
2
Next, shift the rest of the joints into their respective positions, using the local axis
(Mac=Home : PC=Insert). Then, translate them along the z-axis until the joints are in place,
as shown below:
3
Open the Outliner and name the Joints as listed below. Follow this naming convention :
joint_side_character (eg. knee_l_robot01)
After you have adjusted the Joints the local axis are no longer aligned to the Joint Chain.
When you are confident the Joints are in position, select the Hip Joint (hip_l_robot01) and re-
align the axis to the Joints.
Animation > Skeleton > Orient Joint > Options
4
Reset the Orient Joint Options.
Edit > Reset
In this tutorial, the Joint Chain is created facing along the negative X axis. Therefore, the
local X axis should be aligned along the Joints Chain. The local Y axis should define the “up”
direction and the local Z axis should be the major axis for rotating the Joints.
Under the Orientation setting, the order of axis defines alignment, up, rotation. In this
tutorial you should select XYZ.
Note : If you forget to Orient the Joints, they will rotate around arbitrary axis and make
posing your character during animation a nightmare.
Click Orient.
The next task is to parent all the polygon meshes into the respective joints:
5
Shift + Select the mesh and its respective joint, and press “P”. Repeat this step for the rest of
the polygon meshes and joints.
Create 3 IK chains (see diagram below). The first starts at hip_l_robot01 and ends at
ankle_l_robot01.
6
The second starts at ankle_l_robot01 and ends at toe_l_robot01.
7
The third starts at toe_l_robot01 and ends at toetip_l_robot01.
Open the Outliner and name the IK Handles as listed below. Follow this naming convention :
name_side_ik_character
ankle
The pivot point of an IK Handle is always located at the end of the IK chain. By Grouping
each IK Handle you can then adjust the local axis (pivot point) of the Group and therefore
create an IK Chain with pivot points where we need them.
Select each of the IK Handles separately and Group them (Ctrl +G).
Open the Outliner and name the Groups as listed below. Follow this naming convention :
name_side_group
8
Note : Do not use any spaces or capital letters in the names.
Adjust the position of each group’s pivot point using the local axis (Mac=Home : PC=Insert).
You can save a lot of time by pressing the V key to snap the local axis of the Joints.
ankle_l_group
9
toe_l_group
toetap_l_group
10
Note : Remember to toggle the local axis mode off by pressing Mac=Home : PC=Insert
again.
11
3. Select heel_roll_group_l_r from the outliner and press CTRL + G to create an empty
group. Name the group as heel_roll_group_l_l.
1. Select heel_roll_group_l_l from the outliner and press CTRL + G to create an empty
group. Name the group as heel_tap_group_l.
12
Setting up Heel Twist group:
1. Select heel_tap_group_l from the outliner and press CTRL + G to create an empty
group. Name the group as heel_twist_group_l.
13
Then modify the Control Vertices to create a simple foot shape. Move it into place over the
Joints Chain.
Delete the History and Freeze the Transformation. This is very important as in the future you’ll be able to
reset your Characters Rig by setting all the Control Objects values to 0 (zero).
14
Note : Don’t forget to do this..!!
Summary : You created a Joint Chain, adjusted it and re-oriented the local axis. You then
added 3 IK Handles to the Joints Chain. The local axis of the IK Handles were in the wrong
position. To solve this problem, you Grouped each IK Handle and then adjusted the local axis.
You then created 4 additional Groups and a Control Object using a NURBS Circle. You then
15
Parented the Groups to the Control Object. You finally adjusted the Hierarchy as shown in the
diagram above.
The Control Object(controller_l_foot_robot01) is therefore the Root of the hierarchy and the
Groups. Translating, Rotating and Scaling the Control Object now effects the Groups. The
Groups contain the IK Handles and the these effect the Joints Chain.
Note : Read the summary above again and make sure you understand what you have done
so far and why. When you are ready, proceed with the tutorial.
The objective now is to create a set of custom Attributes (sliders) for the Control Object to
control the Groups.
Note : See the Appendix at the end of this document to see how each custom Attribute will
effect the Groups.
Select the Control Object(controller_l_foot_robot01). Open the Channel Window (right of the screen) and
display the Attribute list.
RMB on the list of Attributes and select Add Attribute. Follow the steps below to add a
custom Attribute to the Control Object. 1. Enter the Attribute Name : Toe_Tap
2. Set the Data Type to Float
3. Enter a Minimum value of -30
4. Enter a Maximum value of 30
5. Enter a Default value of 0
6. Click Add.
16
Following the table below, add a total of 6 new Attributes to Control Object(controller_l_foot_robot01).
Toe_Tap -30 30 0
Tip_Toe 0 45 0
Foot_Bend 0 45 0
Heel_Roll -45 45 0
Heel_Twist -30 30 0
Heel_Tap -45 45 0
When you have finished, check the Attribute list against the diagram below (the order of the list may differ).
17
You have now created 6 custom Attributes. They are in effect 6 empty sliders. The objective
now is to connect each of the sliders to the Hierarchy created earlier.
Each Attribute will have a 3 values Set on it. A Minimum, Maximum and Default value as
defined in the table above.
OK, let’s start by setting the first 3 values for the Toe_Tap Attribute. Open the Set Driven
Key options.
18
Create a Driven Key by following the steps below…
1. Select the Driver object from the Outliner (controller_l_foot_robot01).
2. Click Load Driver
3. Select the Attribute (Toe_Tap) from the list.
4. Set the value in the Attribute list (0).
5. Select the Driven object from the Outliner (toetap_l_group).
6. Click Load Driven
7. Select the Attribute (rotateX) from the list.
8. Set the value in the Attribute list (0).
9. Click Key.
This will have Keyed a value of 0 on the Toe_Tap Attribute to 0 for the X rotation of
toe_l_group.
Now repeat the steps to create the Minimum value.
1. The Driver is already loaded (controller_l_foot_robot01).
2. Attribute (Toe_Tap) is already selected.
3. Set the value in the Attribute list (-30).
4. The Driven object is already loaded (toe_l_group).
5. The Driven Attribute (rotateX) is already selected.
6. Set the value in the Attribute list (-30).
7. Click Key.
19
Now repeat the steps again to create the Maximum value.
8. The Driver is already loaded (controller_l_foot_robot01).
9. Attribute (Toe_Tap) is already selected.
10. Set the value in the Attribute list (30).
11. The Driven object is already loaded (toe_l_group).
12. The Driven Attribute (rotateX) is already selected.
13. Set the value in the Attribute list (30).
14. Click Key.
Done..!! You’ve now created a Set of 3 Driven Keys. To see the result select the Control
Object(controller_l_foot_robot01). Reset the Toe_Tap value back to 0 and the toe_l_group
return to the default rotation.
Now select the Attribute label (not the value) in the Attribute window. MMB button in the
viewport and drag the mouse left and right to
Follow the table below and create a Set of 3 (Default, Min and Max)Driven keys for each of
the 6 Attributes.
Note : Remember you need to Load a different Driven for each Set of 3 Keys.
heel_roll_group_l_r 45
rotation Z
0
Heel_Roll controller_l_foot_robot01
heel_roll_group_l_l -45
rotation Z
Heel_Twist controller_l_foot_robot01 heel_twist_group_l -30 30 0
rotation Y
20
Appendix : Yellow Dot indicates pivot point (axis)
-30 30 0
Toe_Tap toetap_l_group
rotation X
Tip_Toe toe_l_group 0 45 0
rotation X
0 45 0
Heel Roll heel_roll_group_l_r
rotation Z
heel_roll_group_l_l -45 0 0
Heel Roll rotation Z
21
Foot_Bend ankle_l_group 0 45 0
rotation X
Create a locator.
Use snap to point and move pole_vector_leg_l_ctrl to the same position as the
knee_l_robot01 joint. Then, select pole_vector_leg_l_ctrl and translate it along the Z axis
so that it is in front of the knee_l_robot01 joint, as shown below:
22
Next, select pole_vector_leg_l_ctrl and freeze transform. This will set all its attributes back
to zero.
Select pole_vector_leg_l_ctrl and hold the CTRL key and select ankle_l_ik from the outliner
as shown:
23
Finally, select pole_vector_leg_l_ctrl and parent it to controller_l_foot_robot01.
Done.
24