Skip to Content

Bac​​​​​​​​​k

Wildlife Rendering System


Framework: Unreal Engine, Niagara, AnimToTexture Plugin


Objective: populate game environments with ambient wildlife without incurring the heavy CPU cost of traditional Skeletal Meshes and AI pathfinding


Result: a scalable system using Niagara and Vertex Animation Textures (VATs) capable of rendering over 100 creatures simultaneously with minimal performance overhead


Architecture

Custom State Machine: Developed a custom node-based state machine within Niagara's Scratchpad. The system dynamically reads a creature's angle and position along a Spline to determine its state (e.g., a bird flying straight vs. gliding down vs. entering a 90-degree fall).

Seamless Blending: Implemented custom interpolation logic to ensure smooth transitions between animation states without hard visual cuts


DevEx & Tooling

  • Designer-Facing Controls: Created a custom Blueprint Actor utilizing a Spline and a custom Niagara component. Level designers can simply drag the Blueprint into the level, draw the path, and tweak exposed parameters (like speed and creature type) without touching the underlying logic
  • Scalability: Designed the animation logic using dynamic arrays. Adding a new animation state requires only a 2D vector input (start and end frame index), allowing the system to scale and adapt to new creature types instantly
  • Workflow Optimization: Authored internal documentation and built editor utility functions to streamline the otherwise manual process of generating and assigning the Vertex Animation Textures

Performance & Optimization

  • GPU Offloading: reduced CPU bottlenecks by bypassing standard animation blueprints and skeletal mesh tick costs.
  • Distance Culling & LODs: Implemented particle LODs and distance-based logic. At far distances, animations are entirely disabled via the material, falling back to static textures to reclaim rendering milliseconds

Challenges

Learning & Adapting: Architected the entire Niagara Scratchpad logic from the ground up as a first-time user of the tool

Animation State Logic: Successfully managed complex logic rules, such as forcing unique animations to complete their playback loop before transitioning, while allowing looping animations (like flying to gliding) to blend immediately