Bird Flock System (UE)   More Details
A procedurally bird flock system using Niagara. The birds are animated using vertex animation textures, with behavior and individual spacing controlled with various forces and the Neighbor Grid 3D module.  

Vertex Animation for Static Mesh
  • Conversion Process: Skeletal animations were converted to vertex animation textures (VAT) using Unreal’s AnimToTexture plugin; Animation data was stored in textures and applied to static meshes through a custom material. By using VAT, the system reduced draw calls and leveraged instancing for performance efficiency.
  • Wing Flapping Randomization: A dynamic material parameter, AnimationTimeOffset, assigned a random starting frame to each particle, preventing synchronized animations and creating a more natural look.
Niagara System
  • Flock Behavior Simulation
    • Vortex Force: Added swirling movement to simulate dynamic flock patterns.
    • Drag Force: Applied to mimic air resistance and keep motion controlled.
    • Repulsion and Attraction: Forces ensured the birds maintained formation while avoiding collisions.
    • Curl Noise: Introduced random, chaotic motion for a more natural effect.
  • Maintaining Particle Spacing:  Added Neighbor Grid 3D module to track the proximity of each bird to its neighbors and maintain proper spacing between.
    • Grid Setup:  A grid was established with a limit of max neighbors per cell.
      • Fill Grid — Populated grid cells with particles.
      • Query Grid — Calculated distances and adjusted velocities for realistic separation.
    • Debugging: Visualized the grid and neighbor counts using cube meshes and text sprites, aiding in fine-tuning flock behavior.


    ©Shijia Liu
    Technical  Art
    Fantasyland