What Constraints Are (and Why Animators Love Them)
Constraints are non-destructive rules that make one object follow, aim at, or stay within limits relative to another object. Instead of building a full rig, you can often get controlled motion by adding a constraint and animating a simple controller object. The key idea: the constrained (driven) object is still the same object, but its final motion is computed from its own transforms plus the constraint’s rules.
Constraints are ideal for: camera follow/aim setups, props that need to attach/detach, keeping hands/feet within ranges, and quickly testing motion ideas without committing to complex rigging.
Constraint Stack and Evaluation Order
In the Object Constraints tab (chain icon), constraints are evaluated top-to-bottom. If multiple constraints affect the same channels (location/rotation), their order matters. You can reorder constraints with the up/down arrows.
- Target: the object the constraint references.
- Owner: the object that has the constraint (the driven object).
- Influence: a 0–1 slider that blends the constraint on/off and can be animated.
Core Constraints for Controlled Motion
Copy Location / Copy Rotation (Follow Without Parenting)
Copy Location makes the owner follow the target’s position. Copy Rotation makes the owner match the target’s rotation. They are great when you want “follow” behavior but still want the owner to remain independent (unlike parenting).
Typical Uses
- Make a camera follow a moving target while keeping camera controls separate.
- Make a prop follow a controller object (e.g., a floating drone following a path controller).
- Match rotation of a wheel, dial, or lever to a control object.
Key Options to Understand
- Axes: choose X/Y/Z to copy only what you need (e.g., follow in X and Y but not Z).
- Space: World Space vs Local Space changes how the copy is interpreted. If results look “offset” or “wrong direction,” check spaces first.
- Offset (Copy Location): keeps the owner’s current offset instead of snapping exactly onto the target.
Step-by-step: Copy Location for a Simple Follow
- Create a controller:
Shift+A > Empty > Plain Axes. Name itCTRL_Follow. - Select the object that should follow (the driven object).
- Add Copy Location constraint.
- Set Target to
CTRL_Follow. - Enable Offset if you want the object to keep its current distance from the controller.
- Animate
CTRL_Follow(not the driven object) to create the motion.
Track To / Damped Track (Aim at Something)
These constraints rotate the owner so it points at a target. They’re the backbone of “look at” cameras, spotlights aiming at a character, or a turret tracking a moving object.
Continue in our app.
You can listen to the audiobook with the screen off, receive a free certificate for this course, and also have access to 5,000 other free online courses.
Or continue reading below...Download the app
- Track To: more explicit axis control (Track Axis and Up Axis). Can flip if the up axis becomes ambiguous.
- Damped Track: simpler and often more stable for cameras; it aims without requiring an Up axis setting in the same way, reducing sudden flips.
Step-by-step: Damped Track for a Camera Look-at
- Add an Empty as the aim target:
Shift+A > Empty > Plain Axes. Name itCTRL_Aim. - Select the camera (owner).
- Add Damped Track constraint.
- Set Target to
CTRL_Aim. - Move
CTRL_Aimaround: the camera should keep looking at it.
Tip: If you need the camera to keep a specific roll (no unwanted tilting), consider combining a Damped Track with a separate roll controller (e.g., animate camera Z rotation) or use Track To with a carefully chosen Up axis, depending on your shot.
Child Of (Animate Attachment/Detachment)
Child Of is like animatable parenting. It lets an object follow another object’s transforms, but with two big advantages: (1) you can animate Influence to attach/detach over time, and (2) you can manage offsets precisely using Set Inverse.
When to Use Child Of
- A prop that gets picked up and put down.
- A camera that temporarily mounts to a vehicle and later becomes free.
- A gadget that snaps onto a moving rig part for a few seconds.
Critical Button: Set Inverse
When you add Child Of, the owner may jump to the target’s origin. Set Inverse stores the current offset so the owner stays visually in place while still following the target.
Step-by-step: Child Of Without a Jump
- Select the prop (owner).
- Add Child Of constraint.
- Set Target to the object it should attach to (e.g., a hand control or an Empty).
- Click Set Inverse to preserve the current position/rotation.
- Test by moving the target: the prop should follow without snapping.
Limit Constraints (Keep Motion Within Bounds)
Limit constraints restrict motion so an object cannot move or rotate beyond defined ranges. They are useful for keeping controls “safe” and preventing accidental overshoot.
- Limit Location: clamp X/Y/Z position.
- Limit Rotation: clamp Euler rotation angles.
- Limit Scale: clamp scale values.
Step-by-step: Limit Rotation for a Simple Hinge
- Select the object that should rotate like a hinge (e.g., a lid).
- Add Limit Rotation.
- Enable the axis you want to limit (e.g., only Z).
- Set Min and Max values (e.g., 0 to 1.2 radians).
- Choose the correct Owner Space (often Local Space for hinge-like behavior).
How Constraints Change Your Keyframing Strategy
Animate the Controller, Not the Driven Object
Once an object is driven by constraints, keyframing the driven object’s location/rotation can become confusing because its final motion is a blend of its own transforms plus constraint results. A cleaner workflow is:
- Make an Empty (or dedicated control object) as the thing you animate.
- Put constraints on the object that should follow/aim.
- Keyframe the controller’s transforms.
This keeps your animation editable: you can adjust the constraint setup without rewriting lots of keys on the driven object.
Influence Is Your Shot-level Switch
Most constraints have an Influence slider. You can keyframe it to enable/disable a behavior for specific moments (attach/detach, aim on/off, follow on/off).
Step-by-step: Keyframe Influence
- On the constrained object, find the constraint’s Influence.
- At the frame where the constraint should be fully active, set Influence to
1.0and insert a keyframe (right-click Influence > Insert Keyframe). - At the frame where it should be off, set Influence to
0.0and insert a keyframe. - If you need a clean “snap” (instant attach), place the 0 and 1 keyframes on adjacent frames.
Practical note: If you fade Influence gradually, you’ll get a blend between free motion and constrained motion, which can look like sliding. For props attaching to a hand, you usually want a snap (or a very short blend) unless sliding is intentional.
Mini-Project: Follow + Aim Camera, and a Prop That Attaches/Detaches
This mini-project builds a compact, production-style setup using only constraints and a few controllers. You’ll create: (1) a follow controller, (2) an aim controller, and (3) a prop that attaches/detaches using Child Of influence.
Part A: Camera Follow Target (Copy Location)
- Create a target object to follow: add an Empty named
CTRL_Target. - Create a camera follow controller: add another Empty named
CTRL_CamFollow. Place it where you want the camera to be relative to the target (e.g., behind and slightly above). - Make
CTRL_CamFollowfollow the target: selectCTRL_CamFollow> add Copy Location > Target =CTRL_Target> enable Offset. - Select the camera and parent it to
CTRL_CamFollow(or use a Copy Location constraint instead). Parenting here is fine becauseCTRL_CamFollowis your controller, not a driven mesh.
Animation rule for this setup: animate CTRL_Target for the subject’s movement, and the camera will follow via CTRL_CamFollow.
Part B: Simple Aim (Damped Track)
- Create an aim controller: add an Empty named
CTRL_Aim. Place it at the point of interest (e.g., near the target’s “head” area). - Select the camera > add Damped Track > Target =
CTRL_Aim. - Test: move
CTRL_Aimaround; the camera should keep looking at it while still following the target.
Part C: Prop Attach/Detach Using Child Of + Influence
You’ll animate a prop (e.g., a tool) that starts on a table, gets picked up (attaches to a hand controller), then gets dropped (detaches).
Setup Controllers
- Create an Empty named
CTRL_Hand(this represents where the hand would be). Place it where the prop should attach. - Create or choose a prop object named
PROP_Tool. Place it on a surface (its starting position).
Add Child Of and Preserve Offset
- Select
PROP_Tool> add Child Of constraint. - Set Target =
CTRL_Hand. - Click Set Inverse so the tool does not jump.
- Set Influence to
0.0initially (tool is not attached yet).
Animate the Attach (Snap On)
- At frame
10: ensure Influence =0.0and keyframe it. - At frame
11: set Influence =1.0and keyframe it (instant attach). - From frame
11onward: animateCTRL_Handto carry the tool.
Animate the Detach (Snap Off)
- At frame
40: Influence =1.0keyframe. - At frame
41: Influence =0.0keyframe (instant detach). - After frame
41: animatePROP_Tooldirectly (or animate a separateCTRL_Tooland constrain the prop to it) to control the drop/settle motion.
Troubleshooting Checklist (Common Constraint Issues)
| Problem | Likely Cause | Fix |
|---|---|---|
| Object jumps when adding Child Of | No inverse offset stored | Click Set Inverse on the Child Of constraint |
| Aim flips unexpectedly | Up axis ambiguity / target passes behind | Try Damped Track, or adjust Track/Up axes, or reposition aim controller |
| Copy Location moves in strange directions | Space mismatch (World vs Local) | Change Owner Space/Target Space to match intent |
| Hard to animate after adding constraints | Keyframing the driven object | Animate the controller object; keep driven object mostly unkeyed |
| Prop slides during attach/detach | Influence blending over time | Use adjacent-frame keys for a snap, or shorten the blend window |