Вы находитесь на странице: 1из 4
TUTORIALS | Rigging a quadruped for animation
TUTORIALS | Rigging a quadruped for animation

MMAYAAYA

Do the foxtrot Part one

At the heart of every animated character’s performance, you’ll find a well executed rig. In the first of two tutorials, discover all you need to know to achieve effective character set-up and animation

BY FIRAT ENDEROGLU

FACTFILE FOR Maya 7+ DIFFICULTY Intermediate TIME TAKEN 2 hours ON THE CD • Full-size
FACTFILE
FOR
Maya 7+
DIFFICULTY
Intermediate
TIME TAKEN
2 hours
ON THE CD
• Full-size screenshots
• Maya scene files
• Finished rig
ALSO REQUIRED
N/A
C
C

haracter set-up is truly the unsung hero of the animation world. At the root of every great animated performance lies the foundation of

a successful, well-planned rig. One of the most challenging models to rig is a quadruped. Unlike bipeds, which have one centre of mass based at the pelvis, quadrupeds have two: one at the withers (the highest point on the back, between the shoulder blades) and one at the hindquarters. For ease of animation, independent control over these two points is crucial. The model we’re using to demonstrate this rig is based on a realistically proportioned red fox. It is a simple polygon mesh created in Maya, made exclusively for 3D World. The model, UVs and texture maps were designed by Gwendelyn Robson. This article is aimed towards experienced Maya users and

assumes the reader has a basic understanding of character set-up,

including connection types, simple IK and FK set-ups and constraints. The purpose of this tutorial is to offer the user an idea how character set-up TDs approach rigging quadrupeds in a professional production environment. As production-level quadruped rigs can be

exceedingly complex, we will walk through a simplified rig through to completion, inspired by professional concepts. When designing any rig, you should be conscious of the full range of the character’s actions and performance. Also, for successful joint placement, it is crucial to be familiar with the anatomy of the creature you’re rigging. For the fox, our goal is to produce a rig capable of basic animation cycles and full-body performances. Once you have completed the tutorial, we recommend that you start from scratch by creating your own joint hierarchy rather than using the one provided. You will hopefully discover how well-planned joint placement will impact the realism of your character’s range of motion and performance. In next issue’s follow-up to this tutorial, we shall build upon the foundation of this simplified rig and progress to areas of higher detail and complexity, including the face.

Firat Enderoglu is a pipeline TD at Sony Pictures Imageworks, on projects including Spider-Man 3. His rigs have recently been showcased in Inspired 3D Advanced Rigging and Deformations. www.animatr.com

 

048 | 33DD WWORLDORLD April 2007

TTDW89.t_foxDW89.t_fox

004848

112/2/072/2/07

111:53:481:53:48

▲ Rigging a quadruped for animation | TUTORIALS STAGE ONE | Rigging the legs 01 Load

Rigging a quadruped for animation | TUTORIALS

▲ Rigging a quadruped for animation | TUTORIALS STAGE ONE | Rigging the legs 01 Load

STAGE ONE | Rigging the legs

for animation | TUTORIALS STAGE ONE | Rigging the legs 01 Load Stage01.mb from the CD.
01
01

Load Stage01.mb from the CD. The model is templated and the basic joints are placed and named,

with their local rotation axes (LRA) set up. Note that they don’t all connect: we will connect them as we go through. This file also includes controllers that aren’t attached to anything: feel free to use these or create your own.

to anything: feel free to use these or create your own. Note that the base neck

Note that the base neck joint is also separated from the spine. We won’t parent the neck to the spine

because we want to control the rotation of the head from the chest and neck controller’s rotations. If we parent it, the head will rotate even when we move the chest controller up and down.

04
04
even when we move the chest controller up and down. 04 T TDW89.t_fox DW89.t_fox 06 Point

TTDW89.t_foxDW89.t_fox

06
06

Point constrain neck_base to spine_6. This will

stop unwanted rotations on the neck – but we still need to control it, so orient constrain it to ctl_chest.

Parent the neck joint under neck_base.

004949

ctl_chest. Parent the neck joint under neck_base. 0 049 49 02 Place a joint below the
02
02

Place a joint below the waist joint and name it ‘rr_cn_legs’. Set the LRAs to the world by using the

Orient Joint tool and setting Orientation to None. Parent the legs to this joint and parent it to the waist joint. The reason we’re not connecting this to the spine is because we want to separate all the waist motion. Connect ctl_rr_legs rotations to this new joint.

