Frames & Key frames

Animation in a 3d space is not unlike 2d animation. The basic approach is that the animator will designate "key frames" that will be interpolated between. Unlike 2d animation you don't have to draw in-between frames that fill in the gaps between these keyframes. 3D software will handle the animation between key frames for you.

A Keyframe is a user-designated frame the computer will automatically interpolate between.

Animation in a 3d space is not unlike 2d animation. The basic approach is that the animator will designate "key frames" that will be interpolated between. Unlike 2d animation you don't have to draw in-between frames that fill in the gaps between these keyframes. 3D software will handle the animation between key frames for you.

This is one of those concepts that is complex enough to warrant a video link. This is 3DS Max specific but just try to concentrate on the idea of moving an object to a position, recording that position, and realizing that the program will move the object for you between those two positions.

Hierarchical animation

The same principles that were described in the "Organizing objects (Parents & Children)" are the basis for most complex animation. If an animation is anything more than a simple ball bouncing down stairs then chances are you'll be using a list of objects that are separate from one another but which need to move in coordination.

After all an animated character is rarely one "Thing". An everyday person is a body, with clothing, probably with exposed head and hands, hair, maybe a hat. All of these are separate but must move together. This is often achieved by arranging these different pieces in just the right order within a hierarchy.

This is especially important to understand when you apply skeletons to deformable models where a "skin" can be moved and changed. That will be discussed in the next section.

For now we'll look at simple hierarchical animation of "whole" objects. I don't think there's a better way to explain animation of objects within a hierarchy than to use robots. And why would you want there to be?

Imagine a chain made of links. Each one is attached to the next. Pull on one end enough and the others will re-arranged themselves as needed as long as there is slack.

Now what if, instead of a single chain, we split the chain at some point so that there are *two* end points. You now essentially have an arm with two "fingers" at the end.

Below we have a robotic arm. Imagine the base of the robot attached to the floor is the first link in our chain, which has links in the form of arm pieces, but which splits at the end so that it can have two "fingers" that grip whatever we want (you can press play to see it in action).

In this case when we rotate the base all of the arm rotates with it. When we rotate the arm closest to the floor the two arms pieces and the wrist area above it move. When we rotate the middle arm piece the last arm piece and wrist moves. And so on, and so on. By keyframing each piece carefully we create the animation of the whole model.

Now this structure can be animated to create movement directly but this specific model has been made using a particular technique. It uses null objects (dummies) to hold visible meshes. In this setup we don't animate the visible meshes directly but simply animate the null objects that contain them.

Keep in mind this technique is not required, but works for times when you don't want to use, or don't want to learn how to use, proper controllers and rigging objects.

Take a look at the hierarchy in the object browser of the actual program used to make the arm. Each "null" object (which are all placed between the two lines of dashes just for the sake of clarity) has children that lead below it to the actual parts of that part of the arm.

With this setup we can create fairly complex looking machines and characters. We only need to increase the complexity of the hierarchy tree itself. For instance notice that the "fingers" of the robot show how you can "branch" the object chain to make multiple paths within the hierarchy tree. This is similar to the way you might build "skeletons" for more complex beings.

Motion control

One concept that is important to understand no matter what type of animation you'll be using is how frames are interpolated. The motion that objects take on is not always an evenly spaced average of the positions of the keyframes.

There are several terms which describe the qualities of a motion. Keep in mind that thees terms can actually apply to several stages of a single interpolation however. For instance you can have a motion that "eases in" or a motion that "eases out", or a motion that "eases int" to a "linear" velocity. Let's look at each in more depth.

  • Linear motion describes a motion in which there is no change of speed between two key frames. For instance imagine a ten frame animation with a property (it could be a coordinate, a scale, whatever) that has a value of 50 at frame 0 and a value of 70 at frame 10. Frame 1 will see that value change to 52, frame 2 will see it at 54, and so on and so on.
  • "Easing" is a catch all term that describes a change in speed over a given time. It typically is described in terms of going "in" or "out" meaning it starts either slow or fast and has slowed or increased in speed by the end of that time.

Helpful Concepts

There are one or two techniques or tools that will help with almost any animation no matter the subject, style, or program used.

T-Pose / Zero Pose

One thing that is always recommended when working with models that use skeletal animation is to model your subject in a "T" or "Zero" pose. This relaxed, neutral pose should position all of the features and limbs in an "average" position that exists between the furthest extent of their movement range. For instance in a human character you will have the arms move from between a position down next to the body and up in the air as if they were reaching for something. Because of that range of movement it is best to model the character, from the beginning, as if their arms were slightly up and away from their body.

If done correctly then this will result in minimal distortion of the mesh and the texture applied to the model when you create actual animations for it.

In fact you not only want to create your models in these neutral poses, but will want to create keyframes for them (and every bone in a skeleton they might have), somewhere at the beginning of the animation.

Think about it.

If you animate a complex human character for instance, if you don't save the "default" position that you first made the character in, then how will you modify it later after you've animated it? If the model and animation are in one single file then you'll always want to be able to fall back to that default position. This is why it can be best to choose a frame (frame "0" for instance"), select all the objects in the scene to be animated (including bones of a skeleton), and add a keyframe at frame 0 for each of their default positions while modeled. That way you have something to always go back to.

You can get around this necessity by not creating the subject in the same file that it is animated in. Most software packages that allow you to use "reference" files allow you to apply animations to a referenced model that do not affect the original file that contains the "t-posed" model.

Onion Skin / Ghosting

If you've used a traditional 2D animation software of any kind, such as Adobe Flash, Krita, or Aseprite then you might be familiar with the concept of "Onion Skinning". This is where transparent (or outlined) versions of your animated model appear on screen to show where that model is in previous or future frames on your timeline.

Not all 3D software supports this feature. But it can be very useful when it is.

For instance in 3D Studio Max you can activate "Views > Show Ghosting" to turn on the latent ghost images. See an example of what this looks like in the video below.