You are on page 1of 4

TUTORIALS | Rigging a quadruped for animation

MAYA

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
haracter set-up is truly the unsung hero of the exceedingly complex, we will walk through a simplified rig through

C animation world. At the root of every great


animated performance lies the foundation of
a successful, well-planned rig. One of the most
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
challenging models to rig is a quadruped. Unlike bipeds, which placement, it is crucial to be familiar with the anatomy of the creature
have one centre of mass based at the pelvis, quadrupeds have you’re rigging. For the fox, our goal is to produce a rig capable of basic
FACTFILE two: one at the withers (the highest point on the back, between animation cycles and full-body performances.
FOR the shoulder blades) and one at the hindquarters. For ease of Once you have completed the tutorial, we recommend that you
Maya 7+ animation, independent control over these two points is crucial. start from scratch by creating your own joint hierarchy rather than
DIFFICULTY The model we’re using to demonstrate this rig is based on a using the one provided. You will hopefully discover how well-planned
Intermediate realistically proportioned red fox. It is a simple polygon mesh created joint placement will impact the realism of your character’s range of
TIME TAKEN in Maya, made exclusively for 3D World. The model, UVs and texture motion and performance. In next issue’s follow-up to this tutorial,
2 hours maps were designed by Gwendelyn Robson. we shall build upon the foundation of this simplified rig and progress
ON THE CD This article is aimed towards experienced Maya users and to areas of higher detail and complexity, including the face.
• Full-size screenshots assumes the reader has a basic understanding of character set-up,
• Maya scene files
• Finished rig
including connection types, simple IK and FK set-ups and constraints. Firat Enderoglu is a pipeline TD at Sony Pictures Imageworks,
The purpose of this tutorial is to offer the user an idea how on projects including Spider-Man 3. His rigs have recently been
ALSO REQUIRED
N/A character set-up TDs approach rigging quadrupeds in a professional showcased in Inspired 3D Advanced Rigging and Deformations.
production environment. As production-level quadruped rigs can be www.animatr.com

048 | 3D WORLD April 2007

TDW89.t_fox 048 12/2/07 11:53:48


Rigging a quadruped for animation | TUTORIALS

STAGE ONE | Rigging the legs

Load Stage01.mb from the CD. The model is Place a joint below the waist joint and name it Now do the same for the chest. Create another joint
01 templated and the basic joints are placed and named, 02 ‘rr_cn_legs’. Set the LRAs to the world by using the 03 right below the spine_6 joint, name it ‘fr_cn_legs’
with their local rotation axes (LRA) set up. Note Orient Joint tool and setting Orientation to None. and set its LRA to world. Parent the legs to this
that they don’t all connect: we will connect them as we go Parent the legs to this joint and parent it to the waist joint. joint, but point-constrain (Constrain > Point) this joint to
through. This file also includes controllers that aren’t attached The reason we’re not connecting this to the spine is because spine_6. Check Maintain Offsets so the joint won’t move.
to anything: feel free to use these or create your own. we want to separate all the waist motion. Connect ctl_rr_legs Orient-constrain (Constrain > Orient) this joint to ctl_fr_legs.
rotations to this new joint.

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
Note that the base neck joint is also separated from Create a null node, name it ‘neck_base’ and snap
inherit the LRA from its parent node. If
04 the spine. We won’t parent the neck to the spine
it’s parented to the world, it will zero 05 it to the spine_6 joint. Give this node the same
because we want to control the rotation of the head orientation axis as the spine_6 joint (see the Expert
them out. This way you can directly
from the chest and neck controller’s rotations. If we parent it, Tip to the left), and you should end up with neck_base node
connect a controller to a joint without
the head will rotate even when we move the chest controller parented under the neck_base_par node.
offsetting the joint’s orientation.
up and down.

Point constrain neck_base to spine_6. This will Now we’ll set up one leg, but the instructions are Make another Sticky IK handle from the leg_3 joint
06 stop unwanted rotations on the neck – but we still 07 applicable to the other legs. Make sure to add the 08 to the leg_4 joint. Call it ‘dn_ikh’. We’re going to use
need to control it, so orient constrain it to ctl_chest. side tokens while naming nodes. Create an IK handle a lot of empty nodes and parenting tricks to get all
Parent the neck joint under neck_base. from leg_1 to the leg_3 joint, with the Sticky option selected, the control we want, and then we will connect these empty
and name it ‘up_ikh’. Freeze transformations. nodes to the controllers, giving us a cleaner set-up.

April 2007 3D WORLD | 049

TDW89.t_fox 049 12/2/07 11:54:06


TUTORIALS | Rigging a quadruped for animation

STAGE ONE (Continued) | Rigging the legs

