SplineIK bone chain tilting for no reason

I have a bone chain controlling a strand of hair. The bone chain has a Spline IK constraint to a bezier curve. The curve has softbodies running on it. The head is doing a test animation that involves moving the head side to side, then it spin upside down to test how well the hair falls. Almost everything is working: The softbody runs fine, and the SplineIK correctly transfers the motion to the bone chain. However, the bone chain keeps rotating around it’s local Y axis—similar to the effect you would get if you Tilted the curve.

This creates a problem when the head flips upside down. The strand is doing a 360 degree rotation around it’s local Y axis, which looks wrong. And the curve does not seem to be doing this rotation at all. If I give the curve some extrude, turning it into a plane, I can clearly see that it tilts back and forth a little bit as the head moves, but it does NOT execute the 360 flip that the bonechain is.

How do I stop the bonechain from doing this? I have tried limiting the rotation of the bones with constraints, but this does nothing, as does locking their axis. I assume the Spline IK is overriding them.

You could give the bones an additional ‘Damped Track’ BoneConstraint (Pose Mode) and specify an Emty or Object as the Target.

I’ve tried Damp track, Limit Rotation, Tracked To, Copy Rotation, and Child Of. None of these solve the problem. They do function, and they do limit the roll rotation to some extent, but none of them actually stop the piece from rolling over. They just limit when it happens. By default, it does it slowly and smoothly over several frames. With Damp Track, it caused the roll to stop at a point, and then do the roll very quickly over a few frames.

Here’s a picture of the problem: Starting position on the left, and mid-roll with the head upside down on the right.


I’ve tried Damp track, Limit Rotation, Tracked To, Copy Rotation, and Child Of. None of these solve the problem. They do function, and they do limit the roll rotation to some extent, but none of them actually stop the piece from rolling over. They just limit when it happens. By default, it does it slowly and smoothly over several frames. With Damp Track, it caused the roll to stop at a point, and then do the roll very quickly over a few frames.

Here’s a picture of the problem:

[ATTACH=CONFIG]343787[/ATTACH]