On this page |
Constraints create relationships between controls, where the constrained (driven) control is affected by the position or movement of the driver control. The following types of constraints are available in the animate state:
There is also a special type of constraint called a transient constraint, which is only active within a frame range. All of the above constraints can be added as transient constraints.
Offset constraint ¶
Offset constraints keep an offset between the driver and driven controls. In this example, we constrain a guitar (driven) to Electra’s cog (driver). We start with a scene that contains animation only on Electra:
-
In the animate state, bring up the parameters HUD (press G over the viewport).
-
In the Constraint tab, set Constraint to Offset.
-
Select the guitar’s control.
Note
The two parameters below the Constraint parameter show the order in which to select the controls. For offset constraints, select the driven control, then the driver. If you select more than two controls before pressing H, the last selected control is the driver, and all the other controls are driven controls.
-
Hold ⇧ Shift and select Electra’s cog control.
-
Hover over the viewport and press H. A constraint is added and the driven control turns gray. A dotted line appears with an arrow pointing from the driver to the driven control, and you will not be able to move the guitar control because it is now constrained to Electra’s cog.
Guitar constrained to Electra’s cog -
We want to constrain Electra’s left hand to the neck of the guitar. To do this, first create a locator on the neck of the guitar:
-
Enter the locator tool.
-
Press H over the viewport to create the locator.
-
Position the locator at the neck of the guitar.
Note
If you are working with animation layers, the locator needs to be added to the current layer before you can move it. Select the locator, go to the animation layers pane,
click the layer, and select Add Selected Controls to Layer.
-
Exit the locator tool.
Locator on the neck of the guitar -
-
Constrain the locator to the guitar so that as the guitar moves, the locator stays at the neck of the guitar. Select the locator, hold ⇧ Shift, select the guitar control, and press H over the viewport.
Locator constrained to the guitar -
Constrain Electra’s hand to the locator - select Electra’s hand, hold ⇧ Shift, select the locator, and press H over the viewport.
Electra’s hand constrained to the neck of the guitar -
Rotate Electra by setting keys on her cog control.
Note
If you are working with animation layers, the cog control needs to be added to the current layer before you can set keys on it.
Rotate Electra -
The strumming hand doesn’t follow the guitar after rotating Electra, so constrain Electra’s hand to the guitar control with a parent constraint. This way, as the guitar (driver parent) moves, Electra’s strumming hand (driven child) moves with it:
-
Select Electra’s right hand control.
-
Hold ⇧ Shift and select the guitar control.
-
In the parameters HUD, Constraint tab, set Offset to Parent.
-
Press H over the viewport.
Electra’s strumming hand follows the guitar -
We now have the following constraints added to the scene:
-
The guitar is constrained to Electra’s cog.
-
The locator on the neck of the guitar is constrained to the guitar.
-
Electra’s left hand is constrained to the locator.
-
Electra’s strumming hand is constrained to the guitar.
Offset constraints
Animate the offset between the driver and driven controls ¶
When you create an offset constraint, a control named <control>__Offset
is created. This control represents the driven control’s offset from the driver, and it can be animated. The offset control is positioned at the driven control, but is a separate control from the driven control. The offset control is represented as a green sphere:

In this example, we want Electra’s hand to move along the neck of the guitar, so we set keys on the locator offset control (Electra’s hand is constrained to the locator, so moving the locator also moves Electra’s hand).
The locator is constrained to the guitar, so the locator offset control represents the offset between the guitar and the locator. In our example, the locator offset control is named Locator_0__Offset
, and it appears in the selection sets under All Controls ▸ constraints ▸ Locator.
-
Select the locator constraint in the selection sets, All Controls ▸ constraints ▸ Locator. Making this selection “focuses” on the constraint so that keys can be set on the constraint’s offset control.
-
Set keys to move the locator offset control up and down the neck of the guitar.
The animation on the offset control lives on the constraint and not on the locator’s control. Any animation that was originally on the locator is overridden by the constraint. If you turn off the constraint, you are left with the original animation on the locator.
Note
If you are working with animation layers, the offset control needs to be added to the current layer before you can set keys on it. In the animation layers pane,
click the layer and select Add Selected Controls to Layer.
After animating the offset control -
To blend between the offset control animation and the original animation:
-
Select the locator constraint in the selection sets, All Controls ▸ constraints ▸ Locator.
-
In the parameters HUD, Constraint tab, adjust the Blend value.
Note
If Blend is set to
0
, you can move the driven control. -
Add keyframes on the driven controls ¶
At this point, all the added motion on the guitar and Electra are driven by the constraints. If the constraints are removed, we are left with the original animation on Electra.
To keep the added motion on the guitar even if the constraint is removed, set keyframes on the guitar:
-
Select the guitar control.
-
Press Ctrl+G to bring up the settings HUD.
-
In the Bake tab, click Bake Keys. If Bake to New Layer is turned on, the keys are added to a new animation layer. If Bake to New Layer is turned off, the keys are added to the current animation layer.
See the baking settings for descriptions of the available options in the Bake tab of the settings HUD.
Lookat constraint ¶
A lookat constraint allows an object to follow the path of another object. In this example, we add a lookat constraint to keep Electra looking at
Flip.
-
Aim Electra’s head toward Flip.
-
Bring up the parameters HUD (press G over the viewport).
-
In the Constraint tab, set Constraint to LookAt.
-
Select Electra’s head control.
Note
The two parameters below the Constraint parameter show the order to select the controls. For lookat constraints, select the driven control (Electra’s head), then the target (Flip).
-
Hold ⇧ Shift and select Flip’s control.
-
Hover over the viewport and press H. A constraint is added and the driven control turns gray. A dotted line appears with an arrow pointing from the target to the driven control.
Create a lookat constraint -
A control named
<driven_control>__Target
is created, and this is the control that the driven object looks at. You can move the control away from the target object, which provides more flexibility on where Electra is looking:Electra looks at the target control The
<driven_control>__Target
control appears in the selection sets under All Controls ▸ constraints. The control is parented to the target object and can be animated.
Multidriver constraint ¶
You can set a control to be driven by multiple drivers using a multidriver constraint. In this example, we constrain Flip to both of Electra’s hands:
-
Bring up the parameters HUD (press G over the viewport).
-
In the Constraint tab, set Constraint to MultiDriver.
-
Select Flip’s control.
Note
The two parameters below the Constraint parameter show the order to select the controls. For multidriver constraints, select the driven control (Flip), then the driver controls (Electra’s hands).
-
Hold ⇧ Shift and select Electra’s two hand controls.
-
Hover over the viewport and press H. Constraints are added between Flip and Electra’s hands.
Create a multidriver constraint
Pin constraint ¶
A pin constraint allows you to keep a control at a certain position. A pinned control will not move, even if you move its parent control.
-
Bring up the parameters HUD (press G over the viewport).
-
In the Constraint tab, set Constraint to Pin.
-
Select the control(s) to pin.
-
Hover over the viewport and press H.
Create a pin constraint
Transient constraints ¶
A transient constraint is a special type of constraint that is only active within a frame range. Transient constraints differ from regular constraints in the following ways:
-
When a transient constraint is created, keyframes are automatically written out for the driven object within the constraint frame range. A bookmark is also created on the playbar timeline to identify the frame range during which the constraint is active.
-
The driven object can be moved around freely.
-
Transient constraints only apply in the animation layer in which they are created. Regular constraints apply regardless of the layer you're on.
In this example, we transfer the ball from one hand to another. The original animation is shown below:
-
Constrain the ball to the hand:
-
Select the driven control (ball), hold SHIFT, then select the driver (hand).
-
On the timeline, select the range of frames to make the constraint active (hold SHIFT and drag along the timeline).
-
Hover over the viewport and press H.
A constraint is created between the ball and the hand, and keyframes for the ball are added to every frame in the selected frame range.
Note
The constraint behavior is only active within the transient constraint frame range.
Constrain the ball to the hand An arrow visualizer shows the constraint relationship between the ball and hand:
Transient constraint visualizer -
-
Fix the position of the ball on the hand.
Once the transient constraint is created, the driven object (ball) can be moved around and the changes are automatically applied to the entire frame range that the transient constraint is active. Make sure you are currently within the frame range that the transient constraint is active, or the changes will not be applied to the entire frame range.
Note
If the changes are not applied to the entire transient constraint frame range, make sure that Auto Update Follow Ranges is turned on in the settings HUD, Constraint tab.
Move the driven object (ball) -
Constrain the ball to the other hand:
Ball contrained to both hands at different frame ranges -
Fix the ball on the second hand:
Fix the ball on the second hand -
Fix the pop on the animation as the ball transitions from one hand to the other:
Animation pop -
Select the ball (driven object).
-
Click in the timeline so that the current frame is within the frame range of the first transient constraint.
-
In the settings HUD, Constraint tab, click the
button. This updates the offset on the ball to match the frame after the current constraint range so that there is a smooth transition between the current range and next range.
Smooth out the transition between constraint ranges -
-
Fix the hand (driver) in the first constraint range without moving the ball. Select the hand, hold ⇧ Shift + H, and adjust the hand:
Adjust the hand
Constraint parameters and settings ¶
Constraint parameters ¶
The following parameters are in the Constraint tab of the parameters HUD. Certain parameters are only available for specific constraints.
The buttons at the top of the parameters HUD are available when a constraint is selected (through the selection sets), or a driven control is selected as the first selected control.
Parameter / Option |
Description |
---|---|
|
|
|
|
|
Toggles the visibility of the constraint. |
|
If a constraint is selected in the selection sets, the channels for its parameters are added to the animation editor. |
|
Toggles the visibility of any controls defined by the constraint, for example, the green dot of the offset constraint control. |
|
Toggles the visibility of the driven control. |
Constraint |
The type of constraint to create. |
Driven Control |
The driven control of the constraint. |
Driver / Target |
The driver/target of the constraint. |
Blend |
Blends between the motion of the constraint and the original animation on the driven control. If Blend is set to |
Use Tilt |
When turned on, tilting the lookat constraint’s target control tilts the driven control. This option is available for lookat constraints. |
Component |
The |
Offset |
The type of offset between the driver and driven control. This option is available for offset constraints. None The driven control matches the driver’s control. Static Maintains the offset between the driver and driven control when the constraint was created. Parent Treats the driver as the parent of the driven control. The driven control’s animation is still applied, but any change to the driver is also applied to the driven control’s animation. |
Constraint settings ¶
The following settings are in the Constraint tab of the settings HUD:
Setting / Option |
Description |
---|---|
|
Copies all the transient constraints currently visible on the playbar timeline. Use |
|
Pastes transient constraints into the current animation layer:
|
|
Updates the offset on the selected driven control to match the frame before the current transient constraint range. This results in a smooth transition between the previous range and the current range.
|
|
Updates the offset on the selected driven control to match the frame after the current transient constraint range. This results in a smooth transition between the current range and the next range.
|
Disable Constraints After Baking |
This option applies to regular (not transient) constraints. When turned on, disables the constraint after baking. |
Show Preview Visualizer |
When turned on, displays a visualizer for the constraint - a dotted line with an arrow pointing from the driver to the driven control. |
Auto Update Follow Ranges |
This option applies to transient constraints. When turned on, applies any changes made on the driven control to the entire transient constraint frame range. |
Bake to New Layer |
This option applies to transient constraints. When turned on, adds keyframes to a new animation layer. When turned off, adds keyframes to the base animation layer. |
Bake Mode |
Options for adding/updating keys when baking. This option is only for transient constraints. Dense Adds keys to every frame in the constraint frame range. Update Updates the existing keys, but doesn’t add extra keys. |
How-to ¶
To... | Do this |
---|---|
Remove a constraint |
Select the driven control(s) and press ⌃ Ctrl + H. |
Turn a constraint on or off |
|
Turn off display of the constraint visualizer |
In the settings HUD, Constraint tab, turn off Show Preview Visualizer. |
Transient contraints ¶
To... | Do this |
---|---|
Add a transient constraint |
|
Remove a transient constraint |
|
Adjust the driver control |
Hold ⇧ Shift + H and move the driver control. |
Smooth out the transition between adjacent constraint frame ranges |
|
Add keys to every frame in the constraint frame range when adding a transient constraint |
|
Only update existing keys (don’t add extra keys) when adding a transient constraint |
|