Point-constrain dn_ikh and orient-constraint the After finishing both of the rear legs, set up the front Next, we’re going to use a spline IK set-up for the
09 leg_4 joint to the foot controller. Select Maintain 10 legs the same way. The only difference is that the 11 spine of the fox, but it will be slightly different from
Offset in the Orient Constraint Options box. Parent hock joint and its controller are absent. Create the setting up a common biped spline IK set-up. For
the foot controller under the hock controller, then parent IK handle from leg_2 to leg_4, and connect the shoulder example, we will try not to lock each end: this way we will
both of the IK handles and the hock controller under the leg controller’s rotations to the leg_1 joint. Do the same for both have a rootless back set-up.
controller. Pole Vector-constrain the PV controller to both of of the front legs.
the IK handles and parent its parent under the leg controller.

STAGE TWO | The spine

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
We can’t parent the waist joint to the spine because Create a null and name it ‘waist_base’. Point-
creating the spline IK: just turn off the
12 of our spine rig’s complications. When we move the 13 constrain it to the spine_1 node, ensuring it doesn’t
Auto Create and Auto Simplify options
beginning of the IK spline, where the root joint is, it maintain the offsets. We need this null to be in the
and select the curve after selecting
will drag the rest of the joint chain without properly moving the same position as the spine_1 joint. Parent the waist joint
the base and end joints. You can also
controllers. To combat this, we’ll do a trick similar to the neck- under this node. Now the set-up will not drag the fox’s tail,
make changes to the curve afterwards.
to-chest connection, but we will just connect translations. and the controllers will remain with the joints.

Create a spline IK from spine_1 to spine_6 with Point-constrain ctl_waist, ctl_back and ctl_chest to Because of the way quadrupeds move, you will
14 spine_curve; name it ‘spine_ikh’. Create clusters for 15 these clusters, with Maintain offset selected. Also 16 want to have more than one pivot node for the body
CVs on each end and one cluster for two CVs in the orient constrain ctl_waist to waist and ctl_chest controller. We will use an old trick that involves
middle. Make sure the Relative option is selected. Name them to the spine_6 joints. At this point, you should clearly see using a Multiply Divide node to negate the transformations
as ‘spine_a_cls’, ‘spine_b_cls’ and ‘spine_c_cls’, with ‘a’ being how the rig is going to work if you play with those three on a node, letting it only rotate the hierarchy.
the waist one. Parent them under spine_curve and it will controllers. Hide the spline IK handle.

automatically group the clusters. Don’t forget to name them.

050 | 3D WORLD April 2007

TDW89.t_fox 050 12/2/07 11:54:11


TUTORIALS | Rigging a quadruped for animation

STAGE TWO (Continued) | The Spine

This trick will give you a pivot node that you can Next, group ctl_body and name it ‘ctl_body_neg’. Type ‘-1’ for all the Input2 fields in the attribute
17 move. However, as it won’t move the rig, you can 18 Group the neg node and name it ‘ctl_body_piv’. 19 editor. Connect ctl_body_piv’s translate into Input1,
position it wherever you want and rotate the rig Select the piv and neg nodes and open Hypergraph. and connect the output from the md node to ctl_
from that position. You can apply this to any node or rig on Switch to Dependency Graph by pressing the Input and body_neg’s translate. Lock all the channels of the neg node,
which you need a second pivot. Output Connections icon. Select Rendering > Create Render position ctl_body_piv to wherever you want the pivot to be
Node and create a Multiply Divide node under Utilities. Name and then rotate it. You can use this trick on any node or rig.
it ‘ctl_body_piv_md’.

STAGE THREE | The tail end

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.

Before finishing, we need to organise the scene Before binding, don’t forget that the joints are not approach rigging a quadruped for the first time, how to set
21 a little bit. Parent all the leg controllers under 22 all parented under a single node, so you need to up a spine, what parts of the movement we want to isolate,
Placement, then parent Placement under Fox. Group make sure you pick all proper joints. Also, don’t bind and so on. Think of this rig as a base muscle car: every
spine_1, neck_base_par, waist_base, spine_curve, spine_ikh the eyes, because they are already constrained to the head, section of it is designed to be improved upon. If you have
and fr_cn_legs, name the group ‘Rig’ and parent it under Fox, and it will cause double transformations. This particular rig questions related to this rig or character set-up in general,
as shown above. has not been designed to make ultra-realistic deformations: I would be more than happy to help. You can contact me
the purpose of this tutorial was to give an idea of how to personally at 3dwtut@animatr.com. ●

52 | 3D WORLD April 2007

TDW89.t_fox Sec1:52 12/2/07 11:54:16

You might also like