Assignment 5
Due: 5/1/2008
This assignment consists of two parts.
Part I: [75 points]
Motion data capture
Students will work
as a group and each group can have three or four students. Before the next
Monday (April 15), each group should send an email to the TA about group
members.
You need to capture a
set of full-body motion data using the 12-camera vicon motion capture system
installed in our mocap lab (HRBB room505.
Grading:
1. [30 points] Use
your imagination and act out your own motion! Walking, running, jumping,..., etc. For each group of action, you need to demonstrate
different styles such as speeds, step sizes, directions, etc.
2. [25 points] Reconstruct
the captured data and save them as .c3d files.
3. [10 points] Convert
.c3d files to .amc file and .asf files. You need to submit both .asf and .amc
files.
4. You might earn extra
points if you can capture and create some cool animations.
Part II: [125
points] Keyframe interpolation for human-body animation
Based on the
skeleton code, you need to write a program that does the following:
1. Allow the user to select several frames in
one AMC file as keyframes or key poses. Note that you need to specify both key
poses and key times.
2. Display all key poses.
3. Implement
the Catmull-Rom algorithm to interpolate poses for in-between frames.
4. Display
the interpolated motion. You can compare interpolated motion with the original
.amc file.
5. Write
a ReadMe file. The ReadMe file should describe how to specify key frames and
how to play the interpolated animation
To help you finish
your homework, we provide you skeleton code:
http://people.cs.tamu.edu/jianyuan/asf_amc_viewer%201-18-2005.zip
The program uses
OpenGL library to visualize motion capture data (.asf and .amc files). It also
uses the FLTK library (http://www.fltk.org/
) for interface proramming.
The sample test
motion files are put in the “Test Data” sub directory. You can download more
mocap data from the CMU online mocap database: http://mocap.cs.cmu.edu/motcat.php
The “instruction.txt” shows you how to compile the code
with Microsoft visual studio. The Class “Explain.doc” shows an overview of
every C++ class.
To know more details of the code, read the comments in
the code.
Note that:
1. The function “void Display::show()” draws a character pose based on the input joint
angle values. The traverse function draws the character pose in a tree
structure.
2. You can put your interpolation routine in the
function: void interpolate_callback(Fl_Button *button,
void *).
3. The function “int Motion::readAMCfile(char*
name, float scale)” reads an input .amc file. A scale factor is used for
scaling the translation data. The default scale factor is 0.6. See the code
line: #define MOCAP_SCALE 0.06
Grading:
1: key frame
selection [10 points]
2. key frame display [5 points]
3. key-frame
interpolation correct [100 points]
4. interpolated animation display [10 points]