Issues with Copy Location / IK constraint.

For a project I am working on, I have a need to use two different armatures but have the two armatures interact with each other. To be specific, I have armature A’s root use a Copy Location on a bone in armature B and there’s an IK constraint on a bone in armature B that points to a bone in armature A.

This has mostly worked ok but I have been seeing a few odd behaviors. One of the behaviors I have been seeing is that if I move a bone that another bone is copying and cancel out of the movement, the copying bone will not cancel and will have kept the canceled location. This same behavior has also been seen with the IK constraint where it will continue to point in the canceled location. It should be noted though that these issues have been inconsistent.

Another side effect of this is that during animation the copy location seems to lag behind. This gives some particularly odd behavior when working on a looping animation that moves the root bone. I’ll see stretched limbs for a split second before the copy location “catches” up. This does not occur if I go through the animation frame by frame, only if I play the animation.

Before assuming it is a bug, I’m asking here to see if someone know how to resolve my issue or if I’m doing something wrong.

I have provided a .blend file that (hopefully) reproduces the issue I’m seeing. Though, as I said before, it can be inconsistent. To reproduce the issue I have seeing, move the green bone in the capsule with ‘g’ and cancel out of the movement. Hopefully you’ll see either the capsule’s IK pointing in the incorrect position or you will see the cube remain in the incorrect position (as I said, inconsistent). Another option is to move the pink bone in the cube to hopefully reproduce this issue.



CopyLocation.blend (585 KB)


for what it’s worth, it happens to me as well from time to time, mainly when working with two armatures connected through constraints. If I had to make a guess, I’d say the dependency graph struggles to update the relations between bones for every frame, especially if you’re in “frame dropping” mode. Somehow canceling a transform does not systematically cancel the dependencies of this transform (constrained bones, etc). I usually resort to use “clear user transforms” (specials menu in pose mode).

Maybe the threaded dependency graph in 2.70 will bring some improvement to this.


Where exactly is the ‘clear user transforms’ (or I suppose where is the specials menu in pose mode)? I looked around and couldn’t locate it.


Hit w. Or Pose menu, Transform, All​.

Thanks, that at least causes the constraints to properly update. Well, here’s hoping for 2.70 :).