Yangk / Project2WriteUpA description of the limitations of your parser. Our parser parses and stores all the channels specified. It expects the hierarchy definition of the joints followed by the motion definition. The parser will display an error message if the join definition is not standard. We store the all the channels definition of joints and process each of these channel separately so it doesn't matter which order the position or rotation channels are specified. A few of the bvh files specified 6 channels for each joints so currently the function that computes the position of the joints ignores the position channels except for the first joint because we did not know what the position channel for the rest of the joints were used for. A list of the basic requirements that you have working.
A list of all of the bonus features that you've implemented.
A list of any outside code that you used (libraries, ...)
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. The program should be pretty simple to use. There is a load button that allows the user to load multiple bhv files. Once the files are loaded, they will be listed in a bvh file listbox. The active motion will be selected in blue. To change to a different motion, just select it from the listbox. There is a file menu on the top containing the following menus: Render Options, Camera, and Skeleton. Render Options toggles shadow, reflection, fps, colored preview, trailing motion, and end effector traces. The Camera toggles changes the camera type to free or auto. The Skeleton enables the user to change the way the skeleton looks: lines, ellipsoids, and variations of a stick figure. To play/stop the animation, click on the play button. Next to the play button is a slider showing the current frame which can be moved manually. To the right of the slider is a repeat toggle button. To the right of the repeat button is an fps slider which enables the user to specify the current fps to play the motion at. There is a single and a multiple files button that will toggle between displaying the current active single motion or the multiple motion. To combine motion, just select a motion in the list of motion files and click on the right arrow button. The user can add as many motions as they want to combine. Once the motion added to the list of multiple files, the user can select a motion and specify the range of the motion to use and the number of frames to blend (note that the number of blend frame in the last item in the list will not do anything since there is no animation that comes after it). Image showing skeleton rendered using lines and trailing motion. ![]() Image showing skeleton rendered using a stick guy and strobe colored motion. ![]() Image showing skeleton rendered using ellipsoids. ![]() Image showing skeleton rendered using a stick guy with a custom face. ![]() Image showing skeleton rendered using lines and concatenation between two motions. ![]() Image showing skeleton rendered using lines and blending between a cartwheel and a jump. ![]() Assessment of every other group's project Eric and Blayne's will properly read and write motion files (the writing thing being something not as many groups did as far as I could tell.) The also have the neat tracing thing that draws out the paths of the end effectors. They got blending working, not quaternion and hacky, but it works and it looks alright. Yoh, Brandon, and Finn's project reads in motion (though if you want it to concatenate more than one, you have to plug it into a script and load that) and displays it looking pretty good. They've also got tracing and blending working, both of which are also presentable. Dan, John, and Adrian's group actually read the stress-test motion and displayed it (though it looked sort of funky.) The rest of the files they read looked pretty good, they can do looping. Their blending, done with SLERP, looks good with reasonable motions and they figured out the right alpha value to combine panicked running with regular running to get something that looks just like C3PO. Jeff, Will, and Ryan's group draws most of the time, without normalizing the size of the skeletons like John's group does (unless that was Alex's group that normalizes them, I don't remember.) They've got strobing, as well as drawing every frame of the motion simulataneously. While I'm not sure what good that does, it looks pretty cool. They've also got non-quaternion blending that looks ok. Cory, Alex, and Tom's group also draws as long as there are three channels per joint (otherwise their parser breaks, but they assure me it's very good otherwise.) Even if the parser breaks, though, the program doesn't crash, it just draws funny. They set up the camera to have a view that will show the entire range of the motion so the figure doesn't walk off screen, and they do strobing that looks quite good. They also do same skeleton blending that looks a little off. Overall if we were going to pick another group's to act as a base for project 3, it would be either Finn's, Blayne's, or John's, because those consistently draw and blend correctly. Probably Dan, John, and Adrian's because I think their blending is set up the best. |