|
All enemies in The Exaggerated Epoch of Edward O’Hare contain an AI Brain script, a health script, a movement component, a perception component that tracks the player, and a state machine that holds multiple behaviors. Every frame, the AI Brain checks whether it's currently in a stunned or knockback state, and, if it is in neither of those states, tells the movement component, perception component, and state machine to update.
0 Comments
After taking Intermediate Graphics & Animation Programming, the logical next step was Advanced Animation Programming, which I took the following semester. Unlike the previous class, we were given the option to work in animal3D (C), Unity (C#), Unreal (C++), or any other framework that would allow us to complete our assignments. Cameron Schneider and I decided to continue to use animal3D, as we were already familiar with its quirks.
The class covered many areas of animation programming including pose-to-pose animation, forward and inverse kinematics (FK and IK), blend trees, and having animations respond to user input. There wasn't much range for us to customize our work until the final project, where we were tasked with creating something that incorporated each of the main topics of the course. Cameron and I decided to implement character control for a wolf walking up a slope. We started by obtaining a skeleton and animation clips for a wolf, the latter of which we converted into an HTR file and loaded into animal3D. From there, Cameron implemented raycasting so we could detect whether the wolf was on a slope, and I revamped our blend tree so it would be easier to construct and modify. I also set up the code that would actually run the raycasts, which we used to determine the positions of the IK constraints.
Wolf Skeleton Walking Up a Slope
From January to May 2020, I took GPR-300: Intermediate Graphics & Animation Programming, which was a deep dive into both the CPU and GPU sides of graphics programming utilizing animal3D, a graphics framework created by Professor Daniel Buckstein. Throughout the course's duration, I and my teammate Cameron Schneider learned how to implement various shading algorithms and expanded upon the rendering pipeline provided by animal3D.
In addition to shading algorithms (such as Phong, Lambert, Cel, and Gooch), post-processing effects (Bloom), and pipeline techniques (framebuffers and deferred lighting), we were also asked to create projects exploring some area of graphics that we were interested in. For our midterm, Cameron and I decided to implement both screen-space ambient occlusion and a crosshatch/pencil shader.
Midterm Presentation
I was responsible for the majority of the C code for the crosshatch pipeline as well as the actual crosshatch shader. I also created the additional framebuffers that were required for the multiple SSAO passes and added onto the text-based UI so it was easier to tell what was going on. Cameron implemented the SSAO shader and the C code for its rendering pipeline, including generating any uniform variables that were required. He also found a way to pack the six crosshatch textures into only two images, which saves a lot of space both on the disk and in RAM as fewer images need to be passed to the GPU. |
Archives
July 2021
Categories |

RSS Feed