Звуки в Дополнениях
Воспроизведение звуков в дополнениях Source 2 и Half-Life: Alyx запускается стартом и остановкой звукового события [Sound Event].
Звуковые события запускаются/изменяются/останавливаются игровым кодом, объектами на карте, анимацией или другими звуковыми событиями по имени.
Звуковые события имеют тип (к примеру, type = "hlvr_default_3d") и содержат набор значений, соответствующих этому типу.
Добавление звуков в ваше Дополнение
Чтобы добавить новые звуковые события или изменить содержимое уже существующих звуковых событий из базовой игры, вам необходимо:
- Добавить новый .wav файл в папку "sounds", которая находится в вашем дополнении.
- Добавьте свой собственный файл звуковых событий аддона.
- Объявите в нем свои звуковые события, чтобы они указывали на ваши новые звуки (скомпилированная версия .vsnd).
- Добавьте манифест "звуковых ресурсов", который указывает на ваш файл звуковых событий.
- Скомпилируйте все эти файлы.
Это все, что требуется, чтобы перезаписать существующие звуковые события.
Чтобы добавить новые звуковые события на карту, на карте нужно разместить snd_event_point . Эту сущность можно запускать и останавливать с помощью триггеров.
Добавить новые звуки
Поместите звуковые файлы в каталог "sounds" внутри дополнения:
Файлы Звуковых Событий
Добавьте файл звуковых событий с уникальным именем в каталог "soundevents", добавив к нему префикс с именем дополнения:
Перезапись звуковых событий
В качестве примера, перезапишем некоторые звуковые события для зомби:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} -->
{
"Addon.AudioNewSoundDemo" =
{
type = "hlvr_default_3d"
volume = 1.0
volume_falloff_min = 70.0
volume_falloff_max = 2700.0
volume_fade_out = 1
volume_fade_in = 0
spread_min = 30
spread_max = 150
vsnd_files =
[
"sounds/snd_sound_add_demo_01.vsnd",
]
}
// Перезапись существующих звуковых событий
"Step_Zombie.Metal_Solid" =
{
base = "Step_Zombie.Base"
volume_mult_step_layer = 2
vsnd_files_step =
[
"sounds/fs_squeaky_01.vsnd",
"sounds/fs_squeaky_02.vsnd",
"sounds/fs_squeaky_03.vsnd",
"sounds/fs_squeaky_04.vsnd",
"sounds/fs_squeaky_05.vsnd",
"sounds/fs_squeaky_06.vsnd",
"sounds/fs_squeaky_07.vsnd",
"sounds/fs_squeaky_08.vsnd",
"sounds/fs_squeaky_09.vsnd",
"sounds/fs_squeaky_10.vsnd",
// Строчки удалены ради сокращения этого примера, здесь должны быть указаны все файлы.
"sounds/fs_squeaky_39.vsnd",
"sounds/fs_squeaky_40.vsnd",
"sounds/fs_squeaky_41.vsnd",
"sounds/fs_squeaky_42.vsnd"
]
}
"Step_Zombie.Default" =
{
base = "Step_Zombie.Metal_Solid"
}
"Step_Zombie.Concrete" =
{
base = "Step_Zombie.Metal_Solid"
}
"Step_Zombie.Dirt" =
{
base = "Step_Zombie.Metal_Solid"
}
"Step_Zombie.Gravel" =
{
base = "Step_Zombie.Metal_Solid"
}
"Step_Zombie.Metal_Walkway" =
{
base = "Step_Zombie.Metal_Solid"
}
"Step_Zombie.Wood" =
{
base = "Step_Zombie.Metal_Solid"
}
}
При создании новых звуков вы можете использовать несколько различных типов звука:
- hlvr_default_3d
- hlvr_2d_w_falloff
- hlvr_2d_w_occlusion
- hlvr_music_3d
- hlvr_music_3d_takeover
- hlvr_music_2d
- hlvr_music_fixed_rotation
- hlvr_music_start_multi_quad
Файлы Манифеста
Добавьте файл манифеста с конкретным именем в каталог "resourcemanifests", чтобы он соответствовал дополнению:
Формат имени:
<название_аддона>_addon_resources.vrman
Добавьте референс на один или несколько файлов звуковых событий с манифестом:
<!-- kv3 encoding:text:version{e21c7f3c-8a33-41c5-9977-a76d3a32aa0d} format:generic:version{7412167c-06e9-4698-aff2-e63eb59037e7} --> { resourceManifest = [ [ "soundevents/audio_new_sound_soundevents.vsndevts", ], ] }
Компиляция
Используйте либо "Asset Browser", либо "resourcecompiler", скомпилируйте все вышеперечисленные ресурсы. Использование компилятора ресурсов в каталоге Steam часто требует указания полных путей:
c:\Program Files (x86)\Steam\steamapps\common\Half-Life Alyx\content\hlvr_addons\audio_new_sound\resourcemanifests>"c:\Program Files (x86)\Steam\steamapps\common\Half-Life Alyx\game\bin\win64\resourcecompiler.exe" -i -f "c:\Program Files (x86)\Steam\steamapps\common\Half-Life Alyx\content\hlvr_addons\audio_new_sound\resourcemanifests\audio_new_sound_addon_resources.vrman"
Загрузка аддона звуковых событий
Звуковые события дополнения не загружаются до тех пор, пока в игру не будет загружена карта или пока файл звуковых событий не будет перезагружен в Asset Browser.
Это означает, что если вы запустите Инструменты Мастерской и откроете только Hammer, вы обнаружите, что звуковые события вашего аддона еще недоступны в средстве выбора звуковых событий [soundevents picker].
В таких случаях, чтобы загрузить звуковые события вашего дополнения, выполните одно из следующих действий:
- Запустите Инструменты Мастерской и загрузите любую карту с помощью “addon_tools_map <название_карты>.”
- Перекомпилируйте и перезагрузите файл <название_аддона>_soundevents.vsndevts в Asset Browser.
- Эти шаги необходимы только в том случае, если вы еще не загрузили карту после запуска Инструментов Мастерской.
Еще один полезный способ проверить наличие звуковых событий дополнения - ввести консольную команду “snd_list_soundevents” в vconsole.