I have a body-neck-head rig that looks like this with no pose:
Being a child, the neck should rotate with the body. This works by default when rotating the body bone:
However, the neck should also be able to turn on its Z axis independently of the body. This works if the body is only rotated on its Z axis:
But it gets messed up when I Z rotate the neck if the body has been X or Y rotated:
As you can see, the neck's Z rotation is not relative to the body. It's relative to something else (I don't know what). This isn't for a humanoid rig but a machine, so the neck should never change relative to the body's X and Y, but should be able to rotate a full 360 on its own Z. How can I make the neck match the body's X and Y rotation but still Z rotate on its own axis?
I've tried tons of different bone constraint combinations but nothing makes sense, the neck's Z rotation somehow becomes tied to its Y axis. It became a confusing mess.