Интеграция Wwise для аудио мобильной игры
Wwise — это не просто «воспроизвести звук». Это middleware с собственной системой событий, параметров, микширования, 3D-позиционирования и адаптивной музыки. Для мобильного проекта на Unity или Unreal интеграция Wwise означает замену стандартного аудио-движка на систему, которая управляется из Wwise Authoring через SoundBanks.
Как устроена интеграция
Wwise не работает напрямую с WAV-файлами в runtime. Процесс: звуки → 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 parameter control — это то, что делает аудио живым. Параметр Health (0–100) меняет pitch и filter на ambient-треке: когда здоровье падает, музыка становится глуше и напряжённее. Один параметр, одно событие, любая сложность mapping через кривую в Wwise.
Music Switch Container. Адаптивная музыка без стыков. Переходы между музыкальными состояниями (Exploration → Combat → Victory) происходят в музыкально правильный момент — на downbeat или в точке cue. AkSoundEngine.SetState("MusicState", "Combat") — и Wwise сам выбирает момент перехода.
Spatializer и 3D audio. Attenuation curves, obstruction/occlusion, room acoustics через Wwise Reflect. На мобильных платформах — с осторожностью: Wwise Reflect добавляет CPU нагрузку, на mid-range Android это ощутимо. Обычно ограничиваемся Attenuation + Doppler без реверберации через Reflect.
Profiler. Wwise Profiler подключается к устройству через Wi-Fi. В реальном времени видно: какие события воспроизводятся, CPU usage аудио, voice count, SoundBank memory. На мобильных целевой показатель — не более 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 не восстанавливается корректно.
Bloated SoundBanks. Все звуки в один Default SoundBank — типичная ошибка. Первый запуск занимает 5–8 секунд на загрузку. Решение: разбить на банки по уровням (MenuBank, Level1Bank) и загружать асинхронно через AkBankManager.LoadBank.
Конфликт с другими аудио-источниками. Если в игре есть видеоплеер (UnityEngine.Video) или нативные звуки (AdMob), нужно настроить приоритеты AVAudioSession на iOS: Wwise должен устанавливать категорию .playback с правильным mix options.
Сроки
3–5 рабочих дней на базовую интеграцию: установка, настройка банков, событий, RTPC для основных механик. Адаптивный саундтрек с Music Switch Container и сложной системой параметров — до 2 недель. Стоимость рассчитывается индивидуально.







