I am getting deeper into making animations I’ll use in Second Life™. I am a novice animator/modeler, so I probably don’t know the best way to accomplish any given task nor do I understand Blender cooncepts all that well. But, I wasn’t seeing any tutorials and I haven’t been in any classes that helped me with using both IK (Inverse Kinematics) and FK (Forward Kinematics) in a single animation. (See What is IK/FK for more information on IK/FK.)
Since I’ve had to figure out how to do this, I thought I’d make a short tutorial.
I used Blender 2.71 and AvaStar 1.1 RC3 while experimenting and writing this.
The Planned Animation
I plan to have a standing avatar sit down. Once sitting I’ll add some foot bouncing, hand gestures, and may be some head movement.
Moving the avatar from standing to sitting is an ideal case for using IK. So, I did that. Works nicely, way better than FK animating the motion to sit down.
Once sitting I want to bounce a leg and foot while the avatar is sitting. This motion is an ideal candidate for FK animation. The problem with IK animating the upper leg using AvaStar’s ikHeel control is it moves a leg chain of influence that includes the upper leg (AvaStar: HipRight – aka: thigh or SL’s mHipRight). It is almost impossible to move the ikHeel and NOT move the upper leg. It is very easy to animate a lower leg and foot bounces via FK animation.
I used IK and moved the COG to position the avatar and hold the feet in place as I animated the sit-pose. If you try this and turn off IK influence, you’ll see it is a problem. (See video below) The controls for enabling and disabling are in the 3D window’s Property panel, so it is easy enough to change the setting, but then all the leg bones I’ve just positioned using IK move back to the T-Pose positions.
When using IK and Automatic Keyframe Insertion (See image #) I notice the Action Editor is only showing Blender automatically recording information for the IK controls LocRot, no FK info for the bones. This means that at some point Blender has to create those bone locations and rotations so they can be exported as a BVH or ANIM animation file.
A lot of sliders and settings can be ‘animated’ in Blender, basically including blender settings as part of the animation. I thought about trying to do that with IK enable-disable but gave that idea up. I think the settings I need to control were not meant to be ‘animated’. If I were to go that way I would need to animate when IK/FK influence changes in the animation to tell Blender when to use IK control for one part of the animation and FK for another part. As best I can tell that just doesn’t work.
If you want to understand what is involved in IK/FK rig building so one can use IK or FK animating see this instructional video (watching it is not necessary for learning how to use FK and IK in a single animation – this is just information): Humane Rigging 04 – Mr. Hotdog 06 – Arms, With IK-FK Switching. Remember. Vote up videos you like.
It was looking like I would need to manually record LocRot frames for each bone the IK controls were moving. That works, by the way. But, it is time consuming and tedious. So, switching between FK and IK animating was seeming way too awkward. My thinking was Blender pro’s had to have a better way. They do and I finally found it. The solution is Keying Sets, a built-in Blender feature that does pretty much what I want.
I am going to skip the animation basics as this is just a short tutorial. If you want more basic information, I suggest this tutorial; Medhue’s Animating in Blender with Avastar.
If you use only either FK or IK to make your animation, you don’t need any of this. If you want to switch back and forth and get the best of both methods, this is for you.
First, this takes some setting up. So, we will want to create a file that we can start our animations from and avoid having to do a setup every time we want to do a FK/IK switch animation… or any animation for that matter. It is easier to have a starting point. We need to setup a Keying Set or sets. You’ll have to figure out what works best for your work flow.