Інтеграція FMOD для аудіо мобільної гри
FMOD Studio — прямий конкурент Wwise з нижчим порогом входу для невеликих команд. Безплатний до $200k доходу з гри, простіший pipeline налаштування, вбудований DSP-граф зрозуміліший для дизайнерів без глибокої технічної підготовки. Для Unity та Godot — офіційні плагіни, для Unreal — теж.
Архітектура FMOD у мобільному проекті
FMOD працює через Events — самодостатні звукові об'єкти, які містять треки, ефекти та логіку переходів. Код гри створює та управляє EventInstance:
// Unity FMOD — запуск події
FMOD.Studio.EventInstance footstepEvent;
void Start() {
footstepEvent = FMODUnity.RuntimeManager.CreateInstance("event:/Character/Footstep");
}
void PlayStep(string surface) {
footstepEvent.setParameterByName("Surface", GetSurfaceValue(surface));
footstepEvent.start();
}
void OnDestroy() {
footstepEvent.release();
}
Всі події зберігаються в файлах .bank — FMOD Banks. Структура типичного мобільного проекту: Master.bank (метаданні), Master.strings.bank (назви подій), плюс окремі банки за категоріями (Music.bank, SFX.bank, UI.bank). Банки завантажуються через FMODUnity.RuntimeManager.LoadBank.
Параметри та інтерактивність
FMOD Parameters — аналог RTPC у Wwise. Параметр Intensity (0–10) на музичному треку змінює мікс: при значенні 0 — тільки атмосфера, при 10 — повна боєва аранжування. Continuous параметр оновлюється в реальному часі, Labeled параметр — дискретні стани (Calm, Tense, Combat).
Timeline у FMOD Studio: маркери Cue дозволяють коду перемотати трек у потрібну точку через EventInstance.setTimelinePosition. Використовується для синхронізації музики з катсценами або фазами рівня без жорстких часових прив'язок у коді.
Transition Regions на Timeline — особливість FMOD: можна задати «зони переходу», куди трек перепрострибує при зміні параметра. Це простіше в налаштуванні, ніж Music Switch Container у Wwise, але менш гнучко для складних адаптивних систем.
Мобільна специфіка
Аудіо вихід на Android. FMOD рекомендує FMOD_OUTPUTTYPE_OPENSL для Android API < 26 та FMOD_OUTPUTTYPE_AAUDIO для API 26+. AAudio дає меншу затримку (~20 мс проти ~50–100 мс з OpenSL ES). Налаштовується через FMOD.System.setOutput чи FMODUnity.Settings у Editor.
iOS AVAudioSession. FMOD автоматично встановлює категорію .playback. Проблеми виникають при Mixed Reality або VideoPlayer — конфлікт категорій. Потрібно налаштувати FMODUnity.Settings.forceSpeakerOutput та перевірити поведінку при вхідному дзвінку: FMOD має відновити сесію через AudioInterruptionNotification.
Бюджет пам'яті. На середньому Android (2–3 ГБ RAM) аудіо-пам'ять потрібно контролювати. FMOD Studio Profiler → Memory monitor показує live використання. Типовий ціль: не більше 32–48 МБ на аудіо. Sample Data streaming з диска замість завантаження в пам'ять для довгих треків — FMOD_STUDIO_LOAD_MEMORY_POINT vs stream.
Ліміт голосів. FMOD.System.setSoftwareChannels(64) — 64 віртуальних каналів. Реальні голоси (hardware) на мобільних — 16–32. Решта віртуалізуються: FMOD їх глушить, але зберігає стан. При близькій відстані до джерела — повертає у фізичний канал. Без налаштування пріоритетів важливі звуки (UI, зброя) можуть бути витіснені ambient-джерелами.
Різниця від Wwise
| Критерій | FMOD | Wwise |
|---|---|---|
| Ліцензія | Безплатно до $200k | Безплатно до $150k (Indie) |
| Складність налаштування | Менше | Більше |
| Адаптивна музика | Timeline + Parameters | Music Container (гнучкіше) |
| Profiler | Вбудований у Studio | Окремий Wwise Profiler |
| Документація | Гарна | Відмінна |
Для невеликих команд без спеціалізованого технічного аудіо-дизайнера FMOD простіше в супроводі.
Графіки
3–5 робочих днів на інтеграцію базової системи: встановлення плагіна, налаштування банків, подій для SFX та UI, один адаптивний музичний трек з параметром. Вартість розраховується індивідуально після аудиту проекту.







