Free rig - IK Spine (nearly Spline IK :-)

Hello,

here is my research concerning spine IK in Blender. You know that spline IK is still not implemented in Blender but after long testing here is a possible draft of solution.

My attitude was this:

  • use mesh “curve” (in fact subdivided edge - line of vertices)
  • use chain of bones, each one copies place of one vertex and stretches towards the following one
  • use lattice in b-spline mode on mesh curve, so the mesh curve has nice beziere bending
  • use hooks on lattice driven by bones controllers to manipulate the lattice

As I prefer cartoon attitude and squash and stretch rigging this works quite well for me. But I guess for “real spines” rigs and animation nice spine bending with ss attitude is preferable as well.

This is just the first test, prove of concept. I hope to make it better or hope that some advance rigger here in the forum will develop it. Sometimes you will need to go frame back or forward to update the rig/mesh. I used just very basic and fast skinning (weight painting) so sorry for this and possible mistakes. Should work quite well mainly for tentacles, worms, elephant trunks, tails etc. :eyebrowlift2:

It should be easy to combine with FK as this IK chain may work as “an offset bone-chain” being a child of main FK spline chain.

I hope to release version 2 implementing also rotation features of hips and shoulders.

EDIT:
Version 4

Version 3
- corrected flipping

  • changed the way of twisting that is better to be driven just by FK chain
  • also weight painting was improved

http://rapidshare.com/files/133790806/Spine_IK_FK_Test3.blend

http://img375.imageshack.us/img375/4902/spine1xy4.jpghttp://img375.imageshack.us/img375/2895/spine2lq1.jpghttp://img177.imageshack.us/img177/8025/spine5cw1.jpghttp://img297.imageshack.us/img297/9137/spine4dv4.jpg

Version 2
New version FK_IK_spine_2
New features:

  • twisting
  • IK controls follows each other little bit
  • FK chain (IK is on top of it)

So now it is concept of IK FK spine :slight_smile:

Download blend here:

http://rapidshare.com/files/132664160/Spine_IK_FK_Test2.blend

Test video:
http://blip.tv/file/1129697/

There are some pictures:
http://img403.imageshack.us/img403/3638/spineik1we4.jpg
http://img403.imageshack.us/img403/2240/spineik2qo2.jpg
http://img301.imageshack.us/img301/6526/spineik3ck7.jpg
http://img403.imageshack.us/img403/5859/spineik4tw8.jpg

Version 1
And here is blend file:
http://rapidshare.com/files/132635460/Spine_IK_Test1.blend

Feel free to test it and mainly enhance it.

Hey there, I’ve tried your spine rig. I really like the squash&stretch effect but I think you’re missing a few fundamental things:

  • twisting: at this moment is not possible to twist the spine
  • when you compress the first or the last controller, the two controller in the middle should compress a little too, same thing for the stretch.

If you want reference look at the work from this guys:

http://www.luvictu.com/

Nice work, can’t wait to see your next version :smiley:

-Gian

Yes, as I have said hereabove, this is rather prove of concept or feasibility study for next development. Rotation (twisting) and follow features are next step. I hope this will not be too difficult, at this moment I plan to use multiple copyrot and copyloc constraints with minor influence.

Thank you for the ling, Vinyals rigging reels is really famous. I have same attitude, learn from the best ones if you be good one.

OK, I have played with it little bit more.

New features:

  • twisting
  • IK controls follows each other little bit
  • FK chain (IK is on top of it)

So now it is concept of IK FK spine :slight_smile:

Download blend here:

http://rapidshare.com/files/132664160/Spine_IK_FK_Test2.blend

is this 2.46 compatible, or does it use some ‘wip’ features? :slight_smile:

I have just realised there is still no root bone. But this is not big issue, will add it in version 3.

Just 2.46, no python constraint, no patches. Just “handmade” :slight_smile:

Woooo, just tested and this is working really much much better. Haven’t had time to dissect it yet, but can you share some insight on it?

BTW there’s a little refresh bug that happens from time to time. If I pose a controller (IK) and then undo with mouse or CTRL-Z the controller snaps back, but the geometry is not updated. If I move the viewport everything is back to normal.

