Empty
Vessel
Boy
Empty Vessel Boy was my open-ended final project for CalPoly SLO's Introduction to Computer Graphics course (CPE 471).
The goal for this project was to create a hierarchical character model; animating and exploring in a 3-dimensional world.
Walk Forward
'W' Key
Run Forward
'w' Key
Turn Right
' 'd' Key
Turn Left
'a' Key
Jump
Spacebar
Crouch
's' Key
Add Ghost
Down Arrow Key
Clear Ghost Images
Up Arrow Key
Toggle Human Fill
'e' Key
Quit
'q' Key
Reset Camera
'End' Key
Rotate Camera View Left
Right Arrow Key
Rotate Camera View Right
Left Arrow Key
Rotate Camera View Down
'[apostrophe] Key
Rotate Camera View Up
/[ForwardSlash] Key
When EVB is midair, you have control over its trajectory using the same forward and turn keys.
There are collision detections implemented so that you cannot walk/run off a platform.
If you jump off of a platform, you can not run or walk around until you land on another platform again.
On the platforms, there may be an elevated stage or poles positioned on them that you are prevented from walking into as well.
Animation
The animating is done by interpolating between predefined key humanoid frames using angles and normals set for every action.
A timer is used to interpolate between the frames utilizing a given FPS macro.
Modeling
The humanoid was modeled using a system of rotations, translations and scaling to a 1 unit glusphere (except for the neck using a cylinder).
Every limb is connected at a joint(sphere) representing where the limb can be both bent and rotated about.
Hierarchical Tree
-Waist
-Upper Body
-Neck
-Head
-Right Upper Arm
-Right Lower Arm
-Left Upper Arm
-Left Lower Arm
-Lower Body
-Right Upper Leg
-Right Lower Leg
-Right Foot
-Left Upper Leg
-Left Lower Leg
-Left Foot
Resources
All information used for this project was acquired from CPE-471 class notes or its course supplementary text:
OpenGL A Primer: 3rd Edition, by Edward Angel.