Ru/Soundscape: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
m ({{Note}} instead of {{Note:ru}})
 
(13 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{lang|Soundscape|title=Саундскейп}}
{{LanguageBar|title = Звуковой ландшафт}}
<!-- Add the categories to the main page, not here. Some template, such as {{This is a}}, and all Table templates should be placed to the main page. -->


'''Саундскейпы''' - это звуковые скрипты, которые создают атмосферу в игре. Их можно использовать на большом количестве карт, требуется только одна сущность, при этом сетевой трафик не генерируется.   
'''Звуковой ландшафт''' (англ. ''soundscape'') — это звуковые скрипты, которые создают атмосферу в игре. Их можно использовать на большом количестве карт, требуется только один объект мира, при этом сетевой трафик не генерируется.   
Саундскейпы состоят из зацикленных и произвольно воспроизводимых звуков, каждый из которых может быть присвоен одному из восьми указанных мест; также задействуется профиль [[DSP:ru|DSP]] и Звуковой микшер.
Звуковое окружение состоит из зацикленных и произвольно воспроизводимых звуков, каждый из которых может быть присвоен одному из восьми указанных мест; также задействуется профиль {{L|DSP}} и Звуковой микшер.


Одновременно может работать только один саундскейп, а его отдельные звуки не могут управляться с помощью входов. Когда игрок активирует следующий саундскейп, игра создает плавный переход между звуками от одного к другому.
Одновременно может работать только одно звуковое окружение, а его отдельные звуки не могут управляться с помощью входов. Когда игрок активирует следующее звуковое окружение, игра создает плавный переход между звуками от одного к другому.


{{tip:ru|Время перехода между звуками задается [[Convar:ru|консольной переменной]] (convar) <code>soundscape_fadetime</code>.}}
{{tip|Время перехода между звуками задается {{L|ConVar|консольной переменной}} (convar) <code>soundscape_fadetime</code>.}}


{{tip:ru|Используйте переменную [[Convar:ru|convar]] <code>soundscape_debug</code>, чтобы понимать, какой саундскейп активен и почему.}}
{{tip|Используйте переменную {{L|ConVar|convar}} <code>soundscape_debug</code>, чтобы понимать, какое звуковое окружение активно и почему.}}


{{Note|Чтобы воспроизводиться циклически, звуковые файлы должны иметь соответствующую метку петли. См. [[Looping a Sound:ru|Зацикливание звука]].}}
{{Note|Чтобы воспроизводиться циклически, звуковые файлы должны иметь соответствующую метку цикла. См. {{L|Looping a sound|Зацикливание звука}}.}}




== Просмотр саундскейпов ==
== Просмотр звукового окружения ==


Как правило, саундскейпы находятся в папке  <code>''название игры''\scripts\</code>, и хранятся в нескольких текстовых файлах с именами <code>soundscapes_''map name''.txt</code>. (Они запакованы в оригинальные игры Valve, но при запуске карты автоматически переназначаются и распаковываются в эту папку.)
Как правило, скрипты звукового окружения находятся в папке  <code>''название игры''\scripts\</code>, и хранятся в нескольких текстовых файлах с именами <code>soundscapes_''map name''.txt</code>. (Они запакованы в оригинальные игры Valve, но при запуске карты автоматически переназначаются и распаковываются в эту папку.)


В свою очередь, все они перечислены в файле <code>''название игры''\scripts\soundscapes_manifest.txt</code>.
В свою очередь, все они перечислены в файле <code>''название игры''\scripts\soundscapes_manifest.txt</code>.


В нижней части этой статьи вы найдете ссылки на саундскейпы отдельных игр, наряду с попытками их описания.
В нижней части этой статьи Вы найдёте ссылки на звуковые окружения отдельных игр, наряду с попытками их описания.


Все имеющиеся саундскейпы вы можете прослушать непосредственно в игре, используя консольную команду <code>PlaySoundscape</code>. После ввода символов команды, выпадет список саундскейпов, который можно прокручивать стрелочками на клавиатуре.
Все имеющиеся звуковые окружения Вы можете прослушать непосредственно в игре, используя консольную команду <code>PlaySoundscape</code>. После ввода символов команды, выпадет список скриптов звукового окружения, который можно прокручивать стрелочками на клавиатуре.


