Інтеграція Wwise для аудіо мобільної гри
Wwise — це не просто «відтворити звук». Це проміжне ПЗ з власною системою подій, параметрів, мікшування, 3D-позиціонування та адаптивної музики. Для мобільного проекту на Unity або Unreal інтеграція Wwise означає заміну стандартного аудіо-рушія на систему, якою керує Wwise Authoring через SoundBanks.
Як влаштована інтеграція
Wwise не працює безпосередньо з WAV-файлами під час виконання. Процес: звуки → Wwise Authoring → SoundBank (файли .bnk) → завантаження в грі через Wwise SDK. Всі події, параметри та переходи налаштовуються у Wwise Authoring, а код гри викликає події за назвою: AkSoundEngine.PostEvent("Play_Footstep_Wood", gameObject).
Встановлення. Пакет Wwise Integration Package для Unity встановлюється через Wwise Launcher. Версії SDK та плагіну повинні точно збігатися — невідповідність версій викликає помилки компіляції на мобільних платформах. Для iOS додаються AkiOS.framework та залежності в Podfile. Для Android — .aar-бібліотеки через mainTemplate.gradle.
SoundBanks. Звуки компілюються в банки через Wwise Authoring чи командний рядок (WwiseCLI). Для мобільних: iOS використовує AAC через Core Audio, Android — Vorbis. Розмір банків необхідно контролювати: завантажувати тільки необхідні банки для поточної сцени, вивантажувати через AkBankManager.UnloadBank.
Ключові можливості, заради яких варто Wwise
Game Parameters (RTPC). Real-time управління параметрами — це те, що робить аудіо живим. Параметр Health (0–100) змінює pitch та фільтр на ambient-треку: коли здоров'я падає, музика стає глушенішою та напруженішою. Один параметр, одна подія, будь-яка складність маппінгу через криву в Wwise.
Music Switch Container. Адаптивна музика без швів. Переходи між музичними станами (Exploration → Combat → Victory) відбуваються в музично правильний момент — на downbeat або cue-точці. AkSoundEngine.SetState("MusicState", "Combat") — і Wwise сам вибирає момент переходу.
Spatializer та 3D аудіо. Attenuation curves, obstruction/occlusion, кімнатна акустика через Wwise Reflect. На мобільних платформах — обережно: Wwise Reflect додає CPU навантаження, на середньому Android це помітно. Зазвичай обмежуємось Attenuation + Doppler без реверберації через Reflect.
Profiler. Wwise Profiler підключається до пристрою через Wi-Fi. У реальному часі видно: які події відтворюються, CPU використання аудіо, кількість голосів, пам'ять SoundBank. На мобільних цільовий показник — не більше 20–25 одночасних голосів, CPU аудіо-потоку не більше 3–5%.
// Unity — приклад виклику події з параметром
void PlayFootstep(SurfaceType surface) {
AkSoundEngine.SetSwitch("Surface", surface.ToString(), gameObject);
AkSoundEngine.PostEvent("Play_Footstep", gameObject);
}
// Оновлення RTPC параметра здоров'я
void OnHealthChanged(float health) {
AkSoundEngine.SetRTPCValue("PlayerHealth", health, gameObject);
}
Типові проблеми при інтеграції
Втрата звуку на Android після сворачивання програми. Wwise потребує правильної обробки OnApplicationPause: вилучити AkSoundEngine.Suspend(true) при паузі та AkSoundEngine.WakeupFromSuspend() при відновленні. Без цього Android AudioSession не відновиться коректно.
Надмірні SoundBanks. Всі звуки в один Default SoundBank — типова помилка. Перший запуск займає 5–8 секунд на завантаження. Рішення: розбити на банки за рівнями (MenuBank, Level1Bank) та завантажувати асинхронно через AkBankManager.LoadBank.
Конфлікт з іншими аудіо-джерелами. Якщо в грі є відеоплеєр (UnityEngine.Video) чи нативні звуки (AdMob), налаштувати пріоритети AVAudioSession на iOS: Wwise має встановлювати категорію .playback з правильними опціями мікшування.
Графіки
3–5 робочих днів на базову інтеграцію: встановлення, налаштування банків, событий, RTPC для основних механік. Адаптивний саундтрек з Music Switch Container та складною системою параметрів — до 2 тижнів. Вартість розраховується індивідуально.







