Ru/Soundscape: Difference between revisions
Another OWL (talk | contribs) m ({{Note}} instead of {{Note:ru}}) |
Thunder4ik (talk | contribs) m (clean up, replaced: {{tip:ru → {{tip (6)) |
||
Line 6: | Line 6: | ||
Одновременно может работать только один саундскейп, а его отдельные звуки не могут управляться с помощью входов. Когда игрок активирует следующий саундскейп, игра создает плавный переход между звуками от одного к другому. | Одновременно может работать только один саундскейп, а его отдельные звуки не могут управляться с помощью входов. Когда игрок активирует следующий саундскейп, игра создает плавный переход между звуками от одного к другому. | ||
{{tip | {{tip|Время перехода между звуками задается [[Convar:ru|консольной переменной]] (convar) <code>soundscape_fadetime</code>.}} | ||
{{tip | {{tip|Используйте переменную [[Convar:ru|convar]] <code>soundscape_debug</code>, чтобы понимать, какой саундскейп активен и почему.}} | ||
{{Note|Чтобы воспроизводиться циклически, звуковые файлы должны иметь соответствующую метку петли. См. [[Looping a Sound:ru|Зацикливание звука]].}} | {{Note|Чтобы воспроизводиться циклически, звуковые файлы должны иметь соответствующую метку петли. См. [[Looping a Sound:ru|Зацикливание звука]].}} | ||
Line 29: | Line 29: | ||
*[[env_soundscape_triggerable]] | *[[env_soundscape_triggerable]] | ||
Есть другие энтити, которые активируют саундскейпы, но только эти две фактически определяют свойства звукового оформления. Другие энтити могут указывать на них и включать удаленно. | Есть другие энтити, которые активируют саундскейпы, но только эти две фактически определяют свойства звукового оформления. Другие энтити могут указывать на них и включать удаленно. | ||
Всякий раз, когда энтити активируют саундскейп, воспроизводится позиционный звук в соответствии с заданными свойствами. {{tip | Всякий раз, когда энтити активируют саундскейп, воспроизводится позиционный звук в соответствии с заданными свойствами. {{tip| Многие саундскейпы задают позиционные звуки (исходящие из определенной точки), так что неплохо заглядывать в записи саундскейпов, чтобы получить представление о том, что и как можно сделать. Большинство записей находятся в текстовых файлах, список которых в файле <code><game>/scripts/soundscapes_manifest.txt</code>. Чтобы лучше понимать записи саундскейпов, [[Soundscape#Creating_Soundscapes|см. сюда]].}} | ||
== Активация саундскейпов == | == Активация саундскейпов == | ||
Саундскейпы активируются игроком или программно. Они работают до тех пор, пока не сменится карта или их не отключит другой саундскейп. {{tip | Саундскейпы активируются игроком или программно. Они работают до тех пор, пока не сменится карта или их не отключит другой саундскейп. {{tip|Используйте консольную команду <code>soundscape_flush</code>, чтобы отключить активный саундскейп.}} | ||
Line 53: | Line 53: | ||
{{tip | {{tip|Используйте [[convar|консольную переменную]] [[soundscape_debug]], чтобы понять, какая сущность активна и почему.}} | ||
== Размещение саундскейпов == | == Размещение саундскейпов == | ||
Line 296: | Line 296: | ||
{{Note|Все имена саундскейпов должны быть уникальны в пределах игры.}} | {{Note|Все имена саундскейпов должны быть уникальны в пределах игры.}} | ||
{{tip | {{tip|Если вы хотите добавить на свою карту пользовательский саундскейп, но еще не сделали его, то должны подумать о создании полноценного [[modification|мода]] (через опцию ''Create a Mod'' в меню ''Source SDK''). Это сохранит ваш пользовательский манифест от любых обновлений саундскейпов в оригинальной игре.}} | ||
== См. также == | == См. также == |
Revision as of 02:04, 5 January 2024
Саундскейпы - это звуковые скрипты, которые создают атмосферу в игре. Их можно использовать на большом количестве карт, требуется только одна сущность, при этом сетевой трафик не генерируется. Саундскейпы состоят из зацикленных и произвольно воспроизводимых звуков, каждый из которых может быть присвоен одному из восьми указанных мест; также задействуется профиль DSP и Звуковой микшер.
Одновременно может работать только один саундскейп, а его отдельные звуки не могут управляться с помощью входов. Когда игрок активирует следующий саундскейп, игра создает плавный переход между звуками от одного к другому.

soundscape_fadetime
.
soundscape_debug
, чтобы понимать, какой саундскейп активен и почему.
Просмотр саундскейпов
Как правило, саундскейпы находятся в папке название игры\scripts\
, и хранятся в нескольких текстовых файлах с именами soundscapes_map name.txt
. (Они запакованы в оригинальные игры Valve, но при запуске карты автоматически переназначаются и распаковываются в эту папку.)
В свою очередь, все они перечислены в файле название игры\scripts\soundscapes_manifest.txt
.
В нижней части этой статьи вы найдете ссылки на саундскейпы отдельных игр, наряду с попытками их описания.
Все имеющиеся саундскейпы вы можете прослушать непосредственно в игре, используя консольную команду PlaySoundscape
. После ввода символов команды, выпадет список саундскейпов, который можно прокручивать стрелочками на клавиатуре.
Конфигурирование саундскейпов
Саундскейпы могут кофигурироваться только через эти энтити:
Есть другие энтити, которые активируют саундскейпы, но только эти две фактически определяют свойства звукового оформления. Другие энтити могут указывать на них и включать удаленно.
Всякий раз, когда энтити активируют саундскейп, воспроизводится позиционный звук в соответствии с заданными свойствами.

<game>/scripts/soundscapes_manifest.txt
. Чтобы лучше понимать записи саундскейпов, см. сюда.Активация саундскейпов
Саундскейпы активируются игроком или программно. Они работают до тех пор, пока не сменится карта или их не отключит другой саундскейп.

soundscape_flush
, чтобы отключить активный саундскейп.
Сущности саундскейпов
Саундскейпы активируются любой из следующих сущностей:
- env_soundscape
- env_soundscape_triggerable (в свою очередь активируется trigger_soundscape.)
- env_soundscape_proxy (в свою очередь активируется env_soundscape или env_soundscape_triggerable.)
Саундскейпы основаны на точке, но включаются, когда игрок входит в сферу их действия и находятся в зоне прямой видимости.
Два исключения из этого правила - env_soundscape_proxy (вызываемый через env_soundscape или env_soundscape_triggerable), и env_soundscape_triggerable (обычно вызываемый trigger_soundscape).
Всегда активен только один саундскейп, но если одновременно срабатывают несколько саундскейпов, то приоритет отдается ближайшему. (Радиус саундскейпа всегда имеет приоритет над брашами trigger_soundscape.)
Обратите внимание, что саундскейп не остановит воспроизведение звука, если игрок выйдет из радиуса его действия или прямой видимости.

Размещение саундскейпов
Во первых, размещайте только необходимое количество саундскейпов. Прослушав несколько саундскейпов, выберите основной. Затем, разместите второстепенные саундскейпы в контрастирующих локациях (таких как дом, комната с генератором). Убедитесь, что каждая локация с локализованными звуковыми эффектами имеет свой мастер-саундскейп, привязанный к соответствующим целям.
После того, как вы составили общий план карты, можете добавлять сущности, вызывающие саундскейпы, и создавать места, где саундскейпы будут плавно 'переходить' от одного к другому. В большинстве случаев, вы будете блокировать все выходы из контрастирующих локаций с помощью триггеров, которые первыми запускают саундскейпы. В принципе, цель здесь - предвидеть перемещение игроков на карте, и блокировать каждую область, в которой активируется свой саундскейп.
После того, как всё организовано, вы сможете специализировать ваши саундскейпы/триггеры так, чтобы они включались сложным образом (например, отвечали на события в игре).
Пользовательские саундскейпы
Создание
Скрипты саундскейпов весьма похожи на звуковые скрипты, но по сути они совершенно разные.
Саундскейпы следуют собственным правилам, и помещаются в текстовых файлах, которые отделены от обычных файлов звуковых скриптов. Типичный файл саундскейпа может называться soundscape_mall.txt
, и содержать от 5-30 различных саундскейпов, которые имеют такой формат:
<name> { <rule> { <keyvalue> ... } ... }
Общие ключевые значения
wave <string>
- Путь и имя проигрываемого звука, вроде
game\sound\
. volume <normal>
- 1 - полная громкость, 0 - тишина.
pitch <integer>
- Высота звука в процентах. +/-30 - полезный диапазон.
position <0-7>
- Одно из восьми мест в мире (задаётся рисующим карту), откуда исходит звук.
position random
- Как и выше, но звук исходит из произвольного места относительно игрока.
attenuation <float>
- Скорость затухания звуков по мере удаления камеры от них. Соответствует только указанной
position
(позиции). Template:Todo:ru soundlevel <string>
- Может использоваться вместо
attenuation
(затухания). Допускается одно из предварительно заданных движком значений.
Случайные значения
Некоторые правила допускают 'верхнее' и 'нижнее' значение параметров. Например:
"pitch" "80,120"
Всякий раз при выполнении правила, будет браться случайное значение из заданного диапазона.
Правила
playlooping
Проигрывает звук без перерыва. Не допускает случайных значений.

"playlooping" { "volume" "0.98" "pitch" "110" "soundlevel" "SNDLVL_85dB" "position" "0" "wave" "ambient/swamps/water_Lap_loop_st.wav" }
playrandom
Звук проигрывается по истечении заданных секунд. Допускает случайные значения
Playrandom требует, чтобы все wave
KVs были внутри rndwave
(даже только один). Каждый раз при выполнении правила будет выбираться случайное значение.
"playrandom" { "time" "1,4" "volume" "0.4,1" "pitch" "90,105" "soundlevel" "SNDLVL_85dB" "position" "0" "rndwave" { "wave" "ambient/wind/wind_med1.wav" "wave" "ambient/wind/wind_hit1.wav" } }
playsoundscape
Воспроизводит весь саундскейп. Игнорирует 'субскейпные' пересеты DSP.
name
- Имя воспроизводимого саундскейпа.
position <int>
- Смещает индекс каждой позиции субскейпа. Template:Todo:ru
positionoverride <int>
- Включает все позиционные звуки в субскейпе, чтобы они исходили из одного места.
ambientpositionoverride <int>
- Включает все непозиционные (т.е. окружающие) звуки в субскейпе, чтобы они исходили из одного места.
"SubScape" { "playsoundscape" { "name" "GenericIndoor" // Overall sub-scape volume to 50% "volume" "0.5" // Emit all positioned sounds from position 0 "positionoverride" "0" // Emit all ambient sounds from position 1 "ambientpositionoverride" "1" } }
dsp
Переопределяет текущий пресет DSP (который иначе будет получен из ближайших материалов $surfaceprop).
Список значений DSP в scripts\dsp_presets.txt
. Возможно, вам потребуется извлечь его с помощью GCFScape. Для просмотра пресета DSP, отправляйте в консоль room_type <int>
.


dsp_volume
.// Отключить DSP и окружающие звуки "Empty" { "dsp" "0" "dsp_volume" "1" }
soundmixer
Выбирает пользовательский звуковой микшер. Саундмикшеры управляют приоритетом и громкостью групп звуков; создать новые - в scripts\soundmixers.txt
(В качестве шаблона ВСЕГДА используйте Default_Mix).
"quiet" { "soundmixer" "Citadel_Dialog_Only" ... }
Пример
"swamp.water.slow" { "dsp" "1" "playlooping" { "volume" "0.98" "pitch" "110" "soundlevel" "SNDLVL_85dB" "position" "0" "wave" "ambient/swamps/water_Lap_loop_st.wav" } "playrandom" { "time" "1,4" "volume" "0.4,1" "pitch" "90,105" "soundlevel" "SNDLVL_85dB" "position" "1" "rndwave" { "wave" "ambient/wind/wind_med1.wav" "wave" "ambient/wind/wind_hit1.wav" } } }
Зацикливание MP3-файлов E.G.
//////////// Звуки птиц (зацикленный mp3-файл от gtamike_TSGK) ////////////
//////////// 2 .mp3-файла одинаковы, но отличаются по именам ////////////
//////////// Длина MP3-звука 3.29 минуты = 3 X 60 + 29 = 209 секунд ////////////
// mp3_loop
"mp3_loop"
{
"dsp" "1"
"playlooping"
{
"volume" "1.0"
"pitch" "100"
"soundlevel" "SNDLVL_150dB"
"wave" "loop_mp3_soundscape/outside_1MB_20KB_part_1.mp3"
}
"playrandom"
{
"time" "209"
"volume" "1.0"
"pitch" "100"
"soundlevel" "SNDLVL_150dB"
"rndwave"
{
"wave" "loop_mp3_soundscape/outside_1MB_20KB_part_1.mp3"
"wave" "loop_mp3_soundscape/outside_1MB_20KB_part_2.mp3"
}
}
}
Сохранение и работа с пользовательскими саундскейпами
Для поиска файлов саундскейпов движок использует файл soundscapes_manifest.txt
.
Он будет искать этот манифест (и типовые саундскейпы) в папке scripts\
при запуске карты. Где находится эта папка (и корневой каталог пользовательских саундскейпов), зависит от того, является ли игра модом (создается через Create a Mod), или оригинальной игрой Valve:
- Если это мод, движок будет искать в его корневой папке.
- Если это оригинальная игра Valve, движок будет искать в папке
аббревиатура игры\
. (Например, в случае с Half-Life 2: Episode 1, движок будет искать манифест в папкеSteam\SteamApps\пользователь\half-life 2 episode one\episodic\scripts\
.) В этом случае папкаscripts\
должна быть создана в ручную, и все пользовательскиеsoundscapes_manifest.txt
находясь здесь, будут переопределять оригинальный файл.
Чтобы прописать в манифест новый саундскейп, просто добавьте строку
"файл" "местоположение и имя файла"
в фигурных скобках.
Обычно, местоположение и имя файла будут "scripts/soundscapes_имя пользовательской карты.txt".


См. также
|