"Copy Location" + "Copy Rotation" loop question.

Here is my setup:

I have an Armature and an Empty object. The Empty has a “copy location” and “copy rotation” constraint to an IK target in the Armature. If you move the IK target around, the Empty follows it.

The IK target also has a “copy location” and “copy rotation” constraints to the Empty. If you set the influence on these constraints to “1.0” then the bone freezes in place. If you set the influence to “0.0” then the bone moves freely.

This setup is actually behaving the way I want it to but this situation seems ripe for crashing Blender or causing it to hang. Does anybody know what Blender is supposed to do when 2 objects are copying each other’s location? I’m worried that this just happens to work on the specific version (2.62) that I’m running and it likely to completely break on other versions or in the future.

I’ve attached a simplified .blend with the behavior that I’ve described. When you open the blend you can move the bone “arm_ik_target” around freely and the IK chain updates. If you set the influence on “arm_ik_target”'s constraints up to “1.0” then it becomes frozen in place and you can move the “root” bone around and the “ik target” stays still. Imagine a hand grabbing a ladder and then a body moving past it.

For the record, here is what I’m trying to do and I’m open to other ways to accomplish my effect:

I have an aquatic creature and I need to move the hands and feet around with an IK chain. But at some arbitrary point a hand or foot can “grab” the water and pull the body forward past the limb. To do this, I’m planning to have the IK bone’s constraints set to 0 most of the time so I can move the limb around. When the limb “grabs” the water I’ll set the constraint to “1.0” which will freeze that bone and I can move the body past it. This would be similar to a character climbing a ladder where you can raise an arm to the next rung, grab it, and then move the body past the arm. The wrinkle is that since this creature is in the water, it can effectively “anchor” a hand or foot at and point in space/water that it wants so I cannot just place some Empty objects at each “grab point” and parent the armature bone to that grab point as needed. My grab point could be effectively anywhere.


copy-loop.blend (329 KB)