Ru/Soundscape: Difference between revisions

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


=== Storing and using custom soundscapes ===
=== Сохранение и работа с пользовательскими саундскейпами ===


The engine uses the <code>soundscapes_manifest.txt</code> file to find all its soundscapes files.
Для поиска файлов саундскейпов движок использует файл <code>soundscapes_manifest.txt</code>.


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


* If it's a modification, the engine will look for it in the root folder of the mod.
* Если это мод, движок будет искать в его корневой папке.


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


To list a new soundscape in the manifest, simply add the line
Чтобы прописать в манифест новый саундскейп, просто добавьте строку


"file" "''location and file name''"
"файл" "''местоположение и имя файла''"


within the curly brackets.
в фигурных скобках.


Typically the ''location and file name'' will be "scripts/soundscapes_''custom map name''.txt".
Обычно, ''местоположение и имя файла'' будут "scripts/soundscapes_''имя пользовательской карты''.txt".


{{note|All soundscape names must be globally unique within a game.}}
{{note:ru|Все имена саундскейпов должны быть уникальны в пределах игры.}}


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


== See also ==
== See also ==

Revision as of 03:33, 2 September 2015

Template:Otherlang2

Саундскейп - это вид звукового сценария, который создает атмосферу в игре. На карте их может быть любое количество, при этом сетевой трафик не генерируется . Саундскейпы используют смесь из зацикленных и произвольно воспроизводимых звуков, каждый из которых может быть присвоен одному из восьми указанных мест; также задействуется профиль DSP.

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

Template:Tip:ru

Template:Tip:ru

Template:Note:ru


Просмотр саундскейпов

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

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

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

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

Конфигурирование саундскейпов

Саундскейпы могут кофигурироваться только через эти энтити:

Есть другие энтити, которые активируют саундскейпы, но только эти две фактически определяют свойства звукового оформления. Другие энтити могут указывать на них и включать удаленно. Всякий раз, когда энтити активируют саундскейп, воспроизводится позиционный звук в соответствии с заданными свойствами. Template:Tip:ru

Активация саундскейпов

Саундскейпы активируются игроком или программно. Они работают до тех пор, пока не сменится карта или их не отключит другой саундскейп. Template:Tip:ru


Сущности саундскейпов

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

Саундскейпы основаны на точке, но включаются, когда игрок входит в сферу их действия и находятся в зоне прямой видимости.

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

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

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


Template:Tip:ru

Размещение саундскейпов

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

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

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

Конструирование саундскейпов

Создание

Скрипты саундскейпов весьма похожи на звуковые скрипты, но по сути они совершенно разные.

Саундскейпы следуют собственным правилам, и помещаются в текстовых файлах, которые отделены от обычных файлов звуковых скриптов. Типичный файл саундскейпа может называться 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 (затухания). Допускается одно из предварительно заданных движком значений.

Template:Warning:ru

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

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

"pitch"	"80,120"

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

Правила

playlooping

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

Template:Note:ru

"playlooping"
{
	"volume"	"0.98"
	"pitch"		"110"
	"soundlevel"	"SNDLVL_85dB"

	"position"	"0"

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

playrandom

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

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

Template:Warning:ru

"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>.

Template:Note:ru Template:Note:ru

// Отключить 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"
		}
	}
}

Template:Warning:ru

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

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

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

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

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

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

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

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

Template:Note:ru

Template:Tip:ru

See also