Blender Documentation: Last modified August 25 2003 s68
<<< Previous | Character Animation | Next >>>

# Constraints

Constraints are filters that are applied to the transformations of bones and objects. These constraints can provide a variety of services including tracking and IK solving.

## Constraint Evaluation Rules

Constraints can be applied to objects or bones. In the case of constraints applied to bones, any constraints on the armature OBJECT will be evaluated before the constraints on the bones are considered.

When a specific constraint is evaluated, all of its dependencies will have already been evaluated and will be in their final orientation/positions. Examples of dependencies are the object's parent, its parent's parents (if any) and the hierarchies of any targets specified in the constraint.

Within a given object, constraints are executed from top to bottom. Constraints that occur lower in the list may override the effects of constraints higher in the list. Each constraint receives as input the results of the previous constraint. The input to the first constraint in the list is the output of the ipos associated with the object.

If several constraints of the same type are specified in a contiguous block, the constraint will be evaluated ONCE for the entire block, using an average of all the targets. In this way you can constrain an object to track to the point between two other objects, for example. You can use a NULL constraint to insert a break in a constraint block if you would prefer each constraint to be evaluated individually.

Looping constraints are not allowed. If a loop is detected, all of the constraints involved will be temporarily disabled (and highlighted in red). Once the conflict has been resolved, the constraints will automatically re-activate.

## Influence

The influence slider next to each constraint is used to determine how much effect the constraint has on the transformation of the object.

If there is only a single constraint in a block (a block is a series of constraints of the same type which directly follow one another), an influence value of 0.0 means the constraint has no effect on the object. An influence of 1.0 means the constraint has full effect.

If there are several constraints in a block, the influence values are used as ratios. So in this case if there are two constraints, A and B, each with an influence of 0.1, the resulting target will be in the center of the two target objects (a ratio of 0.1:0.1 or 1:1 or 50% for each target).

Influence can be controlled with an ipo. To add a constraint ipo for a constraint, open an ipo window and change its type to constraint by clicking on the appropriate icon.

Next click on the Edit Ipo button next to the constraint you wish to work with. If there is no constraint ipo associated with the constraint yet, one will be created. Otherwise the previously assigned ipo will be displayed. At the moment, keyframes for constraint ipos can only be created and edited in the ipo window, by selecting the INF channel and CTRL+LEFTMOUSE in the ipo space.

When blending actions with constraint ipos, note that only the ipos on the armature's local action ipos are considered. Constraint ipos on the actions in the motion strips are ignored.

| In the case of armatures, the constraints ipos are stored in the current Action. This means that changing the action will change the constraint ipos as well.

## Creating Constraints

To add a constraint to an object, ensure you are in object mode and that the object is selected. Switch to the constraint buttons window (the icon looks like a pair of chain links) and click on the "Add" button.

A new constraint will appear. It can be deleted by clicking on the "X" icon next to it. A constraint can be collapsed by clicking on its orange triangle icon. When collapsed, a constraint can be moved up or down in the constraint list by clicking on it at choosing "Move Up" or "Move Down" from the popup menu.

For most constraints, a target must be specified in the appropriate field. In this field you must type in the name of the desired target object. If the desired target is a bone, first type in the name of the bone's armature. Another box will appear allowing you to specify the name of the bone.

## Adding Constraints to Bones

To add a constraint to a bone, you must be in pose mode and have the bone selected.

<<< Previous | Home | Next >>>
NLAWindow (Non Linear Animation) | Up | Constraint Types