Switch the influence values between two child-of constraints, but keep the position

When I used single child-of constraint, I can keep the position even change the influence of constraint by inserting Visual LocRot keyframe, but it doesn’t work when I have two child-of constraints and try to switching them.

Look this picture:


There are three bones:

  1. Parent Bone: Gun (Yellow)
  2. Parent Bone: Grenade (Cyan)
  3. Child Bone: Left Arm IK (Red)

At the above picture, child bone follows the Grenade Bone, not a Gunbone. I need to switch the influence of Gun and Grenade bones at that frame, so I inserted visual locrot keyframe of Left Arm IK and change the influence of Child-of constraint with Grenade to 0. This is the result, and looks fine yet:


But the problem begins here. Next I changed the influence of child-of constraint with Gun to 1, but child bone moves to wrong place.


As you can see the picture, Left Arm IK moved even I inserted Visual LocRot keyframe before changed the influence.

So, is there a way to switch those 2 child-of constraints but keep the position and rotation of Left Arm IK bone?

This issue is always bothering me when there are two or more child-of constraints, and I really want to how to fix it.

Any advice will very appreciate it!

A Child Of constraint moves the Constrained Object to the location, rotation and scale of the Target Object when you switch the influence to 1 - always has done and always will do AFAIK. Does anyone know differently?

So why don’t you make the Gun (& Grenade) a Child Of the hand, rather than the other way around? This is the accepted way to do things I believe. Or, you could make sure they are both in the same place when you change the influence values.

Cheers, Clock.