IK pinning is now available

June 15th, 2014

We've made some great progress on the runtimes supporting meshes, FFD and skinning. We have completed 14 runtimes, though there are still a few remaining. Rest assured we will get to them soon!

We are excited to announce that IK constraints are in Spine version 1.9.0, which is now available! It currently allows for two bone IK as well as IK/FK mixing, which can be keyed. This allows you to mix and match FK and IK within the same animations. Coupled with skinning, IK makes for extremely easy animating of meshes that deform realistically.

In the animation above, IK is used on the raptor's feet. This locks the feet to the ground and the knees and ankles adjust automatically as the body bounces up and down.

Currently none of the runtimes support IK. The IK data is also not yet output in the JSON or binary formats. We wanted to get IK in your hands as soon as possible.

If you aren't familiar with IK, it stands for inverse kinematics. IK adjusts the rotation of a hierarchy of bones so the tip of the last bone points at a specific place. Eg, you can use this to pin feet to the ground, so when your character crouches the knees bend instead of the feet going through the ground. You can also animate the target the bones point to, which can make many kinds of animation much easier and use a lot fewer keys.

To use IK in Spine, select two bones, click Constraints in the tree, add a new IK constraint, then choose a target bone. Now the two bones will always point to the target bone. You probably want to create a bone solely for the purpose of being the IK target.

You can adjust the IK/FK mixing on the constraint's properties in the tree. This allows you to use keys on your FK pose to use a mix of FK and IK. To see the FK pose, IK pose and the mix pose at the same time, check the visibility dot next to the constraint. When the visibility dot is unchecked (the default) then you will only see the mix pose and the bones are drawn as an outline to show that the scale, rotation and/or translation is being controlled by a constraint and cannot be edited.

Thanks again for supporting us so we are able to make these great features available. Cheers!

Discuss this post on the Spine forum.