Recent Changes - Search:

Advanced Graphics 2009

All Pages
All Changes

Login

Geil / P2Writeup

Project 2 Write-up

Parser Limitations

Our parser can load in .bvh files with their structure first and then zxy Euler angles in rows. Root nodes have 6 channels, and child bones have 3 ZXY euler angles.

Files that don't follow this, like fightReady2.bvh, jitter out of control when loaded, but do not crash.

We can handle any skeleton configuration that we have tested, but the files that we cant load the angles of will look wrong, because their bones are at weird angles.

We do not handle constraints at the end of the frame section.

There is definitely a bug expressed when we load certain very large files. We intend to start correcting this by improving the robustness of our interpretation of the order of the channels.

Basic Requirements

(blending and concatenation), describe the variant the you've implemented (how you do alignment, what kinds of transitions, ...)

  • loads bvh
  • animates a skeleton
  • Scrubs through motions
  • Play motions at a given rate, can skip frames if necessary
  • Pause
  • Uses an arcball type camera
  • Show ground plane texture
  • blending - uses slerp, aligns with previous root
  • concatenation - uses blend transition(slerp) or cut, aligns with previous root rather than floor.

Bonus Features

A list of all of the bonus features that you've implemented.

  • Uses quaternions, with slight problem in slerp rotations
  • Loads obj files for bones.
  • Hack Drop Shadows
  • Hack Reflections
  • Can cut and save clips, but not back out to disk

A list of any outside code that you used (libraries, ...), and any resources you consulted (web pages, etc) for figuring the project out. (I'm curious what's useful)

  • Texture loader was outsourced
  • All windowing was done via the Windows API
  • Flex and Bison were used to generate a scanner and parser for .obj and .bvh files

A description of how to use your program. Describe the basic interface, and how to access the features. In particular, be sure to describe how you specify what blends/concatenations to do.

Picture of the UI:

What each component does:

  • Animation Speed (Slider) - controls the playback speed of the animation. Left side is 0 fps, right side is 60 fps.
  • Load BVH File (Button) - opens up a window to search for a bvh file to load in.
  • Combo box to the right of "Load BVH File" - a list of all currently loaded motions
  • Add New Actor (Button) - adds a new actor to the scene. Each actor is separately drawn and has its own sequence of motions to follow.
  • Combo box to the right of "Add New Actor" - a list of all actors. Select an actor to make that actor the current actor to apply motions to it.
  • Append Motion (Button) - brings up the transition window to append the currently selected motion to the currently selected actor
    Transition Window:
    - Cut Mode - makes this transition a cut transition, i.e. the next motion plays immediately following the current
    - Blend Mode - makes this transition a blend transition, i.e. the current motion and next motion are blended together for a specified number of frames
    - Blend Method - the blend method used for the transition.  Currently only "Linear" is supported.
    - Blend Frames - how many frames from each motion to blend together
  • Now Playing: - displays the index, frame number, and name of the animation currently playing
  • Frame Mode - when selected, this makes the above slider control the current frame the currently selected actor/motion is on
  • Motion Select Mode - when selected, this makes the above slider able to select one motion out of the current actor's list to add a new motion after the selected motion.
  • Selection Mode - when selected along with Frame Mode, the above slider can be moved to select a range in the current motion for cutting. Currently only works if "Draw Current Motion" is also selected
  • Draw Current Motion - draws the currently selected motion instead of all actors. Use with Selection Mode to select a range in the current motion for cutting.
  • Cut Selection To - only works if Selection Mode is on. Cuts the selected range to a new motion whose name is specified in the text field to the right.
  • Blend Motions - brings up the blend window, to blend two motions together.
    Blend Window:
    - Combo Boxes - select the two motions to blend
    - Blend Method - select the blend method to use.  Currently only "Constant" is supported.
    - Blend Weight - specifies the weight to give to the first motion in a constant blend.  For example, 0.25 means 1/4 of motion 1 is taken and 3/4 of motion 2
    - Name of new motion - specifies the name to be given to this new motion
  • Draw Plane - toggles drawing of the ground plane
  • Wireframe Mode - toggles wireframe and model mode
  • Animate All - toggles animation of all actors or just current actor
  • Animate Current - toggles animation of current actor or motion
  • FPS - fps :)

To get an actor to the screen, one must load in at least one BVH file and add at least one actor. This is done by clicking "Load BVH File", loading in a file, and then clicking "Add New Actor". To see a motion, either "Draw Current Motion" must be selected or a motion must be added to the actor. To add a motion to the actor, select a motion from the top combo box and an actor from the bottom combo box, and then click "Append Motion" and follow the transition window instructions above.

Screenshots. In particular, if you can show off examples of where blending/concatenation works, that would be particularly good. (its hard to show in a static image).

It's hard to show anything with screenshots so here's a few videos:

  • Playing an animation:

http://pages.cs.wisc.edu/~geil/Monkey%20Boy.wmv

  • Blend of "Frightened Run" and no rotation of 50% compared to full "Frightened Run" motion:

http://pages.cs.wisc.edu/~geil/Running.wmv

Download the project here: http://pages.cs.wisc.edu/~geil/MoCap.rar

Other Groups Impression

  • Eric, Blayne - GroupEricBlayneBlog

Needs to get quaternions working still, but from what I saw it looks ok even without them.

  • Yoh, Brandon, Finn - GroupYohBrandonFinnBlog

That limb size control looks cool. We have ours #defined, we will need to get it on a slide bar.

  • Betsy, Yang, Mik - GroupBetsyYangMikBlog

That smiley face creeps me out. But your seemed to be able to handle anything that was thrown at it. Very cool.

  • Dan, John, Adrian - GroupDanJohnAdrianBlog

Very cool and impressive. Oh wait, this is us.

  • Jeff, Will, Ryan - GroupJeffWillRyanBlog

I cant remember if this one was the one that was going slow. Looks cool, but add more ability to speed it up.

  • Cory, Alex, Tom - GroupCoryAlexTomBlog

If I remember correctly, they had quaternions working and used one of the same references that we did. But their slerp does not get artifacts. Perhaps we should double check that page.

History - Print - Recent Changes - Search
Page last modified on April 21, 2009, at 01:45 AM