EECS 487, Fall 2006


Project 4:Animation

animated GIF

Overview


In this project you will implement parts of an animation system and use it to create several animations. First you will create a simple procedural animation of a bouncing ball (with squash and stretch) or an object moving along a spiral path (with slow in and out). Then you will implement two types of splines (interpolating and approximating) and use them for key frame animation. You will complete the provided interface for animating an articulated figure by posing it to match frames in a short movie clip. This permits a kind of "motion capture" (also known as rotoscoping), where you could act out a short motion sequence in your living room, record it with a digital camera in movie mode, and load it into the system to animate "blobby man" (the articulated figure we provide for you) with your own skillful dance moves.

Support Code

Copy the project support code to your local machine.  (On windows, you can execute the following commands using cygwin, which we recommend):
  % scp -r red.engin.umich.edu:/afs/engin.umich.edu/class/perm/eecs487/proj4 .

(Note the 'dot' at the end of line.) The above command overwrites all proj4 files, including any files that you may have made changes to. To copy 'old' versions of files while leaving the new untouched (sync-ing operation):
  % rsync -avz red.engin.umich.edu:/afs/engin.umich.edu/class/perm/eecs487/proj4 .

(Do this from the parent directory containing the proj4 subdirectory.)

Windows users can use set up an sftp session to red.engin.umich.edu and grab the files from the above path or, on (CAEN) machines with AFS mount, copy the files from:

    K:\perm\eecs487\proj4

Note: the above path depends on how CAEN space is mounted on your PC. See the project 4 README file if you need help mapping a network drive to connect to the course directory.

After you compile the program, run it with the -p option, which runs the example procedural animations mentioned below. You should also use the key command 'H' to see a list of all the key commands. Then check p4.C for more details about important key commands you will need for this project.

One key command lets you switch between the "animate pen" used in this project and the "sketch pen" used in the last project. You can copy over your project 3 code (replace our sketch_pen.C), and so be able to sketch scenes with your sketch functionality, then animate them with the project 4 functionality. The "blobby man" articulated figure defined in blobby_man.C is implemented using the same hierarchy of nested transforms used in project 3 (via the NODE class). Actually, there is a difference: in project 4 we're using a subclass of NODE named LINK (see below). This is just a NODE with some extra data that lets you animate the node's transform over time. You can update your sketch code by simply changing a line in SketchPen::create_node(). Change:

   NODEptr node = new NODE(new LMESH, name);

to:

   NODEptr node = new LINK(new LMESH, name);


Project Components

Procedural animation:   30 points
Spline implementation:     25 points
Keyframe animation:    25 points
Render an animation:    15 points
Write-up:     5 points

Handing in

Turn in your proj4 directory, including:
  • all your project 4 source files
  • a subdirectory, 'images', containing images you created (e.g. anything you posted on the phorum)
  • no model files or binary files please!
  • a brief write-up in text format that discusses:
    1. anything about your implementation that is noteworthy, and
    2. feedback on this assignment, including suggestions for how it should be changed next time.
Name your file writeup-<uniqname>.txt . Example: writeup-rmanoj.txt

Copy your files to the following directory on IFS:
            /afs/umich.edu/class/eecs487/f06/submit/<uniqname>/p4/

This path is accessible from any machine you've logged into using your ITCS (umich.edu) password. Report problems to ITCS.
  • The timestamp on your key files (source files and your writeup) will indicate the time of submission and if this is past the deadline your submission will be considered late. Therefore, you are allowed multiple 'submissions' as long as you respect the deadline.
  • Test the compilation: Your submission must compile without errors and warnings (except those from external libraries like OpenGL, JOT etc.) on CAEN Linux or Windows machines. Mention the platform in your writeup. Code that doesn't compile will be heavily penalized. (There is no need to compile on IFS; we will do the grading using the CAEN setup.)
Multiple submissions:
  • You are allowed to overwrite your files in the above directory as many times as you want.
  • If the timestamp on these files is past the deadline your submission will be considered late.
  • Test this submission procedure and please let the GSI know well in advance if you encounter and problems.
Due date

The project is due on November 29, 2006, by 11:59pm. We are not  offering an early bonus this time, because Thanksgiving break is just before the due date.


Last updated: November 23, 2006.