// Overview
A crowd animation system that brings the stadium and arena environments to life. The system manages three distinct NPC classes - standing audience, seated audience and athletes - each with their own animation pools and behavioral responses to gameplay events.
NPCs react dynamically to what happens in the training session: correct task completion triggers positive reactions, failed attempts trigger negative responses, and during idle moments NPCs randomly cycle through up to 30 different animations to maintain visual variety.
// Gallery
// My Role
- NPC class system - designed three distinct character classes: standing audience, seated audience and athletes, each with unique animation sets and behavior.
- Randomized animation selection - built a system that randomly picks from a pool of ~30 animations per class, ensuring visual variety across the crowd.
- Event-driven reactions - NPCs respond to in-game events: positive reaction for correctly completed tasks, negative reaction for failed attempts, smooth transitions between states.
- Idle behavior - during downtime, NPCs independently cycle through randomized idle and training animations, keeping the scene feeling alive.
- Performance optimization - efficient animation instancing and LOD-aware playback to maintain VR framerate with dozens of animated NPCs on screen.
// Tech Stack
Unity URP
Animator Controller
C#
Animation Events
Meta Quest