# Transform constraint problems when rotated on multiple axes

I have a human with armature modeled in the T pose. I rotated the upper arm to a YZX Euler of (0,0,-90) so that the arm is pointing in front of the model. When I rotate the arm on the local X axis so that it rotates up and down, the X and Y values for the Euler change to -90 and 90 and the Z value depends on how much I rotate around the local X axis.

I have a transform constraint on the collar bone with the target being the upper arm bone. The settings are: source Rot-X, min 45, max 75; destination rot X, min 0, max 15; mapping X -> X, Y -> Y, Z -> Z; local space to local space. My intention for this transform is to rotate the collar bone when the arm begins in the T pose then rotates pointing diagonally, up and to the side, by 45 degrees, then the collar bone would automatically rotate to up to 15 degrees as the upper arm rotates to 75 degrees. The issue I have now is that it is that when the arm is pointing in front of the model then I rotate it up slightly, the collar bone instantly rotates 15 degrees. I have the same problem when I use drivers instead of transform constraints.

This is probably related to two different Euler values being able to represent the same rotation: (-90,90,-90) and (0,0,-90). I also have this same issue for empties that transform in response to arm rotations. The empties are hook targets of lattices and the lattices correct armature deformations. In past discussions I’ve had similar issues with drivers and it was suggested that transform constraints might work better.

Hey; Have you tried to use ‘Quaternions’ ? Unless you know the exact order of rotation your ‘Arm’ is going to make - ‘Euler’ is prob not the best choice. And I’m pretty sure ‘Drivers’ get evaluated before ‘Constraints’.

Edit; Forgot to say check your ‘Bone Roll’ …

I changed to quaternions, and that seemed to solve the problem. Also, I am not using a combination of drivers and constraints. I am now using transformation constraints instead of drivers.