I am trying to set up a spline IK chain for a spine rig. Overall it appears to do what I want as the final result, but it has some very strange effects on the rest of the rig
In the first image the spline IK is turned off, so that is the rest pose of the rig.
If I now turn the spline IK on (second from the left) it deforms the spine bones along the curve. Even if that was tolerable it also deforms all the rest of the rigās bones (IK chain lenth is correct). Initially that was even much worse that what is visible in the picture. Tuning off āinherit scaleā in all the non-spine bones lessened the deformation a bit, but it is still very noticeable.
Oh and the āchain offsetā option (whatever that does exactly) rotates the spine very strangely 90Ā° to the side and messes up the rest of the rig (not pictured).
Anyone got an idea how to fix that? Did anyone implement a spline IK successfully as a spine control for a human rig already? It seems like this is pretty much an undocumented and buggy feature???
thanks for the help!
Edit, if anyone needs the .blend I am happy to supply it, in general the rig can be found here (but so far without the spline IK spine rig):
No one? I think it might actually be a bug in Blender I am basing this hypothesis on the fact that regardless of whether or not I press the āeven divisionsā modifier check-box (in the Spline IK dettings) it seems to do just that, e.g. even divisions. Thus if I elongate the IK chain it fits more bones evenly on the curve and when I shorten it it tries to fit less on it.
Is there any place where I can force a certain setting while overriding the gui?
Here is a quick .blend which shows the problem (not very clear though). Obviously far from a real spine rig, but it has the basic setup (licensed CC0/public domain).
When you tun on and off the spline IK it makes the bones along the curve jump into evenly spaced positions and of course all the bone child of these move with them.
Strangely enough with this rig build from ground up it doesnāt show the y-strech behaviour of the rig show before. Never the less it doesnāt do what is it supposed I think.
Firstā¦lemme say spline IK isnāt a quick spine sort of rig. A spline is a curve, a spine is a human back.
I assume you played with the official demo file and all that. From what I understand is that the spline IK constraint snaps bones to a curve, which is what your demo file does. I see nothing wrong with that part of it.
I do see the problem with the children bones. When I played with this, I made the control bones and the rest of the rig the same armature, then the spline IK bones the separate armature. The bones that you have as children of the spline IK chain are just that, children of the ik spline chain. When using the ik spline constraint, you have to make another armature object that controls it. So all the bones that control the rig need to be 1 armature, the spline ik chain needs to be another. AFAIKā¦
And donāt be surprised at no response to your post on the subjectā¦ I got one post to my question on the subject here
So yea, I donāt think there are many people using it, Iām unsure if itās still a wip feature, etcā¦ I dunno
Yes I am aware that a spline isnāt a quick spine rig, but I think it could be used very well for that (IMHO a human spine is very similar to that in reality too).
So you think by making the child bones yet another armature (the control bones already are) it will fix the deformation? Hmmmā¦ actually by turning off the inherit scale option it does fix that more or less already (a bit difficult to see as there is the other deformation problem effecting them too).
My problem with the spline IK is that it really deforms and scales the bones. Ideally I would like it just to keep their original positions and be deformed according to the curve, or at least only snap to the curve and not be scaled to be equal distance along the curve.
Because especially the latter is causing the child bone to be dragged along with them, causing a badly deformed rig.
I think the behavior that I would like to have is intended to work with the ākeep offsetā turned on and both the āequal distanceā and āy-strechā check boxes tuned off. But the former rotates the rig 90Ā° for some reason I canāt figure out, while the latter two donāt seem to work at all and are permanently activated (regardless if the box is checked or not).
Based on this I assume this is actually a Blender bug
But thanks for your reply! Does anyone know by chance who implemented the spline IK function in Blender? Maybe it would help to send him an email and ask about it, if there are not a lot of people around here who have experiemented with spline IK.
Because especially the latter is causing the child bone to be dragged along with them, causing a badly deformed rig.
I think the behavior that I would like to have is intended to work with the ākeep offsetā turned on and both the āequal distanceā and āy-strechā check boxes tuned off. But the former rotates the rig 90Ā° for some reason I canāt figure out, while the latter two donāt seem to work at all and are permanently activated (regardless if the box is checked or not).
Based on this I assume this is actually a Blender bug
Just reset your curve objectās Y rotation from -90 to 0 - that will fix the ākeep offsetā bug you mentioned.
I think I know what your getting at in regards to goals of your spline IK rig. Maybe make a NEW armature that has bones location- constrained
to your spline-ik armatures bones, then their rotation.
But I believe the goal of the spline IK is to have a deforming bone chain along a curve, thatās the idea. Iām unsure what kind of end-usage your going for by trying to just move along a curve.
Ahh, I never checked the the orientation in object mode, stupid me Thanks
However it does not do what I though it wouldā¦ it just makes it possible to have the entire bone-chain at an arbitrary position in relation to the curve, but the bones are still snapped and scaled to the curve.
Maybe that really is how it is supposed to work. I am starting to think that I can probably adjust the originals boneās rest positions to fit to the Spline IK pose onesā¦ itās not such a big difference and might work too. If I then turn of the inherit scale the changes in positions of the child bones should be minimal.
My end goalā¦ well I think I am a bit unsure myself about that still. I have experimented with good spine rig setups, and I really donāt like pure FK setups, while the normal IK/FK setup I have come up with (see link if first post) somewhat works but I am not really happy with it either.
But when looking at some non-blender rig videos I noticed that the really nice ones have a movement that very much looks like it follows a bezier curve (as in if you bend the lower part, it also gives a small counter movement at the top), that it why I think it would be great to use the spline IK for that. Besides that it also gives a more realistic representation of how a real spine works.
I think the current spline IK setup I have already does what I imagine to a certain extend, but of course currently you really only have the hook bones to control the curve in a very FK fashion (spline IK isnāt so much āIKā after all), but it is IMHO only a question of further setting up meta controls for the curve hooks, while the general behavior of the spine is there already.
However if this really turns out to be a good setup, I still have my doubts.
Ok here is another illustration of the main problem, I really donāt understand why it is doing this:
Left: Spline IK turned off; Right: turned on
It seems like it is scaling the bones exactly the oposite of what I wantā¦ itās not even equal distance (that checkbox doesnāt seem to do anything), but just strange