FK and IK Spines

Hello everyone,

Currently, I am attempting to add a IK spine to my character mainly because I like the idea of not having to counter-animate anything as you would with an FK spine. The one concern I have, however, is that I’m not sure if I will necessarily need an IK spine for my character since I’ve been told that a lot of people actually prefer to use FK spine. They tell me FK offers the most control but I’m wondering what you guys think from an animation point of view. I tried looking on the forum for some info on this topic but couldn’t find anything so I’m curious what are the primary differences between FK and IK spines?

Thanks.
-B

You might find this and the following few slides useful: http://www.giantbite.com/Steve/BP/img22.html

Basically, IK splines are more about controlling the hips and shoulders as masses where fk spines are more about whip action and progressive breaks. FK tends to be more expressive and also more work for animators; IK involves less counter and is better for subtle shifts of weight and emphasis. You’d want FK for something with a lot of torque (hitting a baseball, chopping down a tree), and IK for something where the character want to put weight in exact places (a boxer ducking a punch, a soldier aiming a gun)

[QUOTE=Theodox;24103]You might find this and the following few slides useful: http://www.giantbite.com/Steve/BP/img22.html

Basically, IK splines are more about controlling the hips and shoulders as masses where fk spines are more about whip action and progressive breaks. FK tends to be more expressive and also more work for animators; IK involves less counter and is better for subtle shifts of weight and emphasis. You’d want FK for something with a lot of torque (hitting a baseball, chopping down a tree), and IK for something where the character want to put weight in exact places (a boxer ducking a punch, a soldier aiming a gun)[/QUOTE]

Thanks, Theodox. I appreciate the information and link. Now I have more questions though :).
It seems that each system definitely offers its own benefits and drawbacks so I’m curious how most people go about getting the best of both worlds? I’ve seen a few rigs that offer a little bit of both FK and IK functionality but I’m really interested in the 2+1 FK Torso. Do you know if there any other drawbacks to this system other than the ones listed?

I’m assuming you don’t get 100% functionality (as you would with purely FK or IK)?

If that is the case, does anyone think it would it be a better idea to create some sort of switch in the spine that would allow either full FK or full IK functionality? This way, you would eliminate any possible drawbacks and simply rig the spine as you would FK/IK arms.

I really appreciate the help so far.
-B

Most folks fall into one of two camps: do multiple different rigs and pick the right one for a given scene, or add a switch. I think the latter camp is larger; however neither approach is perfect.

A 2+1 FK torso is plain FK animation, it just makes it easier to split out the twist rotation from the others (if you don’t do it that way, you will find that the shoulders move when the hips twist, for example).

You can do the switch like this:

  1. create a regular FK control by duplicating the original spline
  2. run a linear spline along it (one cv at each bone)
  3. create a second control spline (this can be your linear spline duplicated and smoothed with a maya smooth curve)
  4. loft the curve from 1 to the curve from 3
  5. make an a curve-on-surface along a V isoparm of the loft using ‘Duplicate Surface Curves’ and keeping the history on
  6. use the curve-on-surface as the actual IK control spline. You can blend by changing the V param value of the curveFromSurface node created in 5

That gives you FK-IK blending between the spline control and FK control.

I did something similar to this in the most recent rig I made in softimage. I set up blending in a way similar to most arm blends- two separate bone hierarchies for the IK spine and FK, and another hierarchy which the mesh is skinned to. The skinned bones were orientation and position constrained to both hierarchies and blended with a slider. To neaten things up, the controller visibility for the IK or FK spine was automatically hidden or shown depending on which was active.

It could definitely be more efficient, but it’s a nice simple setup. By having the slider on 50% you could even have a combination of IK and FK going at the same time, I’m not entirely sure if this would ever be useful though.

I’m going to start learning Maya soon, so i’ll definitely be checking out that technique you posted Theodox.

Thanks for the replies, guys. This place is awesome.

Theodox,

As you pointed out sometimes people opt for multiple rigs in order to simplify things but of course, this approach isn’t as intuitive as having everything all in one rig. The up side though, is everything remains pretty straight forward and you don’t have to worry about having extra functionality (or valuable scene data) that you know is not going to be necessary for a particular shot.