== Конфигурирование саундскейпов ==
== Настройка звукового окружения ==


Саундскейпы могут кофигурироваться только через эти энтити:
Звуковое окружение может настраиваться только через эти объекты мира:
*[[env_soundscape]]
*{{L|env_soundscape}}
*[[env_soundscape_triggerable]]
*{{L|env_soundscape_triggerable}}
Есть другие энтити, которые активируют саундскейпы, но только эти две фактически определяют свойства звукового оформления. Другие энтити могут указывать на них и включать удаленно.
Есть другие объекты мира, которые активируют звуковое окружение, но только эти два фактически определяют свойства звукового окружения. Другие объекты мира могут указывать на них и включать дистанционно.
Всякий раз, когда энтити активируют саундскейп, воспроизводится позиционный звук в соответствии с заданными свойствами. {{tip:ru| Многие саундскейпы задают позиционные звуки (исходящие из определенной точки), так что неплохо заглядывать в записи саундскейпов, чтобы получить представление о том, что и как можно сделать. Большинство записей находятся в текстовых файлах, список которых в файле <code><game>/scripts/soundscapes_manifest.txt</code>. Чтобы лучше понимать записи саундскейпов, [[Soundscape#Creating_Soundscapes|см. сюда]].}}
Всякий раз, когда объекты активируют звуковое окружение, воспроизводится позиционный звук в соответствии с заданными свойствами. {{tip| Многие звуковые окружения задают позиционные звуки (исходящие из определенной точки), так что неплохо заглядывать в записи скрипта звукового окружения, чтобы получить представление о том, что и как можно сделать. Большинство записей находятся в текстовых файлах, список которых в файле <code><game>/scripts/soundscapes_manifest.txt</code>. Чтобы лучше понимать записи скриптов звукового окружения, [[Soundscape#Creating_Soundscapes|Создание звукового окружения]].}}


== Активация саундскейпов ==
== Активация звукового окружения ==


Саундскейпы активируются игроком или программно. Они работают до тех пор, пока не сменится карта или их не отключит другой саундскейп. {{tip:ru|Используйте консольную команду <code>soundscape_flush</code>, чтобы отключить активный саундскейп.}}
Звуковые окружения активируются игроком или программно. Они работают до тех пор, пока не сменится карта или их не отключит другое звуковое окружение. {{tip|Используйте консольную команду <code>soundscape_flush</code>, чтобы отключить активное звуковое окружение.}}




=== Сущности саундскейпов ===
=== Объекты звукового окружения ===


Саундскейпы активируются любой из следующих сущностей:
Звуковое окружение активируется любым из следующих объектов мира:


*[[env_soundscape]]
*{{L|env_soundscape}}
*[[env_soundscape_triggerable]] (в свою очередь активируется [[trigger_soundscape]].)
*{{L|env_soundscape_triggerable}} (в свою очередь активируется {{L|trigger_soundscape}}.)
*[[env_soundscape_proxy]] (в свою очередь активируется [[env_soundscape]] или [[env_soundscape_triggerable]].)
*{{L|env_soundscape_proxy}} (в свою очередь активируется {{L|env_soundscape}} или {{L|env_soundscape_triggerable}}.)


Саундскейпы [[point_entities|основаны на точке]], но включаются, когда игрок входит в сферу их действия и находятся в зоне [[line of sight|прямой видимости]].
Звуковое окружение является {{L|point_entities|точечным объектом мира}}, но включаются, когда игровой персонаж приближается к дальности их действия, находясь в области {{L|line of sight|прямой видимости}}.


Два исключения из этого правила - [[env_soundscape_proxy]] (вызываемый через [[env_soundscape]] или [[env_soundscape_triggerable]]), и [[env_soundscape_triggerable]] (обычно вызываемый [[trigger_soundscape]]).
Два исключения из этого правила - {{L|env_soundscape_proxy}} (вызываемый через {{L|env_soundscape}} или {{L|env_soundscape_triggerable}}), и {{L|env_soundscape_triggerable}} (обычно вызываемый {{L|trigger_soundscape}}).


Всегда активен только один саундскейп, но если одновременно срабатывают несколько саундскейпов, то приоритет отдается ближайшему. (Радиус саундскейпа всегда имеет приоритет над брашами [[trigger_soundscape]].)
Всегда активно только одно звукове окружение, но если одновременно срабатывают несколько звуковых окружений, то приоритет отдается ближайшему. (Радиус звукового окружения всегда имеет приоритет над обектами {{L|trigger_soundscape}}.)


Обратите внимание, что саундскейп ''не'' остановит воспроизведение звука, если игрок выйдет из радиуса его действия или [[line of sight|прямой видимости]].
Обратите внимание, что звуковое окружение ''не'' прекращает воспроизведение звука, если игровой персонаж выйдет из радиуса его действия или {{L|line of sight|прямой видимости}}.




{{tip:ru|Используйте [[convar|консольную переменную]] [[soundscape_debug]], чтобы понять, какая сущность активна и почему.}}
{{tip|Используйте {{L|convar|консольную переменную}} {{L|soundscape_debug}}, чтобы понять, какой объект активен и почему.}}


== Размещение саундскейпов ==
== Размещение звукового окружения ==


Во первых, размещайте только необходимое количество саундскейпов. Прослушав несколько саундскейпов, выберите основной. Затем, разместите второстепенные саундскейпы в контрастирующих локациях (таких как дом, комната с генератором). Убедитесь, что каждая локация с локализованными звуковыми эффектами имеет свой мастер-саундскейп, привязанный к соответствующим целям.   
Во первых, используйте только необходимое количество объектов звукового окружения. Прослушав несколько звуковых окружений, выберите основное. Затем, разместите второстепенные звуковый окружения в контрастирующих локациях (таких как дом, комната с генератором). Убедитесь, что каждая локация с локализованными звуковыми эффектами имеет своё основное звуковое окружение, привязанное к соответствующим целям.   


После того, как вы составили общий план карты, можете добавлять сущности, вызывающие саундскейпы, и создавать места, где саундскейпы будут плавно 'переходить' от одного к другому. В большинстве случаев, вы будете блокировать все выходы из контрастирующих локаций с помощью триггеров, которые первыми запускают саундскейпы. В принципе, цель здесь - предвидеть перемещение игроков на карте, и блокировать каждую область, в которой активируется свой саундскейп.
После того, как вы составили общий план карты, можете добавлять сущности, вызывающие саундскейпы, и создавать места, где саундскейпы будут плавно 'переходить' от одного к другому. В большинстве случаев, вы будете блокировать все выходы из контрастирующих локаций с помощью триггеров, которые первыми запускают саундскейпы. В принципе, цель здесь - предвидеть перемещение игроков на карте, и блокировать каждую область, в которой активируется свой саундскейп.
Line 63: Line 64:
После  того, как всё организовано, вы сможете специализировать ваши саундскейпы/триггеры так, чтобы они включались сложным образом (например, отвечали на события в игре).
После  того, как всё организовано, вы сможете специализировать ваши саундскейпы/триггеры так, чтобы они включались сложным образом (например, отвечали на события в игре).


== Пользовательские саундскейпы ==
== Собственные звуковые окружения ==


=== Создание ===
=== Создание ===


Скрипты саундскейпов весьма похожи на [[soundscripts|звуковые скрипты]], но по сути они совершенно разные.
Скрипты звукового окружения весьма похожи на {{L|soundscripts|звуковые скрипты}}, но по сути они совершенно разные.


Саундскейпы следуют собственным правилам, и помещаются в текстовых файлах, которые отделены от обычных файлов звуковых скриптов. Типичный файл саундскейпа может называться <code>soundscape_mall.txt</code>, и содержать от 5-30 различных саундскейпов, которые имеют такой формат:
Для скриптов звукового окружение применяются несколько специфичных правил и они размещаются в текстовых файлах отдельно от обычных файлов звуковых скриптов. Типичный файл скрипта звукового окружения может называться <code>soundscape_mall.txt</code>, и содержать от 5-30 различных саундскейпов, которые имеют такой формат:


  <name>
  <name>
Line 83: Line 84:


=== Общие ключевые значения ===
=== Общие ключевые значения ===
; <code>wave <[[string]]></code>
; <code>wave <{{L|string}}></code>
: Путь и имя проигрываемого звука, вроде <code>game\sound\</code>.
: Путь и имя проигрываемого звука, вроде <code>game\sound\</code>.
; <code>volume <[[normal]]></code>
; <code>volume <{{L|normal}}></code>
: 1 - полная громкость, 0 - тишина.
: 1 - полная громкость, 0 - тишина.
; <code>pitch <[[integer]]></code>
; <code>pitch <{{L|integer}}></code>
: Высота звука в процентах. +/-30 - полезный диапазон.
: Высота звука в процентах. +/-30 - полезный диапазон.
; <code>position <0-7></code>
; <code>position <0-7></code>
Line 93: Line 94:
; <code>position random</code>
; <code>position random</code>
: Как и выше, но звук исходит из произвольного места относительно игрока.
: Как и выше, но звук исходит из произвольного места относительно игрока.
; <code>attenuation <[[float]]></code>
; <code>attenuation <{{L|float}}></code>
: Скорость затухания звуков по мере удаления камеры от них. Соответствует только указанной <code>position</code> (позиции). {{todo:ru|Каковы правила?}}
: Скорость затухания звуков по мере удаления камеры от них. Соответствует только указанной <code>position</code> (позиции). {{todo|Каковы правила?}}
; <code>soundlevel <string></code>
; <code>soundlevel <string></code>
: Может использоваться вместо <code>attenuation</code> (затухания). Допускается [[Soundscripts#SoundLevel|одно из предварительно заданных движком значений]].
: Может использоваться вместо <code>attenuation</code> (затухания). Допускается [[Soundscripts#SoundLevel|одно из предварительно заданных движком значений]].
{{warning:ru|Не забывайте заключать все значения в "кавычки".}}
{{warning|Не забывайте заключать все значения в "кавычки".}}


=== Случайные значения ===
=== Случайные значения ===
Line 110: Line 111:
Проигрывает звук без перерыва. Не допускает случайных значений.
Проигрывает звук без перерыва. Не допускает случайных значений.


{{Note|Звук не будет воспроизводиться циклически, если в файле нет меток петли. См. [[Looping_a_Sound:ru|Зацикливание звука]].}}
{{Note|Звук не будет воспроизводиться циклически, если в файле нет меток петли. См. {{L|Looping a sound|Зацикливание звука}}.}}


  "playlooping"
  "playlooping"
Line 129: Line 130:
Playrandom требует, чтобы все <code>wave</code> KVs были внутри <code>rndwave</code> (даже только один). Каждый раз при выполнении правила будет выбираться случайное значение.
Playrandom требует, чтобы все <code>wave</code> KVs были внутри <code>rndwave</code> (даже только один). Каждый раз при выполнении правила будет выбираться случайное значение.


{{warning:ru|Будьте осторожны и не указывайте зацикленные звуки в группе playrandom, поскольку они не остановятся при активировании другого саундскейпа.}}
{{warning|Будьте осторожны и не указывайте зацикленные звуки в группе playrandom, поскольку они не остановятся при активировании другого саундскейпа.}}


  "playrandom"
  "playrandom"
Line 154: Line 155:
: Имя воспроизводимого саундскейпа.
: Имя воспроизводимого саундскейпа.
; <code>position <int></code>
; <code>position <int></code>
: Смещает индекс каждой позиции субскейпа. {{todo:ru|Что это значит?}}
: Смещает индекс каждой позиции субскейпа. {{todo|Что это значит?}}
; <code>positionoverride <int></code>
; <code>positionoverride <int></code>
: Включает все позиционные звуки в субскейпе, чтобы они исходили из одного места.
: Включает все позиционные звуки в субскейпе, чтобы они исходили из одного места.
Line 179: Line 180:
==== dsp ====
==== dsp ====


Переопределяет текущий пресет [[DSP:ru|DSP]] (который иначе будет получен из ближайших [[material|материалов]] [[$surfaceprop]]).
Переопределяет текущий пресет {{L|DSP}} (который иначе будет получен из ближайших {{L|material|материалов}} {{L|$surfaceprop}}).


Список значений DSP в <code>scripts\dsp_presets.txt</code>. Возможно, вам потребуется извлечь его с помощью [[GCFScape]]. Для просмотра пресета DSP, отправляйте в консоль <code>room_type <[[int]]></code>.
Список значений DSP в <code>scripts\dsp_presets.txt</code>. Возможно, вам потребуется извлечь его с помощью {{L|GCFScape}}. Для просмотра пресета DSP, отправляйте в консоль <code>room_type <{{L|int}}></code>.


{{Note|Будьте осторожны при установке пресетов в саундскейпах, которые могут использоваться в разных местах.}}
{{Note|Будьте осторожны при установке пресетов в саундскейпах, которые могут использоваться в разных местах.}}
Line 274: Line 275:
</syntaxhighlight>
</syntaxhighlight>


{{warning:ru|Mp3-саундскейпы помогут уменьшить размер пользовательской карты, но это не рекомендуется делать. Может случиться, что ПЕРВЫЙ файл в "rndwave" начнет воспроизводиться по истечении половины времени. Тогда придется удвоить значение (в нашем случае 418, но теперь возникнет пауза между повторами). }}
{{warning|Mp3-саундскейпы помогут уменьшить размер пользовательской карты, но это не рекомендуется делать. Может случиться, что ПЕРВЫЙ файл в "rndwave" начнет воспроизводиться по истечении половины времени. Тогда придется удвоить значение (в нашем случае 418, но теперь возникнет пауза между повторами). }}


=== Сохранение и работа с пользовательскими саундскейпами ===
=== Сохранение и работа с собственными звуковым окружением ===


Для поиска файлов саундскейпов движок использует файл <code>soundscapes_manifest.txt</code>.
Для поиска файлов саундскейпов движок использует файл <code>soundscapes_manifest.txt</code>.


Он будет искать этот манифест (и типовые саундскейпы) в папке <code>scripts\</code> при запуске карты. Где находится эта папка (и корневой каталог пользовательских саундскейпов), зависит от того, является ли игра [[modification|модом]] (создается через ''Create a Mod''), или оригинальной игрой Valve:
Он будет искать этот манифест (и типовые саундскейпы) в папке <code>scripts\</code> при запуске карты. Где находится эта папка (и корневой каталог пользовательских саундскейпов), зависит от того, является ли игра {{L|modification|модом}} (создается через ''Create a Mod''), или оригинальной игрой Valve:


* Если это мод, движок будет искать в его корневой папке.
* Если это мод, движок будет искать в его корневой папке.


* Если это оригинальная игра Valve, движок будет искать в папке <code>''аббревиатура игры''\</code>. (Например, в случае с [[Half-Life 2: Episode 1]], движок будет искать манифест в папке <code>Steam\SteamApps\''пользователь''\half-life 2 episode one\episodic\scripts\</code>.) В этом случае папка <code>scripts\</code> должна быть создана в ручную, и все пользовательские <code>soundscapes_manifest.txt</code> находясь здесь, будут переопределять оригинальный файл.
* Если это оригинальная игра Valve, движок будет искать в папке <code>''аббревиатура игры''\</code>. (Например, в случае с {{L|Half-Life 2: Episode 1}}, движок будет искать манифест в папке <code>Steam\SteamApps\''пользователь''\half-life 2 episode one\episodic\scripts\</code>.) В этом случае папка <code>scripts\</code> должна быть создана в ручную, и все пользовательские <code>soundscapes_manifest.txt</code> находясь здесь, будут переопределять оригинальный файл.


Чтобы прописать в манифест новый саундскейп, просто добавьте строку
Чтобы прописать в манифест новый саундскейп, просто добавьте строку
Line 294: Line 295:
Обычно, ''местоположение и имя файла'' будут "scripts/soundscapes_''имя пользовательской карты''.txt".
Обычно, ''местоположение и имя файла'' будут "scripts/soundscapes_''имя пользовательской карты''.txt".


{{Note|Все имена саундскейпов должны быть уникальны в пределах игры.}}
{{Note|Все имена скриптов звукового окружения должны быть уникальны в пределах игры.}}


{{tip:ru|Если вы хотите добавить на свою карту пользовательский саундскейп, но еще не сделали его, то должны подумать о создании полноценного [[modification|мода]] (через опцию ''Create a Mod'' в меню ''Source SDK''). Это сохранит ваш пользовательский манифест от любых обновлений саундскейпов в оригинальной игре.}}
{{tip|Если Вы хотите добавить на свою карту соственное звуковое окружение, но еще не сделали его, то должны подумать о создании полноценного {{L|modification|мода}} (через опцию ''Create a Mod'' в меню ''Source SDK''). Это сохранит ваш пользовательский манифест от любых обновлений звукового окружения в оригинальной игре.}}


== См. также ==
== См. также ==
 
* {{L|env_soundscape}}
* {{soundscape lists|список саудскейпов}}
* [[env_soundscape:ru|env_soundscape]]
* {{en}} [[env_soundscape_proxy]]
* {{en}} [[env_soundscape_proxy]]
* {{en}} [[env_soundscape_triggerable]]
* {{en}} [[env_soundscape_triggerable]]
* {{en}} [[trigger_soundscape]]
* {{en}} [[trigger_soundscape]]
* {{en}} [[Notepad++ VDF languages]]
* {{en}} [[Notepad++ VDF languages]]
{{soundscape lists|список саудскейпов}}




[[Category:Sound System:ru]]
{{ACategory|Sound System}}
[[Category:Level Design:ru]]
{{ACategory|Level Design}}

Latest revision as of 04:39, 3 November 2024

English (en)Español (es)Français (fr)Русский (ru)中文 (zh)Translate (Translate)

Звуковой ландшафт (англ. soundscape) — это звуковые скрипты, которые создают атмосферу в игре. Их можно использовать на большом количестве карт, требуется только один объект мира, при этом сетевой трафик не генерируется. Звуковое окружение состоит из зацикленных и произвольно воспроизводимых звуков, каждый из которых может быть присвоен одному из восьми указанных мест; также задействуется профиль DSP(en) и Звуковой микшер.

Одновременно может работать только одно звуковое окружение, а его отдельные звуки не могут управляться с помощью входов. Когда игрок активирует следующее звуковое окружение, игра создает плавный переход между звуками от одного к другому.

Tip.pngСовет:Время перехода между звуками задается консольной переменной(en) (convar) soundscape_fadetime.
Tip.pngСовет:Используйте переменную convar(en) soundscape_debug, чтобы понимать, какое звуковое окружение активно и почему.
Note.pngПримечание:Чтобы воспроизводиться циклически, звуковые файлы должны иметь соответствующую метку цикла. См. Зацикливание звука(en).


Просмотр звукового окружения

Как правило, скрипты звукового окружения находятся в папке название игры\scripts\, и хранятся в нескольких текстовых файлах с именами soundscapes_map name.txt. (Они запакованы в оригинальные игры Valve, но при запуске карты автоматически переназначаются и распаковываются в эту папку.)

В свою очередь, все они перечислены в файле название игры\scripts\soundscapes_manifest.txt.

В нижней части этой статьи Вы найдёте ссылки на звуковые окружения отдельных игр, наряду с попытками их описания.

Все имеющиеся звуковые окружения Вы можете прослушать непосредственно в игре, используя консольную команду PlaySoundscape. После ввода символов команды, выпадет список скриптов звукового окружения, который можно прокручивать стрелочками на клавиатуре.

Настройка звукового окружения

Звуковое окружение может настраиваться только через эти объекты мира:

Есть другие объекты мира, которые активируют звуковое окружение, но только эти два фактически определяют свойства звукового окружения. Другие объекты мира могут указывать на них и включать дистанционно.

Всякий раз, когда объекты активируют звуковое окружение, воспроизводится позиционный звук в соответствии с заданными свойствами.

Tip.pngСовет: Многие звуковые окружения задают позиционные звуки (исходящие из определенной точки), так что неплохо заглядывать в записи скрипта звукового окружения, чтобы получить представление о том, что и как можно сделать. Большинство записей находятся в текстовых файлах, список которых в файле <game>/scripts/soundscapes_manifest.txt. Чтобы лучше понимать записи скриптов звукового окружения, Создание звукового окружения.

Активация звукового окружения

Звуковые окружения активируются игроком или программно. Они работают до тех пор, пока не сменится карта или их не отключит другое звуковое окружение.

Tip.pngСовет:Используйте консольную команду soundscape_flush, чтобы отключить активное звуковое окружение.


Объекты звукового окружения

Звуковое окружение активируется любым из следующих объектов мира:

Звуковое окружение является точечным объектом мира(en), но включаются, когда игровой персонаж приближается к дальности их действия, находясь в области прямой видимости(en).

Два исключения из этого правила - env_soundscape_proxy(en) (вызываемый через env_soundscape(en) или env_soundscape_triggerable(en)), и env_soundscape_triggerable(en) (обычно вызываемый trigger_soundscape(en)).

Всегда активно только одно звукове окружение, но если одновременно срабатывают несколько звуковых окружений, то приоритет отдается ближайшему. (Радиус звукового окружения всегда имеет приоритет над обектами trigger_soundscape(en).)

Обратите внимание, что звуковое окружение не прекращает воспроизведение звука, если игровой персонаж выйдет из радиуса его действия или прямой видимости(en).


Tip.pngСовет:Используйте консольную переменную(en) soundscape_debug(en), чтобы понять, какой объект активен и почему.

Размещение звукового окружения

Во первых, используйте только необходимое количество объектов звукового окружения. Прослушав несколько звуковых окружений, выберите основное. Затем, разместите второстепенные звуковый окружения в контрастирующих локациях (таких как дом, комната с генератором). Убедитесь, что каждая локация с локализованными звуковыми эффектами имеет своё основное звуковое окружение, привязанное к соответствующим целям.

После того, как вы составили общий план карты, можете добавлять сущности, вызывающие саундскейпы, и создавать места, где саундскейпы будут плавно 'переходить' от одного к другому. В большинстве случаев, вы будете блокировать все выходы из контрастирующих локаций с помощью триггеров, которые первыми запускают саундскейпы. В принципе, цель здесь - предвидеть перемещение игроков на карте, и блокировать каждую область, в которой активируется свой саундскейп.

После того, как всё организовано, вы сможете специализировать ваши саундскейпы/триггеры так, чтобы они включались сложным образом (например, отвечали на события в игре).

Собственные звуковые окружения

Создание

Скрипты звукового окружения весьма похожи на звуковые скрипты(en), но по сути они совершенно разные.

Для скриптов звукового окружение применяются несколько специфичных правил и они размещаются в текстовых файлах отдельно от обычных файлов звуковых скриптов. Типичный файл скрипта звукового окружения может называться soundscape_mall.txt, и содержать от 5-30 различных саундскейпов, которые имеют такой формат:

<name>
{
	<rule>
	{
		<keyvalue>
		...
	}

	...
}

Общие ключевые значения

wave <string(en)>
Путь и имя проигрываемого звука, вроде game\sound\.
volume <normal(en)>
1 - полная громкость, 0 - тишина.
pitch <integer(en)>
Высота звука в процентах. +/-30 - полезный диапазон.
position <0-7>
Одно из восьми мест в мире (задаётся рисующим карту), откуда исходит звук.
position random
Как и выше, но звук исходит из произвольного места относительно игрока.
attenuation <float(en)>
Скорость затухания звуков по мере удаления камеры от них. Соответствует только указанной position (позиции).
Нужно сделать: Каковы правила?
soundlevel <string>
Может использоваться вместо attenuation (затухания). Допускается одно из предварительно заданных движком значений.
Warning.pngПредупреждение:Не забывайте заключать все значения в "кавычки".

Случайные значения

Некоторые правила допускают 'верхнее' и 'нижнее' значение параметров. Например:

"pitch"	"80,120"

Всякий раз при выполнении правила, будет браться случайное значение из заданного диапазона.

Правила

playlooping

Проигрывает звук без перерыва. Не допускает случайных значений.

Note.pngПримечание:Звук не будет воспроизводиться циклически, если в файле нет меток петли. См. Зацикливание звука(en).
"playlooping"
{
	"volume"	"0.98"
	"pitch"		"110"
	"soundlevel"	"SNDLVL_85dB"

	"position"	"0"

	"wave"	"ambient/swamps/water_Lap_loop_st.wav"
}

playrandom

Звук проигрывается по истечении заданных секунд. Допускает случайные значения

Playrandom требует, чтобы все wave KVs были внутри rndwave (даже только один). Каждый раз при выполнении правила будет выбираться случайное значение.

Warning.pngПредупреждение:Будьте осторожны и не указывайте зацикленные звуки в группе playrandom, поскольку они не остановятся при активировании другого саундскейпа.
"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>
Смещает индекс каждой позиции субскейпа.
Нужно сделать: Что это значит?
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(en) (который иначе будет получен из ближайших материалов(en) $surfaceprop(en)).

Список значений DSP в scripts\dsp_presets.txt. Возможно, вам потребуется извлечь его с помощью GCFScape(en). Для просмотра пресета DSP, отправляйте в консоль room_type <int(en)>.

Note.pngПримечание:Будьте осторожны при установке пресетов в саундскейпах, которые могут использоваться в разных местах.
Note.pngПримечание:Для определения громкости эффекта dsp вы также можете использовать 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"
		}
	}
}
Warning.pngПредупреждение:Mp3-саундскейпы помогут уменьшить размер пользовательской карты, но это не рекомендуется делать. Может случиться, что ПЕРВЫЙ файл в "rndwave" начнет воспроизводиться по истечении половины времени. Тогда придется удвоить значение (в нашем случае 418, но теперь возникнет пауза между повторами).

Сохранение и работа с собственными звуковым окружением

Для поиска файлов саундскейпов движок использует файл soundscapes_manifest.txt.

Он будет искать этот манифест (и типовые саундскейпы) в папке scripts\ при запуске карты. Где находится эта папка (и корневой каталог пользовательских саундскейпов), зависит от того, является ли игра модом(en) (создается через Create a Mod), или оригинальной игрой Valve:

  • Если это мод, движок будет искать в его корневой папке.
  • Если это оригинальная игра Valve, движок будет искать в папке аббревиатура игры\. (Например, в случае с Half-Life 2: Episode 1(en), движок будет искать манифест в папке Steam\SteamApps\пользователь\half-life 2 episode one\episodic\scripts\.) В этом случае папка scripts\ должна быть создана в ручную, и все пользовательские soundscapes_manifest.txt находясь здесь, будут переопределять оригинальный файл.

Чтобы прописать в манифест новый саундскейп, просто добавьте строку

"файл" "местоположение и имя файла"

в фигурных скобках.

Обычно, местоположение и имя файла будут "scripts/soundscapes_имя пользовательской карты.txt".

Note.pngПримечание:Все имена скриптов звукового окружения должны быть уникальны в пределах игры.
Tip.pngСовет:Если Вы хотите добавить на свою карту соственное звуковое окружение, но еще не сделали его, то должны подумать о создании полноценного мода(en) (через опцию Create a Mod в меню Source SDK). Это сохранит ваш пользовательский манифест от любых обновлений звукового окружения в оригинальной игре.

См. также