Why Use This Tool?
Voice-Over that triggers dynamically at runtime needs a system to resolve disputes when a VO is triggered while one is already playing. The Voice Manager provides a clean, data-driven framework that handles the heavy lifting of audio playback. It allows developers to:
- Manage Priorities & Cooldowns: Automatically reject or queue audio requests based on priority settings and cooldown timers to prevent audio overlapping and spam.
- Randomize Dynamic VO: Choose from one of multiple voice lines randomly when triggering and keep track of which ones have been triggered for variety.
- Centralize Audio Management: Move VO logic into a dedicated subsystem rather than spreading it across multiple Blueprints or C++ classes.
How It Works
The Voice Manager uses a structured data approach to handle audio assets and their playback states:
- Data-Driven Architecture: VO entries are defined in Data Tables or specialized VOInfo Data Assets, allowing for easy adjustment of audio properties without touching code.
- Smart Playback Handling: When a VO is triggered, the system checks if it is on cooldown or if a higher-priority sound is already playing, returning a handle with a state of "Playing," "Queued," or "Rejected".
- Priority-Based FIFO Queuing: The queue utilizes priority-based FIFO ordering, ensuring higher priority voice-overs are processed first while maintaining a first-in, first-out sequence for entries with identical priority.
Versatile Spatialization: Supports 2D audio for UI or narration, and 3D spatialized audio that can be placed at a fixed location or attached to moving components.