With this said, I actually decided to separate my rigs so that I have one with an FK spine and another for IK. I’m definitely tempted to try the technique you mentioned at the moment but maybe I’ll try that method sometime down the road. :slight_smile: Thanks a lot for the help.

Twiggy,

It’s funny you mention that approach because I actually rigged my arms exactly the same way in Maya. I used a BlendColors node to be able to switch between two different arm joint chains (FK and IK), then I have my original arm chain driving both duplicate chains.

Perhaps later I’ll post a screen capture of the rig I’m currently working (in action) but for now here’s a few snapshots of the WIP, in case anyone is interested :).

I haven’t tried it yet but I think I could probably rig my spine and legs using this same approach. If I commit the time, it will hopefully allow me to have FK/IK control in every part of my rig. Wouldn’t that be a treat…

-B

That would be pretty cool to have. Does Maya have any way that you can completely deactivate constraints from being calculated? If you could deactivate every constraint which currently isn’t being used then you could potentially have full IK/FK switching everywhere without causing any hit to viewport framerate.

For softimage the active/muted flag for a constraint can be wired with an expression to something so that 0 is off and 1 (or in between) is on. I wired this to the same slider which switches the IK/FK blend for objects. The end result is that the entire switching system was included and it required no more processing power than an IK or FK only setup.

In theory you can do this for anything; in practice you’ll find that the interpolation between very different poses coming from different control schemes can be very odd; as with FK / IK switching, it’s a good idea to think about having tools to make rig A assume the same pose as rig B so you can match poses at the beginning and end of a transition so things are smooth

Theodox:

Yeah, i’ve noticed that problem before- it works out fine with full blending on either side, but halfway between it jitters like crazy on the way. I’m pretty sure it’s something to do with how quat angles are converted to Euler (that annoying -90 to 90 flip in the middle axis of the order). It does confuse me a bit still though because supposedly constraint blending on most software is done with a simple quat slerp, so the Euler issues shouldn’t really be a problem even though the final outcome does need to be euler.

Sometimes it’s Euler-quat conversion; there are multiple valid euler to quat conversions for a given rotation, and Maya does a poor job picking ones which don’t cause problems.

You may be able to get better results with a NoFlip style interpolation on your constraints, but even that won’t work all the time.

Sometimes its just a relativity thing - its not always clear how you should get from one pose to another without extra information (about anatomy or momentum or character) that Maya just doesn’t have. If the poses are too different the interpolation is always dicey

Now you’ve lost me :laugh: I still have a lot to learn about quaternions and euler!

Hmm…since this thread is about IK/FK spines, would anyone be able to suggest a decent tutorial for setting one up in 3DS Max?

Something with the functionality of this would be sweet: http://www.isner.com/isnerspine/spine_introduction.htm

I’ve heard that spline IK is the best option, but the setup for it confuses the hell out of me.

isner is pretty easy to implement in Maya. Quick outline:

  1. Set up a basic spline IK (remember maya hates it if you do spline ik and don’t use X as your primary joint orient!)
  2. extend the top of the spline a little so you don’t get kinks if the spine is hyperextended
  3. add 3 knots to each end of the control spline. You need 3 to make sure that the tangents are completely stable at the ends of the chain.
  4. skin the CVs of the spline to control objects for the hip and shoulders. You can control the tension in the spline by scaling the control objects.
  5. set up advanced twist on on the spline IK so the start and end rotations follow the control objects

Some extra info here http://www.giantbite.com/Steve/BP/img30.html and on the following slide

The main drawback to the isner setup is that (like any IK) you can hyperextend the control; not much you can do about that with standard maya.

I was looking for a 3DS Max solution, but thanks for the answer anyway! Sooner or later i’m gonna have to learn Maya, so i’ll probably come back to here.

I kind of found the solution to it. It uses splineIK, with another series of enveloped bones overlayed on top of the splineIK bones. The enveloped bones use a series of points as upvectors, and the point’s rotation is dependant on the rotation of the hip and pelvis controllers in relation to a root controller. It’s a pain in the ass to setup but it seems to work.

Now to figure out an IK/FK hybrid version. I’ll see if I can recreate your maya technique inside of max