FK/IK matching (a.k.a. FK/IK snapping) in Blender

Hello everyone,

For anyone who doesn’t know, FK/IK matching is a very important function in a character rig that makes it much more intuitive to use and also makes the animator’s life much easier in many cases. It is a basic function according to many standards, but is unfortunately not so basic to set up.

FK/IK matching is different from FK/IK blending, which is much easier to set up and is also the solution proposed by pretty much all the available Blender tutorials out there on FK/IK switching. So for those of you who do not yet know, FK/IK matching means that when you switch a character’s limb from FK to IK, or vice versa, the limb retains the position it was in before the switch, without the need to rotate one set of bones in an attempt to match the other set. This can save a lot of time when animating. It also saves the time of animating the blend between FK and IK to get a smooth transition - because it’s seamless - and the switch happens in a single frame. It is usually set up to be controlled by a toggle switch or a couple of buttons, one for fk-ik and one for ik-fk, instead of a slider.

The great news is, it’s been done in Blender, but the problem is that scripts that worked with versions 2.4x don’t work on current versions. The most recent thing I’ve found is this video on Vimeo by kunkun, who has implemented it in Blender 2.5 (which still might not work on current versions, since the Python API was changed during 2.5, but it still looks like a solid solution that we can learn from):

He even posted links there for downloading his file but they don’t work.

Let’s find a solution to this! We need the very best rigs possible!

Have you looked at the code used in Rigify rigs?