Help - Constraints for Character interacting with objects

Hi everybody, I need some help regarding constraints. I am working on a project that requires several animations and in many of them there is a character that interacts with other objects. The character picks up the object, drops it, picks it up again. etc

It should be noted I do not have much experience animating. So far I have been using the constraint “Child of” to make my character pick up and place the objects he interacts with. I finally understood the “set inverse” and “clear inverse” buttons that let me make the transition of the constraint taking effect to be seamless. Before this, whenever I added the constraint to the object the location and rotation of the object would change, often disappearing from my view. I would have to manually place the object in the hand of the character trying to match the location of rotation of the previous frame (when the constraint influence was 0). The final animaiton looked like the object snapped to the hand of the character instead of a seamless and natural transition, it looked horrible.

Sorry for the lengthy explanation but it is relevant to understand the issue. Anyway, my problem is that “set inverse” does fix this issue initially, but if the character needs to pick up the object several times during the animation, it stops working. If the interaction goes as:

  1. Character grabs mug
  2. character leaves mug on the table
  3. character does something else, then returns and picks up mug again
  4. etc

The issue happens when the character picks up the mug the second time. The “Set inverse” correction is set so it works seamlessly with the first pick up. I can clear inverse and set it again for the second pick up but then the location and rotation of the mug during the first pick up will be messed up.

My current solution to the problem is to add a “Child of” constraint for every interaction. In this case there would be one constraint for the first pick up and another constraint for the second pick up, so I can set more than one inverse corrections.

My question is, how do animators work in an scenario like this? I can imagine that having 40 constraints in the stack for every single interaction is not very efficient.

Thanks a lot beforehand! I cannot share screenshots due to NDA, hence my rant :sweat_smile:

Hi, Yes child of constraints could be quite a challenge when object is lifted and dropped several times. One trick that i often use is duplicated objects left in there locations and position and then keyframe the hide from render and show in render for item in hand or on table.

1 Like

There’s a free add-on that will make this process a LOT easier :slight_smile:

1 Like

You don’t have to make things match by hand. You can use a visual transform. I’ve described the steps at https://blender.stackexchange.com/questions/210021/how-to-unattach-an-object-and-reattach-it-somewhere-else-in-an-animation .

When my plan is for an object to be picked up and dropped multiple times, I’ll usually add a layer of indirection, by creating an empty and giving it the child of instead. Then I’ll copy transforms on whatever I need, targeting that empty. Then I don’t have to worry about the child-of and all of its particulars, only the copy transforms, which is easier to manage (interpolates well.) While its transforms are not being copied, I’m free to move the empty about, so I can adjust its relationship to the object for a different grip or whatever.

In pro animation, you’re not going to have forty interactions in a single file, unless you’re doing some long-take parody thing, because you’ve planned your shots out and you know your camera cuts. You animate what you need for this particular cut and only what you need for this particular cut. For the next cut, you may use completely different constraints. This is important for managing complexity as you can imagine.

1 Like