4
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 C 048 | 3D WORLD 3D WORLD April 2007 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 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 Do the foxtrot Part one MAYA MAYA TUTORIALS | Rigging a quadruped for animation TDW89.t_fox 048 TDW89.t_fox 048 12/2/07 11:53:48 12/2/07 11:53:48

Quadriped_Rigging

Embed Size (px)

Citation preview

Page 1: Quadriped_Rigging

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 simplifi ed 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 simplifi ed 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

C

048 | 3D WORLD3D WORLD April 2007

FACTFILE

FORMaya 7+

DIFFICULTYIntermediate

TIME TAKEN2 hours

ON THE CD• Full-size screenshots• Maya scene fi les• Finished rig

ALSO REQUIREDN/A

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

Do the foxtrot Part one MAYA MAYA

TUTORIALS | Rigging a quadruped for animation

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

Page 2: Quadriped_Rigging

EXPERT TIPLocal 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.

i

April 2007 3D WORLD 3D WORLD | 049

STAGE ONE | Rigging the legs

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 fi le also includes controllers that aren’t attached to anything: feel free to use these or create your own.

01Now 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.

03

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.

07

▲Rigging a quadruped for animation | TUTORIALS

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.

08

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

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.

02

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.

05

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.

06

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

Page 3: Quadriped_Rigging

EXPERT TIPSpline IKThe 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 suffi ce. 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.

i

050 | 3D WORLD3D WORLD April 2007

Point-constrain dn_ikh and orient-constraint the 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.

09Next, we’re going to use a spline IK set-up for the 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.

11

Point-constrain ctl_waist, ctl_back and ctl_chest to 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.

15

After fi nishing both of the rear legs, set up the front 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.

10

TUTORIALS | Rigging a quadruped for animation

Create a spline IK from spine_1 to spine_6 with 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.

14

STAGE ONE (Continued) | Rigging the legs

Because of the way quadrupeds move, you will 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.

16

STAGE TWO | The spine

Create a null and name it ‘waist_base’. Point-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.

13We can’t parent the waist joint to the spine because 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.

12

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

Page 4: Quadriped_Rigging

52 | 3D WORLD3D WORLD April 2007

TUTORIALS | Rigging a quadruped for animation

Before binding, don’t forget that the joints are not 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 fi rst time, how to setup 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 [email protected]. ●

22

STAGE TWO (Continued) | The Spine

This trick will give you a pivot node that you can 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.

17Next, group ctl_body and name it ‘ctl_body_neg’. 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’.

18Type ‘-1’ for all the Input2 fi elds in the attribute 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.

19

Before fi nishing, we need to organise the scene 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.

21

For the tail, ears and jaw, we will use basic FK 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.

20

STAGE THREE | The tail end

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