11 KiB
Audio Engine — музыка, звуковые эффекты и эмбиент
Audio Engine заставляет игру звучать: музыка следует за текущей сценой, эффекты отвечают на действия, а зацикленный эмбиент задаёт настроение месту. У этих слоёв отдельные регуляторы громкости, поэтому саундтрек можно сделать тише, не глуша щелчки интерфейса и звуки окружения.
Это общий мод-движок, которым пользуются меню и игры. Сам по себе Audio Engine вы обычно не открываете и не настраиваете: игра снабжает его аудиофайлами и просит их проиграть.
Что вы слышите
- Музыка: треки поставляет плейлист сцены. Плеер выбирает следующий трек, когда кончается текущий, и старается не ставить предыдущий, если есть из чего выбрать. Список из одного трека повторяет его.
- Звуки: короткие эффекты вроде щелчков интерфейса или боевых действий. Эффекты из разных звуковых категорий могут звучать одновременно; новый эффект той же категории сменяет предыдущий.
- Эмбиент: фоновый звук места, например атмосфера бара из Town Pack. Одновременно играет один фоновый поток и повторяется, пока его не остановят или не заменят.
Музыка и эмбиент различаются, даже когда оба играют фоном. У локации может быть исследовательский саундтрек на канале музыки и отдельный комнатный или уличный цикл на эмбиенте.
Как настроить звук
Откройте Настройки → Звук в меню. Три строки — Звуки, Музыка и Окружение. У каждой свой переключатель и свой ползунок громкости. Изменения сохраняются на ходу.
Например, убавьте Музыку, чтобы лучше слышать реплики и звуковые эффекты интерфейса, не трогая Звуки. Выключите Окружение, если хотите слушать только саундтрек без фонового цикла.
Сама панель настроек — от мода Menu; Audio Engine применяет эти предпочтения к воспроизведению и не добавляет ещё одно окно звуковых настроек.
Где используется
- Общий фронтенд загружает Audio Engine для главного меню и настроек — даже когда игра не запущена.
- Music Pack поставляет тему меню и общие плейлисты исследования и боя; их проигрывает Audio Engine.
- В шаблоне новеллы сцена бара запрашивает
bar/bar_ambient— его даёт Town Pack. - Сюжет и боевые системы по ходу игры запрашивают эффекты или меняют активный музыкальный контекст.
Audio Engine и Music Pack делают разное. Audio Engine отвечает за воспроизведение, Music Pack — за конкретный саундтрек и плейлисты. Автор может взять Audio Engine и с другим звуковым содержимым.
Авторам игр: добавить саундтрек
Добавьте audio_base>=1 к уже существующему списку depends в манифесте контентного мода. Установите мод и включите его в коллекцию нужной игры: установленный контентный мод сам по себе не попадает во все игры.
// Добавьте к уже существующему списку зависимостей в манифесте:
"depends": ["audio_base>=1"]
Музыку кладите в music/, а звуковые эффекты и фоновые циклы — в sounds/. Для новых примеров используйте Ogg Vorbis (.ogg) — именно в этом формате идут поставляемые саундтрек и эмбиент бара.
my_audio_content/
├── manifest.json
├── music/
│ ├── evening_theme.ogg
│ └── playlists/
│ └── my_scene.json
└── sounds/
└── my_room/
└── ambience.ogg
Пример music/playlists/my_scene.json:
{
"Scene": "my_scene",
"Musics": [
{
"MusicType": "Ambient",
"MusicNames": ["evening_theme"]
}
]
}
Scene должен совпадать с логическим именем сцены. Имена треков указываются относительно music/, без расширения. Сохраняйте написание, регистр и пробелы в точности как в имени ресурса.
Здесь MusicType: "Ambient" означает исследовательскую музыку. Он не отправляет трек на отдельный канал эмбиента.
Авторам игр: дать сцене фоновый цикл
Задайте defaultAmbient в описании сцены — путь к звуковому ресурсу относительно sounds/, без расширения:
{
"name": "my_scene",
"defaultAmbient": "my_room/ambience"
}
Этот фрагмент показывает звуковые поля; остальные нужные сцене поля сохраните. Сцена с пустым defaultAmbient останавливает фоновый цикл предыдущей сцены.
Настоящий пример — сцена my_novel_bar из шаблона новеллы: она использует defaultAmbient: "bar/bar_ambient" со звуком, который поставляет Town Pack. Чтобы задействовать этот ресурс в своём моде, тоже нужна зависимость от его владельца, town_pack.
Смена сцен, бои и переопределения
- Если у сцены нет пригодного плейлиста, Audio Engine ищет общий плейлист
default. Музыка появится, только если под рукой есть подходящее звуковое содержимое. - Когда у сцены есть свой плейлист, он не дополняется недостающими типами музыки из
default. Включите в него тип, который нужен музыкальному контексту сцены. - При смене сцены текущий трек может продолжить играть, если он есть и в новом плейлисте, а тип музыки не изменился.
- Входя в бой, движок может запомнить исследовательский трек и его позицию; возвращение к исследованию пытается их восстановить. Это поведение живого проигрывания, а не гарантия, что загрузка сохранения вернёт точную музыкальную секунду.
- Для одной сцены и одного типа музыки мод, загруженный позже, заменяет список треков более раннего. Списки не складываются. Ресурсы с одинаковым относительным именем тоже может переопределить поздний мод.
Для боевого музыкального контекста используйте блок Combat. Произвольное имя блока не создаёт ни нового контекста, ни нового ползунка в настройках.
Если что-то молчит
- Проверьте нужный переключатель и громкость в Настройки → Звук. Музыка, звуки и эмбиент независимы.
- Проверьте, что для выбранной игры загружены Audio Engine и нужные контентные моды. В Audio Engine нет треков Music Pack и цикла бара Town Pack.
- Для музыки проверьте имя сцены, нужный блок
AmbientилиCombatи каждое имя трека. Запись в плейлисте не создаёт и не скачивает аудиофайл. - Для эмбиента проверьте
defaultAmbientи ресурс вsounds/. Если прошлый цикл остановился, проверьте, не пустое ли поле в новой сцене. - Проверьте моды, загруженные позже: они могут заменить блок плейлиста или звуковой ресурс. Загляните в лог игры на предмет отсутствующих файлов и ошибок разбора плейлистов.
В руководстве описан поддерживаемый путь Ogg Vorbis. У движка есть и загрузка WAV, но текущий загрузчик не читает метаданные WAV-контейнера; не считайте, что любой экспортированный WAV поведёт себя правильно. Сомневаетесь — конвертируйте новый контент в Ogg Vorbis. MP3 текущая аудиофабрика не поддерживает.

