Constraints

Constraints in maya are fairly simple to set up. It involves choosing the object to do the constraining first, the object to be constrained second, and the constraint from the drop down menu. Remember that in Maya the file menu changes based on your layout selection so you must be in "Animation" mode for the "constrain" drop down menu to appear. So...

  1. Select object to be constrained to.
  2. Select (Shift-Click) the object to be constrained.
  3. Choose your constraint via "Constrain > X".

Parent Constraints

"Parent" constraints are an easy way to attach one object to another as if it were a child of that object. In other words it constrains, position, rotation, and scale, based on the point of origin of the constraining object. This is the constraint used primarily for "held" objects that a character might pick up and move.

From the menu you can choose the "parent" option to use the basic "held object" constraint type as discussed in the concept example.

We won't immediately have the option to add Keyframes that turn on and off this constrainer however. Maya presumes that an object with a constraint but no keyframes of its own will just *always* be constrained. Because of this presumption it does not immediate show the property needed to keyframe the constraint's strength.

Let's look at a step by step (considering that you've already applied a "parent" constraint using the instructions above).

  1. Apply a parent type constraint.
  2. If the constrained object is to start out "free" then scan to position 0 on the timeline (or an appropriate spot to begin the animation) and add a keyframe to the object.
  3. Select the constrained object and make a new key for it.
  4. Once the two requirements of the constrained object having at least one key frame and at least one constraint are fullfilled you should see a new entry within the Channel Box for the constrained object called "Blend Parent".
  5. Enter "0" for no constraint effect or "1" for full constraint effect.
  6. Right click the name of the field and select "Set Key".

Like any keyframed value the values entered will automatically be smoothed or interpolated between. This means that if you want the object to go from being constrained to being unconstrianed within one frame you'll need to make two keys adjecent to one another with the different values.

Constraints as controllers

Using the word "Controllers" in the context of Maya is somewhat misleading. Here we are talking specifically about objects added to aid in the movement of an armature or skeleton but we will still be creating such a network using constraints.

In actual use you will most likely use a combination of constraints to complete a set of control objects for a full character. Obviously less for simpler objects. Let's look at each type individually with a quick definition.

Remember that like any dual-object attribute in Maya the constraining object will be the first selected while the constrained object will be the second selected. Once the two objects are selected you can choose a constraint from the "Constrain" menu (again, you have to selected the "Animation" layout to be able to see the "Constrain" menu).

Point constrain

A point constraint will translate the constrained object to the position of the constraining object. No rotation or scale will be involved. If the constrained object is moved it will still move independantly until the constraining object is moved itself.

Aim constrain

"Aim" is comparible to a "target" constraint in other programs. In this case the constrained object will rotate to point directly at the position of the axis of the constraining object.

This constraint type is useful for eye tracking (where you simply move the constraining object to whatever a character is looking at) or for instances such as getting a spotlight to follow an actor on stage (albeit perfectly).

Here we see a simple Aim constraint used to move a bone. A simple circle curve is the (selected) constraining object and the pink tint of the bone indicates that it is an object being constrained by the current selection. This pink highlighting of constrained objects can be seen in other types of constraints as well.

Orient constrain

The "Orient" option will force the rotation of the constrained object to match the rotation of the constraining object regardless of their positions. This means that the constraining object can be placed any distance from the constrained object and still control the rotatio of it.

This particular constraint is useful for character rigs since the majority of skeletal animations are done by rotating joints. Take for instance the rotation of an elbow. In this case we may want to have a constraining object that is placed outside the body but near the elbow control that same elbow joint and at the same time be a child of the shoulder joint. By being a child of the shoulder joint the control object can be grabbed and rotated easily and will move along with the elbow when the shoulder joint is moved.

Scale constrain

A "Scale" constraint merely changes the scale of the constrained object to match the constraining object. Like most of the other constraints this is a one-way relationship, meaning that while the constrained object *can* have its scale changed it will snap to a different value as soon as the constraining object's scale is changed.

Keep in mind that when this constraint says "Scale" it means "Scale"! The dimensions of a primitive object (width, height, etc.) are not changed by this constraint.

Parent constrain

The parent constraint is described above in the constraint section.

While it's best example may be seen in the idea of a character "picking up" and object it is also good for any time you need one object to dictate the position of another *without* an effect that might affect an entire hierarchy.

For instance if you apply smoothing to a parent object then that smoothing will be applied to other objects that are children of it within the normal hierarchy but will not be applied to objects which are made children via the "Parent" constrained.

Morphs

WHOOOOOOOOOOOOOOOOO!!!!!!!!!!!!! YEEEAAAHHHHHHHHHHHH!!!!