1
$\begingroup$

I want to animate an object passed on from a Gripper A to Gripper B and then subsequently to Gripper C.

  1. I created
  • the object (gold)
  • Gripper A (red)
  • Gripper B (green)
  • Gripper C (blue)
  1. I animated the motion of Gripper B and C.
  2. I added a Child of constraint on the object, pointing to Gripper B. I named this constraint Gripper B. At the handover moment (from frame 7 to frame 8), I animated the influence going from 0 to 1.

So far all goes well.

  1. I added a second "Child of" constraint named Gripper C making the object reference gripper C. At frame 37, the influence of the Gripper B constraint is 1 and the influence of the Gripper C is 0. At frame 38, I reversed that, expecting the object to stick to Gripper C.

However, at frame 38, the object flips back to Gripper A and then copies the motion of Gripper C.

enter image description here

I tried the following solutions:

  1. After following some tutorials, I intensely tried fiddling with the Set Inverse and Clear Inverse buttons of each Child of constraint, but can't get the object to be handed over between more than two grippers. The Set Inverse vector seems to be added to the object, but it is unclear to me when and how and it is hard to debug. At least in one of the three sections (frame 1-8, frame 9-37 or frame 38-60) something is off.
  2. Creating a third "Child of" constraint to have the object stick to Gripper A in the first phase.
  3. Installingthe Dynamic Parent add-on but don't see anything in the user interface.

Help would be very appreciated. This is a simplified version of my real project. In reality, I want to simulate a machine where the object is handed over between 5 grippers.

The simplified example file is in:

https://github.com/henkjannl/RandomRepository/blob/main/Blender%20support%20question/Child%20of%20example.blend

I'm using Blender 4.3.1.

Thank you very much for helping!

HenkJan van der Pol.

$\endgroup$
4
  • $\begingroup$ You can use the Dynamic Parent addon, it will automatize the operation that I describe here: blender.stackexchange.com/questions/316616/… $\endgroup$ Commented Oct 5 at 14:49
  • $\begingroup$ This might be useful: blender.stackexchange.com/questions/338596/… $\endgroup$ Commented Oct 5 at 17:03
  • $\begingroup$ Hmm, I installed the Dynamic Parent addon, but I have no clue how it works, and I could not find description (not even a user interface in Blender). $\endgroup$ Commented Oct 5 at 18:51
  • $\begingroup$ maybe check a YT tutorial like this one: youtube.com/watch?v=_NqpO4Ht_9c but anyway it's better to understand how it works, so also you should read my answer $\endgroup$ Commented Oct 6 at 6:03

2 Answers 2

1
$\begingroup$

Run Clear Inverse on the second Child of constraint (the one named "Gripper C").

$\endgroup$
2
  • $\begingroup$ He can click the Clear Inverse whenever he likes, it doesn't have to be on frame 38. It is only necessary that the inverse is cleared. $\endgroup$ Commented Oct 6 at 11:25
  • $\begingroup$ You're absolutely right. I removed that part from the answer. $\endgroup$ Commented Oct 6 at 15:05
0
$\begingroup$

To avoid going insane, I'd suggest the following setup, before animating anything.

Move the Gold's origin to the world origin (AltG), oriented in a sensible way (e.g., flat in the XY plane in my example below). I'd suggest applying the Gold's rotation and scale, though it's not necessary.

For each gripper, add an empty with the location and rotation where you want the Gold's origin to attach. The XYZ orientation of the empty should match the XYZ orientation of the gold in world space (e.g., if the gold is flat in the XY plane in world space, you want the XY plane of the empties matching the flat face of the grippers). If you scale the empties, remember to apply the scale. Don't apply the location or rotation. Parent each empty to its gripper:

enter image description here

Add three "Child Of" constraints to the Gold, one for each Empty. Turn all the influences down to zero, and click "Clear Inverse" for every single one:

enter image description here

Now, test the constraints. Turn up the influence of each to 1.0 in turn. The Gold plate should move to the corresponding empty. If multiple constraints have influence, the position will be "interpolated". Here's the "Child of Red" constraint at full influence:

enter image description here

Save a copy so you can test moving your grippers all over the place. Move the grippers around and rotate them arbitrarily, and repeat the test. Make sure it all works as expected. Here's full Child Of Blue influence:

enter image description here

NOTE: If you want to move the gold without a gripper, don't animate the gold directly! Add another empty for non-gripper movement, and use another Child Of constraint for that empty.

This works because with "Clear Inverse", the "Child Of" constraints will transform the gold from world coordinates (i.e., oriented at the world origin) directly to the empty's local coordinates (i.e., at the correct position and orientation to be gripped by the corresponding gripper). Since the empties are parented to the grippers, they will move with the grippers, and the parent with influence will carry the gold along with it.

Now, you should be ready to animate the cubes and the "Child Of" influences to get your gripper hand-off. Using constant interpolation on the influences can decrease the number of keyframes needed, since you just need one frame for the handoff. (See my Blend file.)

enter image description here

Remember:

  • Gold needs to be at world origin and all Child Of constraints need "Clear Inverse" to snap the gold to the empties.
  • Empties need applied scale (or the gold will be scaled), but location and rotation shouldn't be applied, since that's what will move and rotate the gold to the right place.
  • Make sure it all works correctly without animation.
  • When you animate, only the grippers and the influences should be adjusted. Don't transform the gold or the grippers' empties.
  • For gripperless movement, use another empty with a Child Of constraint -- that empty can be animated.

Here's my example Blend file.

$\endgroup$

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.