Ru/Soundscape: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
mNo edit summary
 
(71 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar|title = Звуковой ландшафт}}
|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. -->
|en=Soundscapes
}}


A soundscape is a type of audio script used to add ambience to maps. It can be used in any number of maps, requires only a single entity to implement, and does not generate any network trafficSoundscapes use a mixture of looped and randomly played sounds, all of which have the option to be emitted from one of eight  assignable target locations; [[DSP]] and [[Soundmixer]] profiles can also be enforced.
'''Звуковой ландшафт''' (англ. ''soundscape'') — это звуковые скрипты, которые создают атмосферу в игре. Их можно использовать на большом количестве карт, требуется только один объект мира, при этом сетевой трафик не генерируется.   
Звуковое окружение состоит из зацикленных и произвольно воспроизводимых звуков, каждый из которых может быть присвоен одному из восьми указанных мест; также задействуется профиль {{L|DSP}} и Звуковой микшер.


Only one soundscape can be active at any given time, and the individual sounds used within it cannot be controlled via inputs. When another soundscape is activated, the game will cross fade from one to the other.
Одновременно может работать только одно звуковое окружение, а его отдельные звуки не могут управляться с помощью входов. Когда игрок активирует следующее звуковое окружение, игра создает плавный переход между звуками от одного к другому.


{{tip|Cross fade time is defined by the [[convar]] <code>soundscape_fadetime</code>.}}
{{tip|Время перехода между звуками задается {{L|ConVar|консольной переменной}} (convar) <code>soundscape_fadetime</code>.}}


{{tip|Use the [[convar]] <code>soundscape_debug</code> to examine which soundscape is active and why.}}
{{tip|Используйте переменную {{L|ConVar|convar}} <code>soundscape_debug</code>, чтобы понимать, какое звуковое окружение активно и почему.}}


{{note|Sound files will not properly loop unless they have a cue point. See [[Looping a Sound]].}}
{{Note|Чтобы воспроизводиться циклически, звуковые файлы должны иметь соответствующую метку цикла. См. {{L|Looping a sound|Зацикливание звука}}.}}




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


The soundscapes are typically located in the <code>''game abbreviation''\scripts\</code> folder of a game, stored across multiple text files named <code>soundscapes_''map name''.txt</code>. (They are packed away in the original Valve games, but are automatically overridden on map start by any unpacked files within that folder.)
Как правило, скрипты звукового окружения находятся в папке  <code>''название игры''\scripts\</code>, и хранятся в нескольких текстовых файлах с именами <code>soundscapes_''map name''.txt</code>. (Они запакованы в оригинальные игры Valve, но при запуске карты автоматически переназначаются и распаковываются в эту папку.)


These files are in turn all listed within the <code>''game abbreviation''\scripts\soundscapes_manifest.txt</code> file.
В свою очередь, все они перечислены в файле <code>''название игры''\scripts\soundscapes_manifest.txt</code>.


At the bottom of this article you will find links to lists of soundscapes for individual games, along with attempts at describing them.
В нижней части этой статьи Вы найдёте ссылки на звуковые окружения отдельных игр, наряду с попытками их описания.


You can browse through all the available soundscapes in a current game first hand, using the in-game console command <code>PlaySoundscape</code>. After typing in the first letter as the commands parameter, the auto-complete feature will list them as suggestions. You can then scroll through this list using the arrow keys.
Все имеющиеся звуковые окружения Вы можете прослушать непосредственно в игре, используя консольную команду <code>PlaySoundscape</code>. После ввода символов команды, выпадет список скриптов звукового окружения, который можно прокручивать стрелочками на клавиатуре.


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


