161 Final: Parkour Animation

Project description: The goal of this project was to create a human figure and program it to perform parkour across a varaiety of terrains and obstacles.

Project Completion: From what my proposed idea was i beleive i have completed about 80% percent of what I set out to do in that i have a working proof of concept tool to create animations and bind them to keybaord. All that would be left would be the obstacles.


Control Scheme
Key Action
W/A/S/D Move the Character about analogous to FPS Games
Mouse Press and Hold the Left Mouse Button to rotate the camera about
Spacebar Jump
e While in the air = spinflip || While in a handstand = handspin
q While in the air = backflip
f Mount/Distmount to/from handstand

Implementation

For this program I used C++/OpenGL for this project using Microsoft visual Studio 2010. In short I created a tool that creates key animation frames. The key frames contain information regarding the body's current corrdinates, as well as the degree of rotation followed by the axis that that particular body part would be rotated around.

Ex: Key-Frame
0 0 0
head 0 0 1 0
hip -2 0 1 0
leftCalf 27 1 0 0
leftForearm 2 1 0 0
leftQuad -24 1 0 0
leftTricep 7 1 0 0
neck 0 1 0 0
rightCalf 8 1 0 0
rightForearm 4 1 0 0
rightQuad -13 1 0 0
rightTricep 0 1 0 0
shoulders 0 0 1 0
spine -21 1 0 0

After collecting enough of these key frames i simply had the program interpolate between the frames to bring the animation to life. with this technique I was able to bring the animations you see in this project to life and bind them to keyboard controls

Once this was done I had to create the third person mouse controlled camerea. The final implentation of this turned out to be a lot easier than expected. All that need to be done was to create a quaternion, convert it into a rotation matrix and multiply it against the coordinates of the camera. The only catch was that the X axis must also be rotated about the Y axis when circling around the center point of view. If this isn't done then the camera, upon crossing the x axis will invert its rotation.

This website helped me out a lot in understanding how quaternions work. It also provides Quaternion->Rotation Matrix, Quaternion->AxisAngle and Interpolation techniques. FlipCode: Quaternions
Standing Handstand
Standing Handstand
Roll Running
Roll Running
Backflip
Backflip
DownLoads
Videos Source Code Executable Technical Paper
Backflip
Handspin
Handstand
Idle
Sideflip
implemntation.cpp
Main.cpp
man.cpp
man.h
README.txt
Complete Source Code
EXE.zip
TechnicalPaper
TechnicalPaper.txt

Contact Me:
Joshua Ray
jsray@ucsc.edu
2/11/2011