Аудио: под-шины и сведение
Решение по организации SFX-микса (принято Максом 2026-07-18). Канон-дом для ссылок audio-subbuses из бэклога звука. Реализация — за фасадом
IAudioServiceна FMOD Studio (контурxgaida-x-nixi-audio).Связано: Vision - Audio & SFX Backlog, Meta - Decision Journal.
Решение
Подкатегории SFX = FMOD под-шины, не свой C#-слой:
bus:/SFX/Combat — боевые звуки (удары, касты, смерти)
bus:/SFX/UI — интерфейс (клик, ховер, открытие экранов)
bus:/SFX/Ambient — окружение
bus:/SFX/Stingers — стингеры (battle/victory/defeat/kill)
- Заложить рано как шов (принцип «дорогое-в-ретрофите — рано»): развести события по под-шинам при следующем заходе в FMOD-проект, пока каталог звука мал.
- Роутинг event → bus живёт в FMOD Studio. Наш код не меняется: ключи
{contentId}.{action},AudioCatalog,AudioAction(Ui/Hit/Cast/Stinger…) уже де-факто категоризируют звук — этого достаточно, чтобы назначить под-шину на стороне FMOD.
Чего НЕ делаем
Свой C#-инструмент сведения средней громкости категорий — НЕ строим. Средняя громкость группы звуков — это ровно то, для чего существует микшер FMOD Studio (шины, fader, VCA, mixer snapshots). Свой тул поверх = дублирование FMOD и нарушение HARD-правила аудио-контура: микс живёт за FMOD, игровая логика FMOD API напрямую не трогает.
Бонус-стык
Mixer snapshot под boss-intro title card: приглушить bus:/SFX/Combat, поднять стингер — красивый
акцент на входе в бой с боссом. Требует наличия под-шин (ещё одна причина заложить их рано).
Как применять
- Новые SFX роутить в под-шину прямо в FMOD Studio — код не трогать.
- Наш код трогать только если геймдизайн настроек захочет раздельный слайдер громкости
категории: тогда
IAudioService.SetVolume(busPath, v)+ поле вSettingsService. Сейчас — YAGNI.