EXPERT TIP i Local rotation axes (LRAs) When you want to connect a joint directly
EXPERT TIP
i
Local rotation axes (LRAs)
When you want to connect a joint
directly to a controller, you need to
ensure they both have the same LRA,
otherwise the driven joint will be
offset. Create a null node and name it
by adding ‘_par’ to the driver’s name.
Snap it to the driver node, orient-
constrain it to the driven joint then
delete the constraint. Parent the driver
object under this null node and Freeze
Transformations. This will make it
inherit the LRA from its parent node. If
it’s parented to the world, it will zero
them out. This way you can directly
connect a controller to a joint without
offsetting the joint’s orientation.
to a joint without offsetting the joint’s orientation. 07 Now we’ll set up one leg, but
07
07

Now we’ll set up one leg, but the instructions are applicable to the other legs. Make sure to add the

side tokens while naming nodes. Create an IK handle from leg_1 to the leg_3 joint, with the Sticky option selected, and name it ‘up_ikh’. Freeze transformations.

selected, and name it ‘up_ikh’. Freeze transformations. 03 Now do the same for the chest. Create
selected, and name it ‘up_ikh’. Freeze transformations. 03 Now do the same for the chest. Create
03
03

Now do the same for the chest. Create another joint right below the spine_6 joint, name it ‘fr_cn_legs’

and set its LRA to world. Parent the legs to this joint, but point-constrain (Constrain > Point) this joint to spine_6. Check Maintain Offsets so the joint won’t move. Orient-constrain (Constrain > Orient) this joint to ctl_fr_legs.

(Constrain > Orient) this joint to ctl_fr_legs. 05 Create a null node, name it ‘neck_base’ and
05
05

Create a null node, name it ‘neck_base’ and snap

it to the spine_6 joint. Give this node the same

orientation axis as the spine_6 joint (see the Expert Tip to the left), and you should end up with neck_base node parented under the neck_base_par node.

with neck_base node parented under the neck_base_par node. 08 Make another Sticky IK handle from the
08
08

Make another Sticky IK handle from the leg_3 joint

to the leg_4 joint. Call it ‘dn_ikh’. We’re going to use

a lot of empty nodes and parenting tricks to get all

the control we want, and then we will connect these empty nodes to the controllers, giving us a cleaner set-up.

April 2007 33DD WWORLDORLD | 049

112/2/072/2/07

111:54:061:54:06

to the controllers, giving us a cleaner set-up. April 2007 3 3D D W WORLD ORLD

▲ TUTORIALS | Rigging a quadruped for animation STAGE ONE (Continued) | Rigging the legs Point-constrain

TUTORIALS | Rigging a quadruped for animation

STAGE ONE (Continued) | Rigging the legs

for animation STAGE ONE (Continued) | Rigging the legs Point-constrain dn_ikh and orient-constraint the 09 leg_4

Point-constrain dn_ikh and orient-constraint the

09 leg_4 joint to the foot controller. Select Maintain

Offset in the Orient Constraint Options box. Parent the foot controller under the hock controller, then parent both of the IK handles and the hock controller under the leg controller. Pole Vector-constrain the PV controller to both of the IK handles and parent its parent under the leg controller.

IK handles and parent its parent under the leg controller. After fi nishing both of the

After finishing both of the rear legs, set up the front

10 legs the same way. The only difference is that the

hock joint and its controller are absent. Create the IK handle from leg_2 to leg_4, and connect the shoulder controller’s rotations to the leg_1 joint. Do the same for both of the front legs.

to the leg_1 joint. Do the same for both of the front legs. Next, we’re going

Next, we’re going to use a spline IK set-up for the

11 spine of the fox, but it will be slightly different from

setting up a common biped spline IK set-up. For example, we will try not to lock each end: this way we will have a rootless back set-up.

STAGE TWO | The spine

we will have a rootless back set-up. STAGE TWO | The spine We can’t parent the

We can’t parent the waist joint to the spine because

12 of our spine rig’s complications. When we move the

beginning of the IK spline, where the root joint is, it will drag the rest of the joint chain without properly moving the controllers. To combat this, we’ll do a trick similar to the neck- to-chest connection, but we will just connect translations.

to-chest connection, but we will just connect translations. Create a spline IK from spine_1 to spine_6

Create a spline IK from spine_1 to spine_6 with

14 spine_curve; name it ‘spine_ikh’. Create clusters for

CVs on each end and one cluster for two CVs in the middle. Make sure the Relative option is selected. Name them as ‘spine_a_cls’, ‘spine_b_cls’ and ‘spine_c_cls’, with ‘a’ being the waist one. Parent them under spine_curve and it will automatically group the clusters. Don’t forget to name them.

group the clusters. Don’t forget to name them. Create a null and name it ‘waist_base’. Point-

Create a null and name it ‘waist_base’. Point-

