Create damped track rig without causing circular dependency

I want to create a rig with a bone facing a target bone, but then have the target bone position always be at the tail of the former bone. I could achieve this by adding damped track constraint from target to bone. And then adding limit distance constraint from bone to target. However this clearly will cause circular dependency. Is there a different way to achieve the kind of rig without causing said dependency?

I want to use this as I shoulder rig, moving the shoulder using the target bone.

If you wish to animate shoulders using the location of a target bone, then your target bone should not be the same bone as the one connected to the shoulder. You need three bones:

  1. Shoulder Target Bone, which can be parented to a more proximal bone in the chain, such as the chest
  2. Shoulder Bone (Clavicle), which is tracked to the target bone
  3. Upper Arm Bone, which is connected to the shoulder bone and can copy the rotation of the shoulder target bone if you like

The Shoulder Target Bone can even use the upper arm bone as the location of its custom display bone. Then it will behave EXACTLY how you expected your current rig to work. This seems like it would be a cyclic dependency but it isn’t!

Hey man thanks a lot this works perfectly! I have used custom display bone location feature before, but haven’t at all thought about it for this use case. I think Blender might be using a separate transform for bone display which is calculated after the bone chain transform calculations, which is why it doesn’t cause cyclic dependency. All in all a very handy feature.

1 Like