That kind of problems cannot be fixed easily,it’s a blender limitations,the way dependency graph works make impossibile(well,not really) to avoid redraw problems for this kind of setup.
The only solution is to stay or completely inside(here not possible) an armature,or completely outside(this is the way to go).
Basically you have to redo all the stuff,staying completely outside armature with control object(intermediary and final),and at the end you go inside armature with constraints,in this way you lose pose mode(bad limitation),but the ikspline setup should not give lagging(I will not explain that in detail as I think this guy is clever enough to do it himself,solving problem is a funny thing:)).
I also was working 2 month ago in a similar setup(honestly a bit better than this,I have tested this and it’s not perfect ,in some pose bones aren’t good aligned,but it’s a good start),my setup worked wellt except redraw problem,I have decided to stop my work there because for me the solution to not use pose mode was not acceptable,it’s like going 5 years earlier in time,but maybe for someone else isn’t a problem(we need really blender coder to fix this,they know the issue,I have posted everywhere the problem:)).
I hope it helps.
EDIT:
I appreciate this ikspline try JiriH,more people try mad/complex setups more faster this kind of limitations can be fixed.

Not updating geometry probably relates to some Blender issues not the rig. I used new MeshDeform cage feature so maybe this causes the delay.

“Insight information” are hinted in the first post. There are in fact no mysteries. First you should use FK chain for general pose, than you use IK spine to to tweak it in IK mode. But it is also possible to delete FK chain and use only IK. That is just personal preference for animators who are rather used for FK torso posing (which n fact are all actual Blender rigs available :slight_smile: so it is hard to guess who prefesr IK torso posing).

Edit: I just see renderdemon also answer updating question in higher detail. So thank you renderdemon very much.

Hi, I tried to do a non-lagging spline-IK for ages in blender, and in the final i ended just with three b-bones and some simple controllers… Which of course isn’t the best solution possible, so will definitely check this file, thanks.

Just note that combination with FK chain is still not perfect. Extreme positions are not possible. I hope we will develop it more here in this thread.
PS: Reputable Blender riggers welcomed here for their opinion :slight_smile:

It would be great if you could share your research.

Here is my first fast test clip. It seems to look quite good with nice spline IK effect:
http://blip.tv/file/1129697/

http://img247.imageshack.us/img247/7599/0001mx5.jpg

I have corrected flipping and changed the way of twisting that is better to be driven just by FK chain. Also weight painting was improved.
http://rapidshare.com/files/133790806/Spine_IK_FK_Test3.blend

Hi JiriH, just downloaded and checked- you almost certainly have cyclic dependancies in the file, which will give huge difficulties when animating… you can see this if you move one of the handles, then cancel the motion; the rest of the chain doesn’t respond to the cancelation, until you change frame or so.
on a quick glance you have:
bones controlled by a curve
the curve is controlled by a lattice
the lattice is controlled by hooks
the hooks are controlled by the armature

so you have the dependancy cycle armature->curve->lattice->empty-backto->armature
since blender calculates the dependancies on the object level excluding each bone, this is a cycle and not allowed… you can often fix it by splitting your armature object in to two: one which depends on the curve, and one that controls the empties. I didn’t look into it deep enough to see if this is the case.
It seems like a nice setup if you can iron out the kinks.

Very impressive rig Jirko :slight_smile: jentak dál

Bassam, thank you very much for your help and advice. Having split armature objects rather scared me (I used two armatures within one rig for my squash&stretch ball rig but I am still not convince that there is not any other better solution).I have also realised that even though the dependencies really sucks in 3d view port the rendering seems to work good.

But you are right when animating it is really annoying to clear it by changing frame.

So during weekend I my continue with my research to solve cyclic dependencies.

I have just check it very fast and dependencies may be (I hope) possible to fix. I will just use one armature for deformations and the second separate one for controlling bones. According to my previous rigging experiences it in fact may be very good attitude in general to have separate special armature for controlling the rig. Animator is then concerned only with bones that are need for animating.

Hey JiriH, that´s a really cool and interesting concept you have there. Once you have fixed the cyclic issue it will be a really powerful spine rig for cartooney characters and many other things. Really Good Job!!