How do I put a constraint on a bone affected by chain length? I'm trying to figure out how to put a constraint on the shoulder bone as shown in the images below. What I'm looking for is a realistic motion where the shoulder moves upward ONLY when the arm bone reaches a high enough angle. The image with the green circle is the position where I want the upward movement of the shoulder to start. I've tried tinkering with the rotational bone constraints but I ran into a couple of problems. The first problem is that I could never get the bone to rotate in the upward direction. The second problem is trying to find the axis behavior that causes the rotation resulting in upward motion. Moving the shoulder bone itself only rotates it in one direction and moving it indirectly with an IK through chain length doesn't change the coordinates of the bone itself.





Blend file:
Try using a Transformation constraint, this allows you to convert a location change into a rotation change.

In the following example I take the Z location of the arm bone with values between -0.3 and 0.3 and convert that to an rotation of the X axis of the shoulder bone from -5 to 5 degrees. Notice in the middle the Z source maps to the X destination.





For more control than that you can create a driver. You can define your own python functions to use in drivers to get as much control as you want.