Character Animation Using Keyframe Filters
A tutorial for Animation:Master

by Ed Lynch





Intro

I’m going to describe a method I use to animate, specifically focussing on blocking out your shots quickly. It’s a method I use for getting quick feedback from the director so that a lot of valuable time isn’t wasted on work that may not be approved. While this tutorial is geared towards animating in Hash’s Animation:Master (current version 8.0), the technique should be relevant to a number of different software packages. Although I use terms that are software specific, they’re not so cryptic that they can’t be easily assimilated to other packages’ terminology.

Animation is a time consuming process. Like any handcrafted art, it takes time and practice to create a quality character performance. With animation, it takes 10% of the time to do 90% of the work and the final 10% of the work takes 90% of the time. I’m not going to try to teach you all of the nuances of acting and the principals of animation – there are quite a few great references already available – but rather the mechanics of setting up your shot quickly, at least the first 90%.
 
 

Setup

Okay, the first step after you’ve set up your constraints is make sure that none of your constraints have offset channels, unless you’ve specifically set up your constraints with offsets (i.e. – torso ‘translate’ constrained to the pelvis with a y-offset to isolate the abdomen/torso from the pelvis). I use a variation of the standard Thom IK setup (see animtut.prj). The next thing you want to do is select each of your constraints and choose "lock offsets" in the constraint’s properties box. This will ensure that your character remains fixed to the constraint controls you’ve set up and will always behave like you want it to – even if you inadvertently add a keyframe.

Caveat: If your constraint system relies on computing offsets ‘on the fly,’ you will not want to lock offsets and you may want to use ‘key constraints’ as well. Personally, I don’t use a setup that behaves like this because of unpredictable behavior when making a keyframe using ‘key constraints,’ especially with kinematic constraints. Your mileage may vary so make sure you experiment using your setup.
 
 

Keyframe filters

Next, you’ll want to get to know your key modes buttons at the bottom left of the screen. They’re pretty well documented in the v8 manual (pp 328-341) and on-line help. These guys will become your best friends, but is the area where you will probably make the most mistakes at first. Get to know their functions before moving on.

hint: Save often. Until you get a handle on these key filters, you may find yourself keying things you don’t want and deleting keys you do want. As a general rule, save every time you do something that you don’t want to do again.

When animating a character’s skeletal actions, I turn on only the ‘key skeletal translation’ and ‘key skeletal rotation’ buttons, along with the ‘key model button.’ Why only those? Primarily because they’re the only things we’re changing over time. If your animation involves disproportionately scaling bones, you will also want to use the ‘key skeletal scaling’ mode. Otherwise, using that filter could add redundant 100% scale channels all over the place and generally make things messy, not to mention slow down your workflow.
 
 

Animation

Then I set up my initial pose on frame 0. I then go to frame 10, hit the ‘make keyframe’ button (when asked, only channels that pre-exist) and set up my next pose, frame 20, make keyframe, new pose, etc. until I’ve got the action that was in my head roughed into the computer. [Another technique is to create your first and last pose, then start filling in the middle.] If you tried to watch your animation now, it would be a very floaty mess, most likely not the animation you saw running through your head.

What you have to do now is hit the ‘Edit all filtered channels’ button. Assuming you still have the ‘key skel rot’ and ‘key skel trans’ buttons depressed along with the ‘key model’ button, you should see a channel window with a list of bones on the left and a bunch of f-curves on the right. Select all of those CPs that make up the curves and hit ‘hold’ in the properties window (under interpolation).

If you watch your animation now, you will see held keys without any ‘tweening. At this point, you can set the timing of your piece by sliding all of these keyframes around together. You can do this by selecting a vertical row of keyframes from the project workspace (PW) and sliding them left and/or right (recommended for beginners) or select rows of keys in the channels window and slide them left and right. That solution is far more tricky because you don’t want to move them up and down – that would change the values that make up your poses – so after selecting them, you’re encouraged to either hold down the "1" key to constrain them to move only horizontally, move them with the left and right arrow keys, or change the keyframe number in the properties window.

Tip: you can also scale groups of keyframes over time by selecting more than one vertical row of keys in the PW and dragging the scale handles that are automatically created. A:M will scale them proportionately (i.e. – it will not automatically drop keys on whole frame numbers, but rather will land keys inbetween frames). This makes the keyframes difficult to select in the PW. You can’t click on a key to select it but you can select it by dragging a selection box around it. At the time of this writing, there is no way to scale keys so that they automatically land on whole frame numbers. A quick way to change multiple keyframes to whole numbers at once is to goto "Edit:Move Frames," leave the Offset = 0 and Scale = 100 and check "Snap Frames to Integers." Another option is to select a vertical row in the ‘edit all filtered channels’ window and round the keyframe number to the nearest whole number in the properties window.

Once you have your timing where you want it (and you may have discovered that you had to add additional keyframes) you can go back into the ‘edit all filtered channels’ window, select them all and change them back to ‘default’ interpolation. [hint – for a walk cycle, you may want to change the first and last keyframes to ‘0-slope’ to smooth out the transition in the loop]

So now it’s closer to what you had in your head but still floaty – some of those held keys really worked well. No problem. Now, go to a keyframe that looked better held and copy it. Go to a frame that’s somewhere before the next keyframe and paste it. Copy and paste work only on the keyframe channels you have selected (or filtered). Then you can adjust the timing again using the ‘edit all filtered channels’ option.

A similar method was best described by Steph Greenberg:



I'm going to describe something called a cushioned hold (sometimes just cushion):

The fast way to get in the ballpark is to make the extreme first, at the very end of the move (or the start of the move to the next pose, IOW). Then you go somewhere between the first extreme and the new one, generally between 3/4 of the way and all the way to the new extreme, set that pose as a new keyframe and move it to where the move between the first key and the second key is supposed to occur.

So say you have a key at frame 1 and it's supposed to move to a new pose at frame 7. Then it's supposed to hold until frame 17. You set your key at frame 1, then the extreme for the next post at frame 17. Go to frame 13, set a key and move it to frame 7. You'll get a moving hold.

This doesn't work for all pose transitions, and you may have to take a key closer to frame 17, and you should expect to modify some of all of it, but in many cases you might not have to modify it at all. If you want really good results, you will end up not having everything in a pose happening on the same frame. You want the character to look alive, not like it's interpolating.

Some styles, in particular a Disney style and probably others depending on who's directing and supervising, call for more deliberate keys, where you want something to look a specific way in every frame. In these styles, there are no happy accidents and every frame counts. In those cases, you're forced to know what you want and what you're doing and any shortcuts you take are merely a mechanism for getting things near to where you'll have to be to get the desired results.

-- Steph Greenberg


At this point, your animation is officially roughed out and ready for a director’s review. If he or she likes it, great – but you’re "only" 90% of the way there (at most). If it’s not approved, that’s okay too. At least you didn’t spend too much time on it and the changes can be made again rather quickly.

So what now? Now you have to take that roughed out performance and make it convincing. (Oh! Is that all?!) To oversimplify, that task primarily involves moving existing keyframes, adding new ones, and changing the bias of the ‘tweens (the spline interpolation between keyframes). There are a million ways to do that, but hopefully this tutorial got you thinking in different ways in terms of how to manage keyframes with the key filtering tools in Animation:Master.

-- Ed

-----

Recommended reading:

The Illusion of Life: Disney Animation
Frank Thomas & Ollie Johnston
Hyperion
ISBN 0-7868-6070-7

Digital Character Animation
George Maestri
New Riders
ISBN 1-56205-559-3

Character Animation in Depth
Doug Kelly
Coriolis
ISBN 1-56604-771-4

Animate with A:M, The Easy Way!
Alain Desrochers
Tutorial available on-line at:
 http://www.hash.com/users/alweb/tutu.htm
 

Special thanks:
Steph Greenberg, Ken Williams, Armando Afre, Thom Falter