A rough constraints guide for your characters

By Adam Sale

This is a set of notes that I use when introducing basic character constraint setups to my students. It is also a minor update to an older constraint tutorial found by following this link. The constraint outline that follows, is written for a skeleton built using this construction setup.

Always reset your character to its neutral pose before building constraints into your setup. Select your mesh and click on Envelope>Reset Actor to do this. Keep in mind that Reset actor works on skeletons that haven't yet been constrained to control objects. Once you have a fully constrained character, reset actor ceases to be of much use, unless you've muted your constraints.

You must always line up your constraint centers with the objects they will eventually control, so that your characters various body parts don't pop away from its original construction pose. There are a couple of ways to do this

1) Constrain your control objects to the respective effector, root or bone, and then remove the constraint

or

2) Match translations, or rotations on your control objects to those of the effector, root or bone.

To make control boxes use implicits, the control icons found on Netview, or make your own using curves. The idea here is to make the control objects non-renderable

The constraints needed:

You need a control box for each foot, A control box for the torso, one for the pelvis. A control box for the head. You also need control objects that will control the direction of the knees

 

The setup

Feet:

Get a control box. Select it and click on Transform>Match Translation. Choose the end effector that lies right below the shinbone.

With the same control box selected, click on Transform> Match Rotation. Choose the first bone in the foot. (The bone found right after the end effector you used in the last step)

Now that the control box is lined up, select the end effector below the shinbone, and click on Constraint>Position. Choose the control box as a constraint

Select the first foot bone you used in the above step, and click on Constraint>Orientation. Choose the control box.

Repeat these steps for the other foot

The Torso and Pelvis

This part of the body requires 2 control boxes to work properly. Visually, you should make one of the boxes slightly larger. This larger box is the main control box for moving the character around as well as rotating the upper body. The smaller control box is for Rotating or tilting the pelvis only.

We'll set up the larger control box first

Select the larger control box and click on Transform> Match Translation. Choose the characters pelvis root as a reference. The pelvis root is the root that is the parent of the entire character skeleton hierarchy. When you open you explorer it is the first skeleton object you should see.

With the control box still selected, click on Transform>Match Rotation. Choose the same pelvis root as a reference.

Now that the control box is lined up, select the pelvis root and click on Constraint>Position. Choose the larger control box as a reference.

With the same pelvis root selected, click on Constraint> Orientation. Pick the larger control box as a reference.

The smaller control box is now ready to be set up.Keep in mind that its sole purpose will be to control the rotation of the pelvis bone. We don't want to be able to move this control box.

Line up the smaller control box first, by selecting it and clicking Transform> Match Translation. Pick the pelvis bone as a reference.

With the small control box still selected, click on Transform> Match Rotation. Pick the Pelvis bone as a reference.

Since the pelvis bone been lined up, select it, and click on Constraint>Orientation. Pick the small control box as a reference.

To prevent the smaller control box from moving, select the small control box and click on Constraint > Position. Pick the large control box as a reference.

The head

Select the control box you made for the head and click on Transform > Match translation. Pick the Head bone as reference.

With the control box still selected, click on Transform> Match Rotation. Pick the head bone as a reference.

Now that the head box is lined up, select the head bone and click on Constraint> Orientation. Pick the head control box as a reference.

To prevent the head box from moving around, Select the head control box, and click on Constraint>Position. Pick the head bone as a reference.

The knees

To control the knees, you'll be using a chain up vector constraint. Make a control object for your knees, I usually use curves drawn in the shape of an "L" or an "R" to identify left and right respectively.

The first thing to check is to make sure that the Y-axis of your thighbone is pointing behind the character. If they are, then things are good. Move the control boxes behind your character, perhaps a leg length or so. In your front window, zoom in so that you can line up the control boxes center so that it lies right in the middle of the bone you want to control. In XSI 3.0, each window can be adjust to look along the axis of a selected object. If you are using version 3, select a thigh bone and click on the letter Y found on the toolbar of your 3d viewport to look down the bones Y axis. Adjust the control box center so that it lines up precisely along this axis

Select a thighbone and click on Skeleton > Chain Up Vector. Choose one of the up vectors as a reference. Repeat the process for the other leg.

Parenting the constraints

Make each up vector control box a child of the respective leg root.

Get three Nulls. Give them the following names

1) Global SRT

2) Offset

3) Skeleton Container

Parent them in this same order so that Global srt is parent of offset. Offset is parent of Skeleton Container.

Make sure that the Global SRT is a child of your characters Model Node.

Select the Feet control boxes, both waist and pelvis control Boxes and the head control box. Make them the children of the Skeleton Container

Branch select your skeleton from its top root and make it a child of the Skeleton Container. Drag and dropping your hierarchies in an Explorer works best here. It allows you to visually assure that your objects are getting parented to the correct node.

Creating your Reset Pose

Envelope>Reset Actor won't help you return your character to a default pose once constraints are in the mix. You'll need to use the mixer and actions from now on. If you aren't familiar with Marking sets, I suggest you do a little research and incorporate them into the next step. They allow you to store an action for on any property you include in an objects marking set. A simpler way to store a reset pose is to branch select your character's Global SRT, and click on Actions>Store Transformations Current.

In the pop up window that appears, type an appropriate name for the action. Now all you have to do to apply a reset pose to your rigged and enveloped character is to open an explorer, find your models mixer folder, open up the sources> animation folder and click on Action>Apply>Action. To simplify this process, open a script editor, and drag the commands from the history logonto a toolbar.

That's all there is to setting up a basic constraint system. This is a very simple way of setting a character up. There are numerous other ways of doing this. Each method has advantages and drawbacks. It is up to you to pick the method that works best given your needs.

Character Constraints Update was put together by Adam Sale TD at Joncrow Entertainment. Adam is a fully certified Softimage Instructor who teaches at various institutions throughout Vancouver BC. He can be reached at adam@joncrow.com