13 constrain it to the spine_1 node, ensuring it doesn’t

maintain the offsets. We need this null to be in the same position as the spine_1 joint. Parent the waist joint under this node. Now the set-up will not drag the fox’s tail, and the controllers will remain with the joints.

tail, and the controllers will remain with the joints. Point-constrain ctl_waist, ctl_back and ctl_chest to 15

Point-constrain ctl_waist, ctl_back and ctl_chest to

15 these clusters, with Maintain offset selected. Also

orient constrain ctl_waist to waist and ctl_chest to the spine_6 joints. At this point, you should clearly see how the rig is going to work if you play with those three controllers. Hide the spline IK handle.

EXPERT TIP i Spline IK The most important part of this set-up is the curve
EXPERT TIP
i
Spline IK
The most important part of this set-up
is the curve that will be used in the
spline IK. We don’t want to use a lot of
controllers: one for the chest, one for
the waist area and one in the middle
should suffice. Ideally, a curve with
three Control Vertices (CVs) would be
great, but we need four CVs to make a
cubic CV curve. This is an area you can
experiment with. Remember you can
always use a pre-made curve while
creating the spline IK: just turn off the
Auto Create and Auto Simplify options
and select the curve after selecting
the base and end joints. You can also
make changes to the curve afterwards.
joints. You can also make changes to the curve afterwards. Because of the way quadrupeds move,

Because of the way quadrupeds move, you will

16 want to have more than one pivot node for the body

controller. We will use an old trick that involves using a Multiply Divide node to negate the transformations on a node, letting it only rotate the hierarchy.

 

050 | 33DD WWORLDORLD April 2007

TTDW89.t_foxDW89.t_fox

005050

112/2/072/2/07

111:54:111:54:11

TUTORIALS | Rigging a quadruped for animation STAGE TWO (Continued) | The Spine This trick

TUTORIALS | Rigging a quadruped for animation

STAGE TWO (Continued) | The Spine

a quadruped for animation STAGE TWO (Continued) | The Spine This trick will give you a

This trick will give you a pivot node that you can

17 move. However, as it won’t move the rig, you can

position it wherever you want and rotate the rig from that position. You can apply this to any node or rig on which you need a second pivot.

this to any node or rig on which you need a second pivot. Next, group ctl_body

Next, group ctl_body and name it ‘ctl_body_neg’.

18 Group the neg node and name it ‘ctl_body_piv’.

Select the piv and neg nodes and open Hypergraph. Switch to Dependency Graph by pressing the Input and Output Connections icon. Select Rendering > Create Render Node and create a Multiply Divide node under Utilities. Name it ‘ctl_body_piv_md’.

Divide node under Utilities. Name it ‘ctl_body_piv_md’. Type ‘-1’ for all the Input2 fields in the

Type ‘-1’ for all the Input2 fields in the attribute

19 editor. Connect ctl_body_piv’s translate into Input1,

and connect the output from the md node to ctl_ body_neg’s translate. Lock all the channels of the neg node, position ctl_body_piv to wherever you want the pivot to be and then rotate it. You can use this trick on any node or rig.

STAGE THREE | The tail end

this trick on any node or rig. STAGE THREE | The tail end For the tail,

For the tail, ears and jaw, we will use basic FK

20 controllers. Their LRAs are already adjusted to

match the joints, so all you have to do is to connect rotations in the Connection Editor as shown above.

connect rotations in the Connection Editor as shown above. Before finishing, we need to organise the

Before finishing, we need to organise the scene

21 a little bit. Parent all the leg controllers under

Placement, then parent Placement under Fox. Group spine_1, neck_base_par, waist_base, spine_curve, spine_ikh and fr_cn_legs, name the group ‘Rig’ and parent it under Fox, as shown above.

the group ‘Rig’ and parent it under Fox, as shown above. Before binding, don’t forget that

Before binding, don’t forget that the joints are not

22 all parented under a single node, so you need to

make sure you pick all proper joints. Also, don’t bind the eyes, because they are already constrained to the head, and it will cause double transformations. This particular rig has not been designed to make ultra-realistic deformations:

the purpose of this tutorial was to give an idea of how to

approach rigging a quadruped for the first time, how to set up a spine, what parts of the movement we want to isolate, and so on. Think of this rig as a base muscle car: every section of it is designed to be improved upon. If you have questions related to this rig or character set-up in general, I would be more than happy to help. You can contact me personally at 3dwtut@animatr.com.

 

52 | 33DD WWORLDORLD April 2007

TTDW89.t_foxDW89.t_fox

SSec1:52ec1:52

112/2/072/2/07

111:54:161:54:16