Adverti horiz upsell
MAKING AN ADVANCED LEG SKELETON
MAKING AN ADVANCED LEG SKELETON
sdb1987, updated 2005-09-26 17:59:38 UTC 56,361 views  Rating:
(2 ratings)
Page 1 of 2



by Bora Dayioglu

for comments and suggestions;
mailto:bora@animationartist.net
Home Page

Hi everyone,

In this tutorial I tried to explain my solution to make an easy to animate leg skeleton approach. What I did is simply to create two simple leg skeletons to drive the main skeleton which will later be used while skinning. By the help of these two skeletons, namely control skeleton and reverse skeleton, I will also avoid main skeleton`s penetration when it touches the ground plane. It may look as a bit long and complex but, it just takes about 5-10mins to complate and I`m sure that you`ll like it....... At least I like it ;)
Anyway, please feel free to write me about your comments and/or suggestions.
You can also download maya binary files of all steps explained below as a zip file by clicking the link below.



download advanced_leg_skeleton.zip




Step1 - Creating the control leg

Start by creating a five joint leg skeleton as in figure.1.
Name the joints as x_pelvis, x_knee, x_heel, x_ball, and x_toe. Select the x_pelvis joint and freeze transformations. (Modify > Freeze Transformations)
Create a rotate plane ik handle from x_pelvis joint to x_heel joint and name it as `ik_leg` (Skeleton > IK Handle Tool)


Figure1

Step 2 - Setting up locators

Create three locators and rename them as lx_toe, lx_ball and lx_heel. (Create -> Locator).
Point constrain lx_toe locator to x_toe joint. (Select x_toe joint, then select lx_toe locator
and Constrain > Point).
Again, point constrain lx_ball locator to x_ball joint and point constrain lx_heel locator to x_heel joint the same way.


Figure 2

Step 3 - Seting up the reverse leg

Select the root joint of the control leg skeleton (x_pelvis) and duplicate without any connections
(Edit > Duplicate)
Move the duplicated leg elsewhere and name the joints from top to botttom as r_pelvis, r_knee, r_heel, r_ball and r_toe.
Select r_toe joint and reroot the skeleton.(Skeleton > Reroot Skeleton).
Create an ik handle from r_toe to r_ball and name it as `rik_ball`.(Skeleton > IK Handle Tool)
Create another ik handle from r_heel to r_pelvis and name it as `rik_pelvis`.(Skeleton > IK Handle Tool)


Figure 3

Step 4 - Constraining reverse leg to the control leg

Point constrain rik_pelvis ikhandle to x_pelvis joint. (Select x_pelvis joint, then select rik_pelvis ikhandle and Constrain > Point)

Open expression editor (Window > Animation Editors > Expression Editor).

Name expression as `const_toe`
In the expression window, write down;

r_toe.translateX = lx_toe.translateX;
r_toe.translateZ = lx_toe.translateZ;
if(lx_toe.translateY>0)
{
r_toe.translateY = lx_toe.translateY;
} else
{
r_toe.translateY = 0;
};

Press `Create` button to create this expression.
What this simple expression does is to constrain X and Z positions of r_toe joint to lx_toe locator, and to constrain Y position of r_toe joint to lx_toe locator while r_toe is above the ground plane. So, reverse leg will move with control leg while its above the ground and it will stay on ground when control leg penetrates ground plane. To do this we`ll create another expression for r_ball joint.

Create another expression named `const_ball`
In expression window, write down;

rik_ball.translateX = lx_ball.translateX;
rik_ball.translateZ = lx_ball.translateZ;
if(lx_ball.translateY>0)
{
rik_ball.translateY = lx_ball.translateY;
} else
{
rik_ball.translateY = 0;
};