Insert keys for all bones or just IK control bones?

When I’m animating characters for a game, should I add key frames for all bones in my armature or should I carefully just pick the ones I actually moved myself?

In this tutorial, for example, the artists seems to be including all of the bones:

But I haven’t noticed any adverse effects from just keying my IK control bones. Can someone name pros and cons of both approaches?

There are basically two schools of thought about how/when to keyframe.

With the older technique (sometimes referred to as “layering”), you only keyframe the controllers you are animating at a particular point in time and only when keyframes are needed. For example, you start at the root/COG and insert keyframes there on frames 1, 11, 21, then move up the spine and insert keyframes on 5, 16, and so on.

The newer/standard technique these days (which is taught at places such as AnimationMentor) is a pose-to-pose approach, where you consider each pose in its entirety as a single drawing. That is, you firstly go through creating a set of key storytelling poses (blocking pass), where you keyframe every control on every key pose. Then, you perform a few more passes over this adjusting those poses and/or inserting extra keyframes (again on all controls) to flesh out the pose transitions, before finally polishing everything on a control-by-control basis.

This second approach is much better for environments where you need to show work to a director for approval: directors can get a better idea of where you’re taking the shot, and you can retime different parts easier (i.e. simply shuffle all the keyframes on a frame left or right). Also, the benefit of keyframing all controls at once is that you avoid any unwanted surprises should you change the timings on some controls as you’ve captured the entire pose on each frame. The downsides are that: 1) you have more keyframes to sift through when starting polishing; 2) changing the pose on a “static” body part means you now need to propagate the changed pose to adjacent keyframes; 3) if not done right, you can end up with clearly robotic “swing and hold” animation, where you character is clearly just hitting a number of predefined poses one after the other.

Blender supports both of these workflows.

In the early days, it was orientated more towards the first workflow, where you only wanted to minimise the number of keyframes you inserted. In particular, the “Only Needed” keyframing option was added for this very purpose - that is, to help you optimise when keyframes should/needed to be added.

More recently (i.e. during the 2.5 overhaul), the system has been redesigned to optimise more for the pose to pose workflow. For example, the “Summary” channel in the DopeSheet makes it easy to see where what frames the key poses are on, and to retime these. The “Whole Character” Keying Set inserts keyframes for all controllers on a character rig, and can be chosen from the Insert Keyframe (IKEY) menu, just like for Loc/Rot/Scale keyframes (Keying Sets were developed to allow you to choose a bunch of related properties (potentially across different objects) to insert keyframes for at the same time). Finally, to change the pose for some “static” controllers after you’ve already inserted a bunch of keyframes with the old pose, the “Propagate Keys” tool can be used.

Wow, thanks for this thorough explanation! I was already trying to use the pose-to-pose approach and didn’t even know something else existed.

My question, however, is more fundamental: should I include all (an I mean all) bones in my poses or just the IK control bones?

In your second paragraph, you write “[…] you firstly go through creating a set of key storytelling poses (blocking pass), where you keyframe every control on every key pose.” This sounds like even with the pose-to-pose animation method, I’d create snapshots of all IK control bones, but not of all bones per se. Is that correct?

This however would mean that each time I’m finished posing, I have to pick all of my control bones by hand before hitting ‘I’.
But maybe that’s where “keying sets” come in, I’ve come across the term in the Blender menus and am researching it now :slight_smile: