I made this simple example u can see below to understand the problem.

The little cube is attached to the bigger one with a child of constraint. I want the little cube to be able to move with the bigger cube, like in the gif below, and unnattach it when it reaches the top, and make it move to the cilinder from that point (I also would like to rotate, move, etc.. the little cube while it's going to the cilinder) and then attach it there to follow the cilinder.

I have no idea how to do this and would be amazing if someone could help!

enter image description here


1 Answer 1

  1. Go to the last frame where you want small-cube acting as the child of big-cube. Keyframe loc/rot/scale and the influence of your child-of constraint (at 1.0).

  2. Advance a single frame. With small-cube selected, use "apply visual transform" operation. (From ctrl-a menu in object mode for me.) Small-cube will jump; don't worry about it.

  3. Set the influence of your child-of constraint to 0 and you'll see small-cube jump back to where it "should" be. Keyframe loc/rot/scale and constraint influence (at 0.0).

  4. Optionally, turn off snapping in your graph editor and move this frame's keyframes -0.99 in the graph editor's X axis. This is to preserve smoothness of motion.

  5. Go to the frame when you want small-cube to begin acting as the child of cylinder. Transform small-cube to how you want it to look at this frame. Create an additional child-of constraint, targeting cylinder, and set the inverse. Keyframe loc/rot/scale and constraint influence of this second child-of constraint (at 1.0).

  6. Go back one frame. Apply visual transform, then set constraint influence (of cylinder child-of) to 0.0, then keyframe loc/rot/scale and constraint influence.

  7. Optionally, move this frame's keyframes +0.99 in graph editor's X axis.

  8. Make and edit whatever breakdowns you want in the period between the small-cube acting as the child of big-cube and the child of cylinder.

  9. Optionally, after completing the animation of small-cube and big-cube and cylinder and anything they depend upon, select small-cube and use a "bake action" operation with "visual keying" and "clear constraints" to write the constraints to raw transforms. This will prevent any issues arising from motion blur and will allow you to retime the animation to your heart's content.

  • $\begingroup$ You explained that so good! Thanks! $\endgroup$
    – Swipes
    Commented Jan 30, 2021 at 18:25
  • $\begingroup$ Just one thing to add to this - if you've got an object you want to hand off back and forth from one character to another, you CANNOT just re-activate the first "Child Of" constraint! The Set Inverse part of that process will wreck the beginning of your shot. For each "possession of the ball", as it were, you've got to make a new Child Of constraint. I had a shot where two characters pass a canteen back and forth between them, and it took 5 or 6 different constraints. Don't try to re-use them, just make new ones. Unless someone knows a sneakier way to get around this... go ahead and correct me $\endgroup$
    – Curve
    Commented Dec 16, 2022 at 15:27
  • 1
    $\begingroup$ @Curve When I want to go back and forth like that, one technique I'll use is to create an extra empty to be the child-of, and then I'll copy transforms onto the rendering object/bone. The empty can be adjusted while the character is not handling the object, rather than changing inverses on the constraint, and copy transforms interpolation works better than child-of interpolation, so I can activate or deactivate the CT constraint over several frames. Original question wasn't asking about this, so I just provided the need-to-know rather than TMI, but you might find it useful.. $\endgroup$
    – Nathan
    Commented Dec 17, 2022 at 16:54

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .