F-Curve work
Focussing on overlap and follow through
By Adam Sale
The purpose of this exercise is to familiarize yourself with overlap and follow through using the function curve tools available to you in XSI. Begin by downloading this sample scene, or dragging and dropping the link in a netview. The scene is made up of an arc, and 4 arm weight contraptions. Each of the arm weights is unique, and will serve a different function for our experimental purposes.
The first two arm objects on the left have flexible skeleton chains running through the arm cylinder, while the two arms on the right each have a single bone to rotate the cylinder. The other obvious differences between these arms are in the weight placement on each cylinder. Two of the arms have heavy weights on the bottom, while the other two have heavy weight on the top.

To practice working on breakdowns, and inbetweening, you'll be placing an arm at the top left apex of the arc, and animate it as gravity takes over and pulls it down. The arm will travel down along the curve and up the other side, before gravity takes over once again and pulls the arm back the other way. You'll block in the movement of the arm sliding back and forth along the arc, until it finally comes to a halt in the middle of the trough of the arc. In these exercises, the top weight will always lie directly on the arc.
Once you've got down the basic movement of the arm as it moves along the arc, you'll then begin animating the bones of the skeleton chain. The weights at the bottom of the chain will all behave differently from one another, but in almost all instances the weights that are hanging down will always overlap their movement with the weight that is moving along the arc.


Don't get caught up in real world Physics or relativity theory when doing these exercises. Do what looks right. This will involve exaggerating the movements of the real life tendencies of these objects. Make their movements larger than life.
Allow for plenty of hang time when an arm reaches the height of its swing
Work on broad sweeping arcs when defining the movements of the secondary parts to these weights.
Exaggerate the overlap and follow through action of each bone to give a sense of weight and balance
Give the flexible arms plenty of snap at the ends where there is a change of direction. Think of the tip of a whip here. When animating a snap action the trick is to determine if the snap is sudden or slow. For a quick snap the tip of the form you're animating should overshoot the previous pose into a higher position. For a slow, lazy change of direction, the tip will hang momentarily , and then fall into a key pose lower than the previous pre-snapped key.

Don't end the animation early. Keep the tip animating for as long as you think it takes to settle. Subtle animation touches are often overlooked when animating. Get used to detail, for it will make the ultimate difference in your work, no matter if you work in features, gaming, series, or Indy animation. Some of these arms may require 500 - 600 frames or more to come to a complete stop.
Attach the arm to the arc.
Make sure you are working in the Animate Module
Select the stiff_heavy_weight arm as a tree by clicking your right mouse button and dragging the cursor over the structure. Attach the arm to the arc by clicking on create>path>set path. In the pop up box that appears, set the values to whatever you'd like. At this time you probably don't have an idea of how long this exercise will last. I set my start and end frames at 1 and 500 just to give myself lots of time to play with. Again, this is just preference on my end. Make sure that there are no check marks in the other two available options. We don't want a linear animation, and we don't want our arm to be tangent to the arc.
Click Ok and select the arc curve.
The Path PPG will pop up. Lock the editor by clicking the PPG's lock icon.
The only thing you need to worry about in this editor is the path percentage slider. To start you'll notice that the icon to the left of the path percentage slider is red. This means that there is a keyframe set on the current frame. In fact you'll notice that if you drag your time slider to the very last frame of the path timing you set, there will also be a key set there.
A path animation is different from a regular posx,posy,posz keyframe in that a path key does not store the position of an object in 3D space i.e. X,Y,Z coordinates. Rather, a path animation stores the position of an object as a percentage of the distance traveled along a path.
Since the arc begins at the top left and ends at the top right of the curve, we can say that the path percentage of the beginning left of the curve is 0 % while the path percentage traveled at the top right end of the curve is 100%.
Block in the primary movement
Using the path percentage slider we can keyframe the various values of the arm as it travels back and forth along the arc until it comes to a rest at a value of 50% in the trough of the arc.
Block in and key the positions of the arm along the arc as it travels back and forth losing energy with every cycle. When you've set the path percentage to your liking on a given frame, click the animation chip to the left of the slider so that it turns red.
Remember that an object falls faster than it rises, and that during the initial stages of the swing, there will be more hang time as the arm changes direction from an upswing to a downswing. This is the most critical stage of your animation. Once you decide to move on from here after tweaking the data, the rest of your animation will be built on the foundations of this primary motion. Focus on achieving a nice weight and pace for your arm. The movement should be fastest, accelerating along the steep sections of the arc, and slowest at the peaks as the momentum of the arms slow out, losing their battle to the pull of gravity.
When you are satisfied with your keying, right click on the animation chip and scroll down the pop up list until you come to the 'animation editor' option. Select this option to enter the animation editor
The Animation Editor
The animation editor is where you'll smooth out the actions of the keyframes you set. This is really the only area of the entire animation package where you can really tweak the fine details of your animations.
Here is where you'll create slow in and slow out, fast in and fast out or any combination of the above. Padding holds, exaggeration of antics, and pose adjustments. After you've adjusted the above, you'll also use the animation editor to smooth out your animation. It's the equivalent of a breakdown, inbetween and clean up stage in a traditional studio.
Zoom, zoom , zoom!
The first thing you'll absolutely need to do in the animation editor is to get up close and extremely personal with your curves. Currently the path animation curve is zoomed out to show the entire animation from start to end. It's a good overall picture of what your arm is doing, but it doesn't give you a big enough picture of the slow ins and slow outs from key to key. Click on the Magnifying glass along the top toolbar of the animation editor. The hotkey is "S" if your cursor is in the editor.
Dragging with the left mouse button allows you to frame the area you want to zoom into.
Dragging horizontally with the right mouse button allows you to scale your view of time. Dragging vertically allows you to scale your view of values. Scaling vertically with the right mouse button allows for you to see the dips and rises of your curves much more easily, and only allowing your editor to expose 10 frames at a time really allows you to tweak your curves.
Editing Key Points
When you get close enough to your liking, select your function curve with the select curve tool and activate your edit key tool by pressing your "E" hotkey while your mouse is over the animation editor. The alternative is to click on the keys pull down menu and select the editkey option. Use the hotkey whenever possible. It definitely speeds up workflow.
Edit key assigns three functions to your mouse.
The LMB allows you to click and drag keys on the function curve and move them around, altering the timing of your action by dragging left and right, or altering the value of a key by dragging up and down.
The MMB puts your cursor into add key mode, which allows you to insert additional keyframes onto the function curve. This is a great tool for adding sharp changes in direction, altering the arc of an action, controlling the amount of overshoot, or making wholesale changes to your piece.
The RMB puts your cursor into delete key mode. When you build your animations up through function curves, you will constantly remove keys, and reinsert them, as you opt for the perfect movement. Near the end of your Blocking and/or tweening stage, you will find yourself with more keyframes than you need to define the animation. Cleaning up animation by removing keys is a great way to smooth out previously jittery actions.
Using the editkey function, adjust the path animation curve. The motion is a sine function with a decaying period (horizontal spacing between curve peaks) and amplitude (vertical spacing between wave trough and crest) The shape of the curve is a dead give away as to how this motion should look. At the peaks and valleys of each curve, give ample time for slow ins and outs, and exaggerate the moving holds. Don't flatten the curves at the extremes, otherwise the arm will stop dead and look unnatural. Give the extremes, nice round slow out and ins to define the stylization of this piece. I'd refine this curve by adding an extra key at the top and bottom of every wave, this way I have independent control over the slopes on the left or right side of a given point.
Handles on Keys.
Softimage function curves have bezier handles on the left and right of each key point for you to further control the look and motion of your animation. They are also a great way to add the slow in and outs to your animation without the overhead of having extra key points inserted into the curve. Dragging a handle away from a keypoint will increase the amount of slow out from that key to the next key. It will however, increase the speed of the fast in to the next key. This can be adjusted however, by adjusting the handle of the next key, to tone down the fast in. Using the two handles allows you full control over the part of the curve that lies between them.
If you find that you can't drag a handle up and down, click on the edit pulldown menu in the editor and choose select all keys. When all keys are highlighted click on the keys pulldown at the top of the editor and make sure that plateau slope is deselected. If you wish to break the handles of each key for individual control you could also click on keys and then select the break handles option.
Now if you hit your "E" hotkey and then drag a handle, you'll see how much more control you have over the curve.
Remember to edit your curves using small units of time, yet be aware of the entire animation as a whole. Maintain consistency with your timing. Zoom out to see the entire curve from time to time. If it helps when dragging your time slider back and forth, you could also adjust the start and end frames of your animation to smaller increments, so scrubbing frames is less sensitive. Maybe allow your time slider to scrub 60 - 80 frames of animation.
Cut and Paste
Selecting a key or series of keys with the select key tool, you can copy the selection using ctrl+C. XSI copies the selection to a buffer. Drag the time slider to set the beginning point where you wish to paste the copied keys. Press ctrl +V. The first key of the selection that you copy will always be pasted according to the current frame you are at. Cutting a series of keys uses the ctrl+X hotkey.
Snap Shots
As you're editing you'll reach a point where you really like how your animation looks, but you want to try something a little more extreme, or explore another possibility for a tween. You can take a snapshot of your curve and store it while you explore other options. If you decide you don't like the new changes, you can always swap the curve back to the motion you liked. The snap and swap functions are found in the animation editor under the edit pulldown. The two commands you'll want to access are snapshot and swap with snapshot. I would recommend setting up a hotkey for these functions. These commands are also found on your editors toolbar. When you're satisfied with the overall movement of your arm, click a final snapshot of the curve.
Keys on Frames
When editing in the function curve editor, you'll frequently add keys between frames. For example, when inserting a key, you might place it on frame 23.567. After an edit session, I usually place all of my keys on whole frame numbers. You can do this by selecting the curve hitting your 'T' hotkey and selecting all of the keys. Make sure that your slopes are set to automatic slopes. Next click on the edit pulldown and choose move keys to nearest frame before using this function, otherwise the entire curve tends to go linear when you set the keys to lie on whole frames. As a last resort, you can also select a key, and manually enter the values up along the top of the editor. The frame and value input boxes allow you the ultimate control over your keys parameters. Activating snap to frames is another tool you can use, so that when you edit, your keys automatically snap to whole numbers. Snap to frames can be found under the edit pull down.
Animating the bones
You should have a great reference with which to begin keying the animation of the bone system. I prefer to set a key for the bones local rotz at the first frame, and set another key for the last frame, generating a function curve that I can then go in and use the edit key 'E' tool to add in the overlapping action. I find this way to be much quicker than posing and keying the bone. If you have interactive update turned on from the edit pull down, you'll find the experience of animating that much more pleasant. For this exercise you really only need to worry about the rotz of the bone.
To begin, the bone should be pointing straight down as it is not in motion yet, and gravity pulls all objects down. When the arm is released and begins its journey down along the path, the bone will drop straight down with the arm until it has moved to the right enough that it forces the bone to drag along behind. From here on, the heavy weight will always trail behind the action of the light weight as it travels along the arc.
As the light weight reaches the top of the arc on either side, it will slow out and change direction, allowing the bone to catch up to the weights position and travel up past it as the light weight begins to fall back down along the arc.
When the light weight has fallen downwards and to the left enough, it will cause the heavy_weight to snap as it changes direction to follow its primary action once again. During these change of directions, you'll want to exaggerate the overlap in actions sufficiently to sell the idea that there is a real heavy weight at the base of the arm. The dangling weight should never lead the action.
The analogy in a production animation, would be a CB antennae on the hood of a car. The car is the primary action, and the antennae moves solely based on the animation of the car. The antennae would never start moving unless the car did so first. Or think of a character waving a flag. The flag pole waving back and forth in the air would be a piece of secondary action that is solely based on the movement of the characters arms swaying back and forth.
As a general rule, keep the secondary or overlapping action pointing or flexed back in the direction the primary motivating object came from. Think line of action here.
Draw that line of action onto your screen with a dry erase pen if you have to.
The speed of your object will determine the amount of overlap in the secondary object.
A trick I would use to get a rough block of an overlapping action is to drag the time slider, letting the primary object begin to move in the opposite direction after slowing out at the top of the arc. Allow a few frames to pass as the primary object begins on its new trajectory (path of action) Once you've settled on a suitable frame, rotate the bone to point in the direction from which the primary object started its new course. In the example I'm writing about, you would rotate the bone to point up in the air, as this is where the light _weight just came from.
Key the rotation of the bone, or insert a key on the f-curve to set a key in place. If you play back the animation from the beginning, you'll see that you've created an overlapping action between the primary and secondary objects. You'll have to adjust your keys to set more or less of an overlap.
Keep on blocking in the rest of the overlap using the above method. Basically each of the keys you set at this stage will always be 4 or 5 frames ahead of the keys set for the movement of the arm along the arc. Near the end of the animation when the arm is hardly moving, and settling into a hold, the overlap may only be a frame or 2.
Play your animation over and over to get a feel for the areas that need the most improvement.
When animating the arms with multiple bones, the above principles remain the same. Each successive bone is overlapped a few frames from the bone above it. The bone at the tip of the arm will have the fastest whipping motion of any of the bones as it changes direction at the apex of the arc.
On a whip this snapping motion is what generates the snapping sound as the whip is cracked. On each successive downswing the bones will overlap the primary action less and less as the form loses energy.
Practice this animation assignment with each of the four arms; they will all behave differently. Even though this is a simple exercise see the arm as a man throwing a bowling ball, or a trapeze artist swinging back and forth. Or see the stiff arm as the antennae on a character.
Sometimes simplifying your work a little, helps you notice larger, more important issues.
Animation Practice was written by Adam Sale. Adam is a Technical Director at Joncrow Entertainment as well as a fully certified Softimage Instructor who teaches at various institutions throughout Vancouver, BC. He can be reached at adam@joncrow.com