CPSC 441 – Computer Graphics

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]