Phase 1 Recap – Chaman, Jim, Raja, Xiaolu

by xlzhang on March 25, 2011

in Project 1 Post-Break Checkpoint

Which Phase 1 features are implemented and working

  • Reading and writing skeleton and marker data formats : Qt UI menus to load and save files, allows browsing through the file system.
  • Visualizing skeleton and marker data : Can playback the motions with proper frame rate, or use sliders to look at specific portions.
  • Generate marker position data from skeletons : Can use BVH motions to calculate positions of every end effector and save the results in TRC format, which can then be used to calculate bounding boxes etc.
  • Tracking individual joints : The path of any joint can be calculated, displayed and stored if needed.
  • Splicing : Manual splicing is necessary by editing the BVH file.
  • Interpolation : This is done constantly when playing back the motion. When the GL widget is updated, the time of the animation may not correspond to the exact time of a keyframe, but may be somewhere in between two keyframes. When this happens, an interpolated key frame is generated on the fly between the two closest keyframes and displayed.
  • Positional constraints : Not implemented for the first phase, the second phase involves path editing, however.

Files that the system can work on

Skeletal data – BVH (directly) ; Acclaim, via conversion to BVH.  Tested skeletal data capability using data obtained from CMU Graphics Lab MoCap Database.

Marker data – TRC (directly); C3D, via conversion to TRC using MotionBuilder. Tested with TRC data obtained from MoCapClub website, also various other websites related to game development and motion capture. Tested C3D capability by download various C3D files including ones from MoCapClub, converting them to TRC in MotionBuilder, and loading them into the program.

Specific motions are wide ranging, from walking and running to cartwheels, climbing, swordplay etc.

Testing and demonstration of advanced features

Because blending and concatenation were not crucial to the second phase, these were not well represented. Basic functionality of blending was tested by creating two BVH files representing minimal skeletons (one root joint with 2 bones) with the same topology, populating a small number of frames (5), and then manually combining these frames to form a third BVH file representing the “blend” or “splice”. When animated in the framework, it is clear that the motion of the third file is the logical blend of the motions of the other two.

Original motion (straight line), and edited motion (loop)

Previous post:

Next post: