How to rig an IK spline on a non-straight mesh?


I’m trying to get a curved geo rigged with an IK spline (every tutorial I’ve found uses a perfectly straight chain where this isn’t a problem), and the main issue is simply that once the curve is applied to the bones, they shift position, even when I haven’t touched the curve.
To my understanding it is simply because the bones must follow the curve exactly. This would be fine, however once the mesh gets skinned to the bones, it moves with it, they get skinned to where the bones originally was placed and then the geo gets nudged into the new position.

One (and so far the only) “solution” I’ve found is to have one curve point snapped to each bone, but that kind of defeats the purpose of having an IK as you normally tend to/want to have fewer control points controlling a more dense chain of bones, you also wouldn’t be able to take advantage of the handle control.

So what would be the best procedure if you want to keep the shape of the model? Maybe I just haven’t found the “maintain offset” checkbox or something.
Because otherwise I can only think of one options to fix this (and it sounds very wrong in my head) which is to create chain of bones, attach it to the curve, in pose mode snap the cursor to a bone, then in edit mode snap a new bone to the cursor (so it won’t get offset once the curve is in charge) and then just rinse and repeat for as many bones as you have and then delete the first chain of bones.

But that cant be right… right?

Set up the spline IK chain, with the curve in the rest pose you want for the bones. Select all the spline IK bones in pose mode and ctrl-a->selected to rest pose. Now weight the mesh to the bones (possibly via autoweights).

That worked like a charm, thank you! Here have a digital cookie :cookie:

Now I just need to figure out a way to control the twisting :smiley:

Yes, that’s the hard part. Minimum twist is usually best, and it’s usually wisest to control the first curve control via bone parenting rather than hooking (there are important differences in how those two things affect the curve tilt.)

If it’s not working for you no matter what, you can always make the spline bone non-deforming and give them each deforming children with locked Y track constraints.

Hard to say what’s ideal without the specifics.