Soundscapes can only be configured through these entities:
Звуковое окружение может настраиваться только через эти объекты мира:
*[[env_soundscape]]
*{{L|env_soundscape}}
*[[env_soundscape_triggerable]]
*{{L|env_soundscape_triggerable}}
There are other entities which can activate the soundscape, but these are the only entities which actually define soundscape properties. The other entities will point to these and use them as masters to remotely trigger the soundscape.
Есть другие объекты мира, которые активируют звуковое окружение, но только эти два фактически определяют свойства звукового окружения. Другие объекты мира могут указывать на них и включать дистанционно.
Whenever these entities activate a soundscape, any positional audio will originate from the targets defined under their properties.{{tip| Many soundscapes define positions for sounds to emanate from, so it is always a good idea to  peek into the soundscape entry and get a feel for what you can do. Most entries are found in the text files listed in the <code><game>/scripts/soundscapes_manifest.txt</code> file. To better understand soundscape entries, [[Soundscape#Creating_Soundscapes|see below]].}}
Всякий раз, когда объекты активируют звуковое окружение, воспроизводится позиционный звук в соответствии с заданными свойствами. {{tip| Многие звуковые окружения задают позиционные звуки (исходящие из определенной точки), так что неплохо заглядывать в записи скрипта звукового окружения, чтобы получить представление о том, что и как можно сделать. Большинство записей находятся в текстовых файлах, список которых в файле <code><game>/scripts/soundscapes_manifest.txt</code>. Чтобы лучше понимать записи скриптов звукового окружения, [[Soundscape#Creating_Soundscapes|Создание звукового окружения]].}}


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


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


Any soundscape entity that is enabled and becomes triggered by the player, activates its - or its master's - specified soundscape. Soundscapes remain active until a map change occurs, or another soundscape is activated, even if the entity that originally activated it becomes disabled. {{tip|The <code>soundscape_flush</code> console command will cancel an active soundscape.}}


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


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


Soundscapes can be activated by any of the following entities:
*{{L|env_soundscape}}
*{{L|env_soundscape_triggerable}} (в свою очередь активируется {{L|trigger_soundscape}}.)
*{{L|env_soundscape_proxy}} (в свою очередь активируется {{L|env_soundscape}} или {{L|env_soundscape_triggerable}}.)


*[[env_soundscape]]
Звуковое окружение является {{L|point_entities|точечным объектом мира}}, но включаются, когда игровой персонаж приближается к дальности их действия, находясь в области {{L|line of sight|прямой видимости}}.
*[[env_soundscape_triggerable]] (in turn typically activated by a [[trigger_soundscape]].)
*[[env_soundscape_proxy]] (in turn activated by a [[env_soundscape]] or an [[env_soundscape_triggerable]].)


Soundscape entities are themselves [[point_entities|point-based]], but trigger when the player enters their specified radius and the entity has a [[line of sight]] to him.
Два исключения из этого правила - {{L|env_soundscape_proxy}} (вызываемый через {{L|env_soundscape}} или {{L|env_soundscape_triggerable}}), и {{L|env_soundscape_triggerable}} (обычно вызываемый {{L|trigger_soundscape}}).


The two exceptions to this are [[env_soundscape_proxy]] (that is triggered through an [[env_soundscape]] or an [[env_soundscape_triggerable]]), and [[env_soundscape_triggerable]] (that is typically set to also be triggered by a [[trigger_soundscape]]).
Всегда активно только одно звукове окружение, но если одновременно срабатывают несколько звуковых окружений, то приоритет отдается ближайшему. (Радиус звукового окружения всегда имеет приоритет над обектами {{L|trigger_soundscape}}.)


As only one soundscape can be active at any one time, if one or more soundscape entities are triggered simultaneously, the closest one is given precedence. (The radius of soundscape entities always take precedence over [[trigger_soundscape]] brushes.)
Обратите внимание, что звуковое окружение ''не'' прекращает воспроизведение звука, если игровой персонаж выйдет из радиуса его действия или {{L|line of sight|прямой видимости}}.


Note that a soundscape will ''not'' stop playing just because a player exits its radius or it loses [[line of sight]] to him.


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


{{tip|Use the [[convar]] [[soundscape_debug]] to examine which entity is active and why.}}
== Размещение звукового окружения ==


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


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


At first, a good rule is to place only as many soundscapes as you absolutely need. Try to choose from a similar set of soundscapes to be played, and then pick one that will be your primary soundscape. After that, place your secondary soundscapes at every contrasting location (e.g. house, generator room). Make sure that every location with localized sound effects has its own master soundscape that is tied to the proper targets. 
После  того, как всё организовано, вы сможете специализировать ваши саундскейпы/триггеры так, чтобы они включались сложным образом (например, отвечали на события в игре).


Once you've gotten a general idea of where your soundscapes will be located, you'll then be able to start adding/configuring the entities that will trigger your soundscapes and create a kind of ''blueprint'' for how soundscapes will flow from one to another. In many cases, you'll be placing entities that block off all exits from your contrasting locations with triggers to your primary soundscapes. Basically, the goal is to anticipate the player's movement throughout the map, and to block off each area in such a way that it will always have the proper soundscape activated.
== Собственные звуковые окружения ==


After your flow is organized, you'll be able to specialize your soundscapes/triggers to behave in complex ways (e.g responding to game events).
=== Создание ===


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


== Custom Soundscapes ==
Для скриптов звукового окружение применяются несколько специфичных правил и они размещаются в текстовых файлах отдельно от обычных файлов звуковых скриптов. Типичный файл скрипта звукового окружения может называться <code>soundscape_mall.txt</code>, и содержать от 5-30 различных саундскейпов, которые имеют такой формат:
 
=== Creation ===
 
Soundscape scripts are very similar to [[soundscripts]], but still remain entirely different things.
 
Soundscapes require a few of their own rules, and are placed in plain text files that are separate from normal soundscript files. A typical soundscape file might be named <code>soundscape_mall.txt</code> and may contain anywhere from 5-30 different soundscapes that take on the following format...


  <name>
  <name>
Line 87: Line 83:
  }
  }


=== Common keyvalues ===
=== Общие ключевые значения ===
; <code>wave <[[string]]></code>
; <code>wave <{{L|string}}></code>
: The path and filename of the sound to play, relative to <code>game\sound\</code>.
: Путь и имя проигрываемого звука, вроде <code>game\sound\</code>.
; <code>volume <[[normal]]></code>
; <code>volume <{{L|normal}}></code>
: 1 is full power, 0 is silent.
: 1 - полная громкость, 0 - тишина.
; <code>pitch <[[integer]]></code>
; <code>pitch <{{L|integer}}></code>
: Percentage value. +/-30 is the useful range.
: Высота звука в процентах. +/-30 - полезный диапазон.
; <code>position <0-7></code>
; <code>position <0-7></code>
: One of eight locations in the world (defined by the mapper) from which a sound can be emitted.
: Одно из восьми мест в мире (задаётся рисующим карту), откуда исходит звук.
; <code>position random</code>
; <code>position random</code>
: As above, but the sound emits from a completely random location near the player.
: Как и выше, но звук исходит из произвольного места относительно игрока.
; <code>attenuation <[[float]]></code>
; <code>attenuation <{{L|float}}></code>
: How quickly the sound's volume drops as the camera moves away from it. Only relevant with a <code>position</code> specified. {{todo|What are the rules?}}
: Скорость затухания звуков по мере удаления камеры от них. Соответствует только указанной <code>position</code> (позиции). {{todo|Каковы правила?}}
; <code>soundlevel <string></code>
; <code>soundlevel <string></code>
: Can be used instead of <code>attenuation</code>. Accepts [[Soundscripts#SoundLevel|one of the engine's pre-set values]].
: Может использоваться вместо <code>attenuation</code> (затухания). Допускается [[Soundscripts#SoundLevel|одно из предварительно заданных движком значений]].
{{warning|Remember to enclose any values with space characters in "quote marks".}}
{{warning|Не забывайте заключать все значения в "кавычки".}}


=== Randomized values ===
=== Случайные значения ===
Some rules accept 'upper' and 'lower' parameter values. For example:
Некоторые правила допускают 'верхнее' и 'нижнее' значение параметров. Например:
  "pitch" "80,120"
  "pitch" "80,120"
Whenever the rule is executed the value will be randomly selected within the given range.  
Всякий раз при выполнении правила, будет браться случайное значение из заданного диапазона.


=== Rules ===
=== Правила ===


==== playlooping ====
==== playlooping ====


Plays a sound constantly. Does not allow random values.
Проигрывает звук без перерыва. Не допускает случайных значений.


{{note|Sound files will not properly loop unless they have a cue point. See [[Looping a Sound]].}}
{{Note|Звук не будет воспроизводиться циклически, если в файле нет меток петли. См. {{L|Looping a sound|Зацикливание звука}}.}}


  "playlooping"
  "playlooping"
Line 130: Line 126:
==== playrandom ====
==== playrandom ====


Plays a sound after given number of seconds. Allows random values.
Звук проигрывается по истечении заданных секунд. Допускает случайные значения


Playrandom requires all <code>wave</code> KVs to be inside <code>rndwave</code> (even if there is only one). A random selection will be made every time the rule is executed.
Playrandom требует, чтобы все <code>wave</code> KVs были внутри <code>rndwave</code> (даже только один). Каждый раз при выполнении правила будет выбираться случайное значение.


{{warning|Be careful not to specify any looping sounds in a playrandom group as they may not stop even if a different soundscape is activated.}}
{{warning|Будьте осторожны и не указывайте зацикленные звуки в группе playrandom, поскольку они не остановятся при активировании другого саундскейпа.}}


  "playrandom"
  "playrandom"
Line 154: Line 150:
==== playsoundscape ====
==== playsoundscape ====


Plays a complete soundscape. DSP presets in the 'sub-scape' are ignored.
Воспроизводит весь саундскейп. Игнорирует 'субскейпные' пересеты DSP.


; <code>name</code>
; <code>name</code>
: Name of the soundscape to play.
: Имя воспроизводимого саундскейпа.
; <code>position <int></code>
; <code>position <int></code>
: Offsets each position index of the sub-scape. {{todo|What does that mean?}}
: Смещает индекс каждой позиции субскейпа. {{todo|Что это значит?}}
; <code>positionoverride <int></code>
; <code>positionoverride <int></code>
: Forces all positioned sounds in the sub-scape to emit from one location.
: Включает все позиционные звуки в субскейпе, чтобы они исходили из одного места.
; <code>ambientpositionoverride <int></code>
; <code>ambientpositionoverride <int></code>
: Forces all unpositioned (i.e. ambient) sounds in the sub-scape to emit from one location.
: Включает все непозиционные (т.е. окружающие) звуки в субскейпе, чтобы они исходили из одного места.


  "SubScape"
  "SubScape"
Line 184: Line 180:
==== dsp ====
==== dsp ====


Overrides the current [[DSP]] preset (which would otherwise be derived from the [[$surfaceprop]] of nearby [[material]]s).
Переопределяет текущий пресет {{L|DSP}} (который иначе будет получен из ближайших {{L|material|материалов}} {{L|$surfaceprop}}).


For a list of values, open <code>scripts\dsp_presets.txt</code>. You may need to extract this from the relevant engine GCF with [[GCFScape]]. To preview a DSP preset, submit <code>room_type <[[int]]></code> to the console.
Список значений DSP в <code>scripts\dsp_presets.txt</code>. Возможно, вам потребуется извлечь его с помощью {{L|GCFScape}}. Для просмотра пресета DSP, отправляйте в консоль <code>room_type <{{L|int}}></code>.


{{note|Be careful when setting presets in soundscapes that could be used in many different locations.}}
{{Note|Будьте осторожны при установке пресетов в саундскейпах, которые могут использоваться в разных местах.}}
{{note|You can also use <code>dsp_volume</code> to define how loud the dsp effect is.}}
{{Note|Для определения громкости эффекта dsp вы также можете использовать <code>dsp_volume</code>.}}


  // Disable DSP and play no ambient sounds
  // Отключить DSP и окружающие звуки
  "Empty"
  "Empty"
  {  
  {  
Line 200: Line 196:
==== soundmixer ====
==== soundmixer ====


Selects a custom [[soundmixer]]. Soundmixers manage the priority and volume of groups of sounds; create new ones in <code>scripts\soundmixers.txt</code>  (ALWAYS use Default_Mix as a template).
Выбирает пользовательский звуковой микшер. Саундмикшеры управляют приоритетом и громкостью групп звуков; создать новые - в <code>scripts\soundmixers.txt</code>  (В качестве шаблона ВСЕГДА используйте Default_Mix).


  "quiet"
  "quiet"
Line 209: Line 205:
  }
  }


===Example===
===Пример===
  "swamp.water.slow"
  "swamp.water.slow"
  {
  {
Line 242: Line 238:
  }
  }


==== Looping MP3 Files E.G.====
==== Зацикливание MP3-файлов E.G.====


<syntaxhighlight>
<syntaxhighlight>
//////////// Outside bird sounds (loop mp3 sound file trick by gtamike_TSGK) ////////////
//////////// Звуки птиц (зацикленный mp3-файл от gtamike_TSGK) ////////////
//////////// The 2 .mp3 files are the same as each other just not the same file name ////////////
//////////// 2 .mp3-файла одинаковы, но отличаются по именам ////////////
//////////// MP3 Sound file runtime 3.29mins = 3 X 60 + 29 = 209secs ////////////
//////////// Длина MP3-звука 3.29 минуты = 3 X 60 + 29 = 209 секунд ////////////


// mp3_loop
// mp3_loop
Line 279: Line 275:
</syntaxhighlight>
</syntaxhighlight>


{{warning|Mp3 soundscapes might save filesize for custom maps but are not recommended. It can happen that the FIRST file at "rndwave" plays after the half of the time value has passed. In this case you have to double the value (418 in this case, but live with the consequence that the there will will be a pause after the soundfile has played twice. }}
{{warning|Mp3-саундскейпы помогут уменьшить размер пользовательской карты, но это не рекомендуется делать. Может случиться, что ПЕРВЫЙ файл в "rndwave" начнет воспроизводиться по истечении половины времени. Тогда придется удвоить значение (в нашем случае 418, но теперь возникнет пауза между повторами). }}
 
=== Storing and using custom soundscapes ===


The engine uses the <code>soundscapes_manifest.txt</code> file to find all its soundscapes files.
=== Сохранение и работа с собственными звуковым окружением ===


It will look for this manifest (and typically the soundscapes as well) in the <code>scripts\</code> folder on map start. Where this folder (and the root of custom soundscapes) is located, depends on whether the game is a [[modification]] (created through ''Create a Mod''), or an original Valve game:
Для поиска файлов саундскейпов движок использует файл <code>soundscapes_manifest.txt</code>.


* If it's a modification, the engine will look for it in the root folder of the mod.
Он будет искать этот манифест (и типовые саундскейпы) в папке <code>scripts\</code> при запуске карты. Где находится эта папка (и корневой каталог пользовательских саундскейпов), зависит от того, является ли игра {{L|modification|модом}} (создается через ''Create a Mod''), или оригинальной игрой Valve:


* If it's an original Valve game, the engine will instead look for it in the games <code>''game abbreviation''\</code> folder. (For example, in the case of [[Half-Life 2: Episode 1]] the engine will look for the manifest in the <code>Steam\SteamApps\''user''\half-life 2 episode one\episodic\scripts\</code> folder.) In this case the <code>scripts\</code> folder has to be created manually, and any custom <code>soundscapes_manifest.txt</code> found there, will override the original file.
* Если это мод, движок будет искать в его корневой папке.


To list a new soundscape in the manifest, simply add the line
* Если это оригинальная игра 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> находясь здесь, будут переопределять оригинальный файл.


"file" "''location and file name''"
Чтобы прописать в манифест новый саундскейп, просто добавьте строку


within the curly brackets.
"файл" "''местоположение и имя файла''"


Typically the ''location and file name'' will be "scripts/soundscapes_''custom map name''.txt".
в фигурных скобках.


{{note|All soundscape names must be globally unique within a game.}}
Обычно, ''местоположение и имя файла'' будут "scripts/soundscapes_''имя пользовательской карты''.txt".


{{tip|If you want to add custom soundscapes to your map, and you haven't already, you should consider creating a full [[modification]] (through the ''Create a Mod'' option found in the ''Source SDK'' menu. This will prevent your custom manifest from overriding any soundscape updates made to the original game.}}
{{Note|Все имена скриптов звукового окружения должны быть уникальны в пределах игры.}}


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


== See also ==
== См. также ==
* {{L|env_soundscape}}
* {{en}} [[env_soundscape_proxy]]
* {{en}} [[env_soundscape_triggerable]]
* {{en}} [[trigger_soundscape]]
* {{en}} [[Notepad++ VDF languages]]


* {{soundscape lists}}
{{soundscape lists|список саудскейпов}}
* [[env_soundscape]]
* [[env_soundscape_proxy]]
* [[env_soundscape_triggerable]]
* [[trigger_soundscape]]
* [[Notepad++ VDF languages]]




[[Category:Sound System]]
{{ACategory|Sound System}}
[[Category:Level Design]]
{{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). Это сохранит ваш пользовательский манифест от любых обновлений звукового окружения в оригинальной игре.

См. также