Project 1 .: Motion Capture Display and Editing :.

By: Chris Mizerak and Jared Sohn

BVH Motion Viewer & Editor
click to enlarge

Description:
This application reads in BVH (a standard skeletal animation data file format) files and displays the data. It is usually a skeleton composed of an arbitrary number of connected joints. Then motion is applied to the skeleton by a vector of joint angles over an elapsed time. Our application allows the user to playback and scrub through the animation. They can also edit the motion by means of a motion path, adjusting various controls such as position, scale, and rotate. For better visualization of the motion, the user can also choose between two cameras and toggle between different skeleton draw methods.
Using The Program:
  • Manipulate Free Camera - Left Mouse/Middle Mouse
  • Zoom In/Out Follow Camera - MiddleMouse (only after motion path attatched)
  • Toggle Skeleton Rendering - Click Draw Lines Menu
  • Selecting Skeletons - Click the "Select" menu and choose the skeleton you want to select
  • Attach Motion Path - Click "Attatch Motion Path" button (attatches path to selected skeleton
  • Motion Path Editing - Drag the yellow control points around with the Left Mouse (make sure the "Show Motion Path" button is active
  • Motion Path Scaling - Click the "Select Position" menu and choose "Select Scale" Then drag the red,green,blue knobs to scale in the respective direction. Drag the purple knob to scale the entire skeleton.
  • Motion Path Rotating - Click the "Select Position" menu and choose "Select Scale" Then drag the red,green,blue knobs to scale in the respective direction.
  • Strobe Effects - Strobe Length = how many skeleton trails will be drawn in succession, Strobe Step = the frame interval between skeleton trails
Basic Features:
  • Reads in all BVH files (works on all BVH files that were made available to us)
  • Displays skeletal data as ellipsoids, lines, & points
  • Has camera user interface
  • Implements basic path editing with correct orientation

    click to enlarge

  • Saves original BVH file loaded into scene
Advanced Features:
  • Reads in all BVH files correctly, regardless of angle order
  • Loads/Saves single files containing multiple skeletons
  • Ability to load arbitrary number of skeletons into the scene
  • Dynamic selection menu builds as user adds skeletons into the scene allowing him/her to select each skeletons separately and apply a unique motion path to each skeleton
  • Motion Path include widgets for scaling and rotating about the XYZ axis at each control point (which is then interpolated throughout the path)

    click to enlarge --> click to enlarge

    click to enlarge -->

  • Skeletons are adjusted so that the feet never go beneath the floor (all joints are converted to world coordinates)
  • Tracking camera follows motion smoothly, allowing the user to zoom in/out
  • Interactive strobe length and strobe interval effects for better visualization

    click to enlarge     click to enlarge
  • Visual Effects: bounding box, stenciled reflections, shadows, textured groundplane, follow spotlight
Known Issues:
  • Does not correctly save BVH files after motion path is applied
    REASON: we handle channels based on their name and not the order we read them in. Our plan was to add 2 new channels to the skeleton including our path scale and rotate widgets, but we ran out of time.
  • Path Orientation will not always be correct (eg: skeletons cannot move backwards, they always follow the path)
  • The last two frames of the animation don't get orientated to the path (one of those file merging, not enough time to fix issues)
Download:
Download the Program