This is a project I am currently working on for my GAME 366 class where we were tasked to make a feature for a game and all particle effects for that feature.
I developed all shaders, post-process effects, and VFX for this project, along with the animation systems. I retargeted sourced animations to fit my model and used 2D blendspaces to create dynamic movement both on the ground and in the air.
Sounds were created in collaboration with Mark Otim
Gameplay:
Environment:
Animation Breakdown:
Although this project primarily focused on VFX integration, I took the initiative to build a multi-layered animation blueprint to demonstrate my specialized skills in animation systems. This added layer of functionality showcases my ability to go beyond project requirements and deliver high-quality, integrated solutions.

Player Locomotion State Machine

Player Animation Blueprint


I designed the player animation system with separate upper and lower body layers, enabling precise control over animations. This setup allows for upper-body-only montages, such as casting a fireball, while maintaining lower body movement. Additionally, I incorporated a default montage slot for full-body overrides, providing complete control when necessary, such as when the player jumps out of the lava.
Animation Retargeting:

I utilized animation retargeting to transfer animations from the Kallari rig to the Gideon rig, enabling seamless integration within the game. After fine-tuning the timing, the animation performed perfectly for dynamic actions, like launching out of the lava.
Jump Alias:

By utilizing a state alias, I was able to make a much cleaner state machine.
From the alias I am also able to decide if the player is just jumping, or if they are flying in the air.

Flying is done by using the character velocity and direction to drive an 8 directional blend space.

8 Directional Blend Space

Inside the flying state
Environment Progress Throughout the project:
Rock Material:

Baked AO Map as Vertex Color

Shader Utilizing Vertex Color to Animate the Cracks
To achieve realistic glowing rock effects, I integrated the ambient occlusion map directly into the alpha channel of the rocks' vertex paint layer. This approach allows fine control over critical parameters, such as threshold, color, and intensity, enabling dynamic customization while maintaining a highly optimized and lightweight material.
This efficient setup provides robust visual control without compromising performance, making it ideal for real-time applications.
Video Explanation:
Lava Shader Progression:

Blockout

Early WIP

First Draft

Final
This lava effect utilizes distance fields to create realistic lava buildup along edges, paired with panning noise textures and UV distortion to simulate both heat and fluid-like movement. Each component is parameterized, allowing for easy adjustments and seamless adaptation to different environments.
This setup provides flexibility for various artistic and technical needs while ensuring optimal visual quality and performance in real-time applications.
Video Explanation:
Post Process for Cheap Heat Distortion
To optimize performance in my heat-intensive environment, I replaced traditional opacity cards with a post-process material using World Position Offset and Screen Position for heat distortion above the lava.
This approach enhanced real-time performance and included a natural gradient that reduces distortion with distance, achieving a realistic, efficient effect. This project showcases my ability to balance visual quality with performance.
Exaggerated Pictures to show the effect:

Noise being applied to UV's via Height

Exaggerated Effect

Acts as a volume so objects above it do not distort
Video Explanation: