Автор: Alisacat007
Аудиосистема Bannerlord построена на фирменной аудиосистеме FMOD. Чтобы сохранить производительность звукового движка и сделать его доступным для всех, нам нужно было создать свой внутриигровой аудиопроигрыватель.
В файл ...\Modules\*ВАШ МОД*\ModuleData\module_sounds.xml вы прописываете названия своих звуковых файлов.
В папку ...\Modules\*ВАШ МОД*\ModuleSounds вы помещаете свои новые аудиофайлы (.ogg, .wav).
В качестве примера можно посмотреть, как это реализовано у разработчиков в их модуле ‘Native’.
1. Скопируйте примеры файлов и папок из модуля ‘Native’в свой собственный модуль.
2. Добавьте свои новые звуки в папку ModuleSounds
3. Откройте файл module_sounds.xml в вашем модуле.
4. Просмотрите пример записи кода звуковых файлов в файле module_sounds.xml модуля ‘Native’.
5. Добавьте новые строки в файл module_sounds.xml своего мода.
6. Воспроизведите для проверки новое звуковые записи из кода.
Using module_sounds.xml (Помощь в создании файла module_sounds.xml) :
,где :
‘name’ : любое уникальное имя, которое вы хотите. Это идентификатор вашего звука.
Используется во время воспроизведения звука из кода.
Используется для воспроизведения звука анимации, добавив к анимации свойство 'sound_code'.
‘is_2d’ : (Звук является 2d) Ставится значение "true" (верно), если пространственные свойства звука не будут использоваться. 3d звуки имеют свойства, как (position) расположение в пространстве, (velocity) скорость воспроизведения и т.д.
‘sound_category’ : Все звуки должны быть отнесены к определенной категории, чтобы они правильно воспроизводились.
Доступные категории:
mission_ambient_bed (Звук, движущийся в игре по кругу. Напр. ветер)
mission_ambient_3d_big (Звуки, которые должны быть слышны издалека. Напр. горящий замок)
mission_ambient_3d_medium (Звуки, которые должны быть слышны со среднего расстояния. Напр. удаленный костры)
mission_ambient_3d_small (Звуки, которые должны быть слышны поблизости. Напр. костры в лагере)
mission_material_impact (Звуки физических материальных воздействий. Напр. удар металлического меча о каменную стену)
mission_combat_trivial (Звуки несущественного урона. Напр. низкий/нет урона)
mission_combat (Звуки повреждений)
mission_foley (Взмахи оружия, звук шагов, звуки движения животных)
mission_voice_shout (Звуки голоса людей/животных, которые должны быть слышны издалека. Напр. боевые крики)
mission_voice (Звуки от людей/животных. Напр. хрюканье, удары по лицу)
mission_voice_trivial (Тихие вокализации, такие как лазание, прыжки)
mission_siege_loud (Звуки больших осад, которые звучат так, словно валун врезается в стену, катапульта стреляет, дверь ломается)
mission_footstep (Стандартные шаги людей и мелких животных)
mission_footstep_run (Более громкие шаги, которые можно услышать издалека. Напр. толпы)
mission_horse_gallop (Галоп лошадей и верблюдов)
mission_horse_walk (Мягкий шаг лошадей и верблюдов)
ui (2D звуки для пользовательского интерфейса и уведомлений)
alert (Псевдо-3d звуки для оповещения игрока со средней дистанции)
campaign_node (Позиционные звуки для карты мира, ферм, морей, водопадов)
campaign_bed (2D окружающие звуки для карты мира, порывов ветра в пустыне, ветры на травяных пастбищах и т.д.)
‘path’ : Имя звукового файла для воспроизведения [обязательно с его расширением]. Путь (Path) указывается относительно папки ModuleSounds вашего модуля. Вы можете создавать подпапки.
У вас есть два способа воспроизведения звука :
One Shot (Один выстрел). Лучшая производительность и меньше контроля за управлением. Выстрелил и забыл. Хорошо подходит для звуков, связанных с боем.
Creating and holding (Создание и удержание ссылки). Худшая производительность. Контролируйте каждый параметр звука всякий раз, когда вы хотите его произвести. Обновление состояния во время паузы.
Аудиосистема Bannerlord построена на фирменной аудиосистеме FMOD. Чтобы сохранить производительность звукового движка и сделать его доступным для всех, нам нужно было создать свой внутриигровой аудиопроигрыватель.
Ключевые элементы
В файл ...\Modules\*ВАШ МОД*\ModuleData\module_sounds.xml вы прописываете названия своих звуковых файлов.
В папку ...\Modules\*ВАШ МОД*\ModuleSounds вы помещаете свои новые аудиофайлы (.ogg, .wav).
В качестве примера можно посмотреть, как это реализовано у разработчиков в их модуле ‘Native’.
Базовое руководство
1. Скопируйте примеры файлов и папок из модуля ‘Native’в свой собственный модуль.
2. Добавьте свои новые звуки в папку ModuleSounds
3. Откройте файл module_sounds.xml в вашем модуле.
4. Просмотрите пример записи кода звуковых файлов в файле module_sounds.xml модуля ‘Native’.
5. Добавьте новые строки в файл module_sounds.xml своего мода.
6. Воспроизведите для проверки новое звуковые записи из кода.
Двигаемся дальше
Using module_sounds.xml (Помощь в создании файла module_sounds.xml) :
,где :
‘name’ : любое уникальное имя, которое вы хотите. Это идентификатор вашего звука.
Используется во время воспроизведения звука из кода.
Используется для воспроизведения звука анимации, добавив к анимации свойство 'sound_code'.
‘is_2d’ : (Звук является 2d) Ставится значение "true" (верно), если пространственные свойства звука не будут использоваться. 3d звуки имеют свойства, как (position) расположение в пространстве, (velocity) скорость воспроизведения и т.д.
‘sound_category’ : Все звуки должны быть отнесены к определенной категории, чтобы они правильно воспроизводились.
Доступные категории:
mission_ambient_bed (Звук, движущийся в игре по кругу. Напр. ветер)
mission_ambient_3d_big (Звуки, которые должны быть слышны издалека. Напр. горящий замок)
mission_ambient_3d_medium (Звуки, которые должны быть слышны со среднего расстояния. Напр. удаленный костры)
mission_ambient_3d_small (Звуки, которые должны быть слышны поблизости. Напр. костры в лагере)
mission_material_impact (Звуки физических материальных воздействий. Напр. удар металлического меча о каменную стену)
mission_combat_trivial (Звуки несущественного урона. Напр. низкий/нет урона)
mission_combat (Звуки повреждений)
mission_foley (Взмахи оружия, звук шагов, звуки движения животных)
mission_voice_shout (Звуки голоса людей/животных, которые должны быть слышны издалека. Напр. боевые крики)
mission_voice (Звуки от людей/животных. Напр. хрюканье, удары по лицу)
mission_voice_trivial (Тихие вокализации, такие как лазание, прыжки)
mission_siege_loud (Звуки больших осад, которые звучат так, словно валун врезается в стену, катапульта стреляет, дверь ломается)
mission_footstep (Стандартные шаги людей и мелких животных)
mission_footstep_run (Более громкие шаги, которые можно услышать издалека. Напр. толпы)
mission_horse_gallop (Галоп лошадей и верблюдов)
mission_horse_walk (Мягкий шаг лошадей и верблюдов)
ui (2D звуки для пользовательского интерфейса и уведомлений)
alert (Псевдо-3d звуки для оповещения игрока со средней дистанции)
campaign_node (Позиционные звуки для карты мира, ферм, морей, водопадов)
campaign_bed (2D окружающие звуки для карты мира, порывов ветра в пустыне, ветры на травяных пастбищах и т.д.)
‘path’ : Имя звукового файла для воспроизведения [обязательно с его расширением]. Путь (Path) указывается относительно папки ModuleSounds вашего модуля. Вы можете создавать подпапки.
Пример кода в звуковм файле
У вас есть два способа воспроизведения звука :
One Shot (Один выстрел). Лучшая производительность и меньше контроля за управлением. Выстрелил и забыл. Хорошо подходит для звуков, связанных с боем.
Creating and holding (Создание и удержание ссылки). Худшая производительность. Контролируйте каждый параметр звука всякий раз, когда вы хотите его произвести. Обновление состояния во время паузы.