Assignment 1: Motion Editing
Release Date: Tuesday, September 1, 2009
Due Date: Tuesday, September 15, 2009, 11:59pm
Grade Value: 15%


Timing of a motion is one of the most important elements in animation. It affects both physical and emotional meaning of the movement. Timing can give the illusion of weight and size of an object, as well as the emotional state of a character. For example, if a character pushes forward a heavy object, he should do it much slower than pushing a light object. Animators must figure out a good timing for the anticipation of an action, the action itself, and the reaction to the action.

Walking is an interesting motion; no two people in the world walk the same. By watching a person's walk, you can interpret a massive amount of information right away. Is he old or young? Is he happy or sad? What is his financial position?

In this assignment, your goal is to make a basic walk cycle animation more expressive in two different ways:
1. Using the Motion Capture code base
2. Using Maya

You need to think about how to add characteristics or emotions to the character by editing its motion. At the same time, it is very important to familiarize yourself with ASF/AMC files as well as the viewer code base for next project.


Implementation :

1. Motion Capture Code Base:

Use this ASF file as the skeleton file.
Use this AMC file as the motion file.
You can explore and pick your own from the database, but you are required to submit at least one video using this basic walk cycle.
Load .asf/.amc files into your program and try to manipulate the timing and the movement of the character.

You can think about the following questions:

You can choose your best way to edit the motion:

Compiling the code:

If you want to use the amc viewer code as your starter code, you can get it from:
To compile, you may also need to download ftjam:
Extract it and put it in your project's top-level directory.
Type "./jam" to compile the code.
Here's also description about ftjam:

Running the code:

Make sure there is a "Skeleton.ASF" file with the AMC file in the "dist/data" directory. Or you can specify where to load them.
A simple camera control is provided. Use the left mouse button to rotate, middle mouse button to zoom in/out, and the right mouse button to pan the camera.
Space bar can be used to Play/Play in slow motion/Pause. Tab key can be used to toggle the camera movement.

Using the code:

Motion Capture File Format:

The code base will read and display motion-captured data for you, but understanding the file format (.asf and .amc) is still very useful. The world coordinate system is Y up. The skeleton file (.asf) describes how the bones are connected, their degrees of freedom, their local coordinate system, etc. while the motion file (.amc) describes each bone's rotation angles relative to the bone's local coordinate system at each time step.

In an ASF file, each bone is described as following:

The parent-child relationship of the skeleton is defined in the ":hierarchy" section of the ASF file. Each line lists the parent, and then its children. For example:
"root lhipjoint rhipjoint lowerback"
Root is a parent and lhipjoint, rhipjoint, lowerback are root's children.
The following picture shows the skeleton hierarchy defined in ASF file.

Video Recording:

Videos can be implemented in several ways. You can use the frame dumper (FrameDumper.hpp, FrameDumper.cpp in "Graphics" directory) in the code base by adding a hotkey to your program. These frames can be coalesced into a movie using software packages (ImageMagick and ffmpeg on Linux, Quicktime Pro on Mac, and VirtualDub on Windows). You can also use screen capture programs to record your videos.

2. Maya:

We will give you a rigged character with a basic walk cycle. You need to figure out how to make the motion more expressive by changing the key frames of the animation. You can work on changing the timing of it or just tweak the motion of the character. We will also provide you an animation guide which you can refer to.

You can download the .mb file here to start.

Before you open the file, please set Maya to Z-up. (Window->Settings/Preferences->Preferences->Settings, set the up axis to z.)

If you are not familiar enough with Maya, here is a basic tutorial. You can also click "Help"->"Maya Help" to get a thorough documentation.


This project will be graded on the visual output of your animation, your report slides/website, as well as your presentation if you are selected to demo your project. You want to spend appropriate amount of time adjusting your animation to get a good result.


  • You might want to observe how people walk by watching them. You can also pay attention to how your own body moves while you are walking.
  • There are 4 important areas you might want to tweak first: the arms, the hip sway, the knees and the feet.

    Last Modified: 08/30/09