Rigging Challenge: IK-FK Arm


#1

I would like to put a challenge forward.

I am trying to make an IK-FK arm rig, similar to CS:Biped. I know this can’t be done with a single bone chain (without using max’s sad excuse for fk-ik blending). Below is a link to a max file wich I believe will be the basis of such a rig.

[http://www.wahooney.net/downloads/FK_IK_Arm.max](http://www.wahooney.net/downloads/FK_IK_Arm.max)

It contains two overlapping bone chains, one with HI-IK (red), one without (blue). The IK Goal object is linked to the last bone (wrist) in the non-IK chain and the swivel target is linked to the second bone (elbow). If you rotate the non-IK bones you see that the IK bones match their movement exactly.

Now what I need to know is how I’ll get the non-IK bones to follow the IK bones when the IK Goal (or some system of dummy objects) is moved.

My aim is to have an arm rig that is primarily FK but can use IK for posing, using the HI-IK Solution.

[ol]
[li] Can this be done?[/li][li] Can Applied IK use HI-IK?[/li][li] Am I wasting my time trying to make such a system?[/li][/ol]Thanks.


#2

dont think this is possible in max 7 - you could try to use callbacks to align the fk arm to the ik arm when the target is moved but you would probably face performance issues and or dependancy loops - depending on the setup - i have tried this a few times before and was never happy with the results. good luck

mark


#3

Thanks. I was thinking of using a #selectionSetChanged changed callback, but then there’d be all sorts of registering of objects and what-not that would just bog max down.


#4

You’re best bet is to have a two buttons that will snap the IK arm to the FK one, and vise versa. But overall, I’ve found spinner that goes between 0 and 1, 0 = FK and 1 = IK, to be the easiest to animate with.


#5

Hi Wahooney,
maybe thats a little too much, but have you thought about writing a complete new (script based) IK controller which has proper FK abilities?
I did some research some time ago and came up with a very basic and simple IK controller, not really useable, but maybe you can figure something out with this. Unfortunatly, i never had the time to do some deeper research into this, but i think there can be done some interesting stuff with this.
Here is the little script which applies script based IK to a bonechain. just create a bonechain, select the root and run the script.


#6

You can do a complete IK-FK arm rig using a single chain. No need for an FK arm and an IK arm. You have to use MAX’s Interactive IK though(the old IK system). I’ve used it for years animating a couple of video games. It works quite well and is superior to the newer IK system in this aspect.

EDIT: http://www.seangilley.com/arm.max <–here’s an example of what I’m talking about

Open this file and then go to Hierarchy/IK panel. Turn on the Interactive IK button when you want to use IK on the rig. Move the Pelvis bone around and you’ll see the arms want to stay in place. Grab either the r_hand or l_hand bone and move it around. When you want to use them in FK mode, just turn off the Interactive IK button and use the rotate tool and rotate the bones like normal. If you don’t want the hands to stay in place when you move the pelvis, under the IK panel just uncheck Bind Position and Bind Orientation for both the r_hand and l_hand. The hands will now move with the pelvis.
Also note that I have an extra bone in the Bicep area. This is just for skinning purposes around the shoulder area. Putting an extra bone there helps deformations.

PPS: I also have the Interactive IK button put on a hotkey. I also have a script that Binds Position/Orientation for whatever object is selected(hotkeyed too). So I can tell the object to stay in place(IK) or move with the Pelvis(FK)

PPPS: :slight_smile: Oh yeah, you make sure you only set rotation keys on your joints when animating. Don’t set position keys, only the pelvis bone should get both position and rotation keys. And if you want the clavicle bones to be effected by IK when moving the hands make sure you unckeck “Terminator” for both of them in the IK panel, then set the Chest bone as Terminator.


#7

@JHaywood: I’ve made a system like that already, but I’d prefer to cut out the spinning middleman :wink:

@Cthulhu: I was thinking of something along that line, but won’t a purely scripted IK arm rig be a bit sluggish?

@gilley: I’ve got horrible memories of the HD-IK system, so I’d rather avoid it like the plague.


#8

Right, the HD-IK system is crap. It’s even worse than their older IK system. Be assured though, that the rig I showed you works really well and is no where near as bad as HD-IK.

The rig I’m showing you is NOT HD-IK, it’s Interactive IK.


#9

This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.