The shot sounds trivial in the brief: the character picks up a cup, drinks, puts it back down. Then you try to animate it and discover that "holding something" is one of Maya's classic pain points — the cup swims in the hand, or snaps across the viewport the moment the constraint turns on, or refuses to stay on the table after being released.

None of that is your animation. It is all constraint mechanics, and once you understand the three failure points, prop work becomes routine.

The standard way: a parent constraint

The tool built for this is the parent constraint: select the hand control (the driver), then the prop, and choose Constrain → Parent (in the Animation or Rigging menu set) with Maintain offset turned on in its options. The prop now follows the hand's position and rotation while keeping its current placement relative to the palm.

A cane held with a parent constraint (Maintain Offset on) to the right wrist effector of Maya's example rig. The Channel Box shows the constraint node under the cane and the target weight, 1.
A cane held with a parent constraint (Maintain Offset on) to the right wrist effector of Maya's example rig. The Channel Box shows the constraint node under the cane and the target weight, 1.

The three failure points, in the order they will bite you:

Selection order. Driver first, driven second. Reversed, you have constrained the character's hand to the cup, and the arm will do strange things. If the prop drags the hand around, this is what happened.

Maintain offset. With it off, the prop snaps to the hand control's pivot the instant the constraint applies — the classic teleporting-cup moment. With it on, the prop keeps its offset from the moment of constraining, which means you must pose the prop in the hand first, then constrain.

Constraining the mesh instead of a control. Constrain a group or control node above the prop's geometry, not the geometry itself. You will want to adjust the prop's grip during the shot, and if the constraint owns the mesh's transforms directly there is nothing left to animate.

The same logic applies on the character's side: drive the prop from the hand control, not from a joint, if the rig has one. Controls are what the animation on the rig lives on, and joints can carry scale and orientation surprises.

The hard part: picking up and putting down

A constraint that is always on is easy. The shot almost always needs it switched — off while the cup sits on the table, on while the hand carries it, off again after the release.

The constraint's weight attribute is the switch: key weight 0 on the frame before the pick-up, weight 1 on the contact frame, and reverse it at the release. Two things make this workable:

  • Switch on a contact frame, where the hand is genuinely gripping the prop. Blending weights across several frames sounds smoother and instead produces the prop swimming between two parents.
  • Expect a jump at the release, and key the prop's world position on that frame. When the weight drops to 0 the prop returns to obeying its own curves, which still say whatever they said before the pick-up. Set a key on the prop at its released position on the switch frame, and the jump disappears.

If the prop pops even with clean weights, check for double transforms — the prop inheriting motion both from the constraint and from a group it lives under.

The faster route: fake constraints

Animators do this dance so often that a whole category of tooling exists to skip the ceremony. A fake constraint workflow does the same job without creating constraint nodes at all: it computes where the prop should be each frame while "attached", and bakes keys onto the prop's own curves.

The practical differences:

  • Nothing permanent is added to the scene. No constraint nodes to manage, mute or delete later — which also means nothing to break when the file moves between animators or gets referenced, a real concern in the workflows covered in copying animation between rigs.
  • Attach and detach are single actions, not a weight-keying ritual. The release-frame key that method one makes you set by hand happens automatically.
  • The result is ordinary keys, editable in the Graph Editor like any other curve — see Graph Editor tips for reading what came out.

How AnimKit does both routes

Disclosure: AnimKit is my own paid Maya toolkit, so this is the implementation I can describe exactly.

AnimKit's toolbar in Maya, cropped. Copy Rel and Paste Rel are on the right, between Mirror / Flip and the scale buttons.
AnimKit's toolbar in Maya, cropped. Copy Rel and Paste Rel are on the right, between Mirror / Flip and the scale buttons.

The fake-constraint route is two toolbar buttons. Select the hand control, then the prop, and click Copy Rel: the prop's placement relative to the hand is stored in memory, and no constraint node is created. Move to another frame and click Paste Rel to put the prop back in the hand there, or highlight a range on the Time Slider first and Paste Rel sets a key on every frame of the range.

The live-constraint route is in the Constraints tab. Attach @ Frame creates the constraint and does the weight keying described above for you: weight 0 on the previous frame and 1 on the current frame with stepped tangents, and it restores the prop's world position so nothing pops. Detach @ Frame keeps the weight at 1 on the current frame, keys it to 0 on the next, and holds the prop where it is. Bake Attach Range turns the result into plain keys, and Remove Attach Setup deletes only the constraint AnimKit created. It refuses to attach a prop that already has someone else's constraint on it.

The trade-off is the same as with any baked result: if the hand animation changes substantially afterwards, you paste or bake again, whereas a live constraint follows automatically. For blocking-final shots that is rarely a cost; during early exploration a live constraint can be the better tool. AnimKit runs on Maya 2022 to 2026 on Windows only and costs $9 a month, $39 a year or $79 once (checked on 1 October 2026).

Cleanup, either way

Prop work leaves noisy curves — a key per frame on the baked route, stray keys around the switches on the constraint route. A cleanup pass keeps the scene editable; the specifics are in cleaning animation curves in Maya.