См. также: env_sounscape,
Список предопределенных саундскейпов из
Half-Life 2
CS:S
Day of Defeat: Source
Portal
--------------------------------------------------------------------------------
Саундскейпом называется определенное звуковое окружение - случайные звуки, как правило, передающие атмосферу определенной области игры. Если Вам нужно проигрывать набор звуков в случайном порядке - саундскейп подойдет идеально.
Саундскейпы в Half-Life 2 позволяют использовать несколько DSP-эффектов (цифровая обработка сигналов) в реальном времени (например, эхо), которые изменяют стандартное звучание всех используемых в нем звуков.
В одно и то же время в игре может быть активным только один саундскейп. При изменении активного саундскейпа происходит плавный переход между предыдущим и новым саундскейпами.
В основном, для саундскейпов используется энтити env_sounscape. Она активируется, если игрок находится внутри радиуса ее действия, а также в пределах прямой видимости (т.е. между центром энтити и игроком нет преград из стен и пр.).
Пример срабатывания саундскейпов
Здесь черными кружками обозначены сайндскейпы S1 и S2, черными стрелками - путь следования игрока, буквой P и белыми кружками - ключевые точки на этом пути, прямоугольник - обычный браш (блокирует прямую видимость), зелеными и синими стрелками обозначены направления прямой видимости в каждой точке относительно саундскейпов (пунктир - если нет прямой видимости). Большие окружности обозначают радиусы действия саундскейпов.
Пояснение к примеру
Игрок начинает путь из точки P. В точке 1 он попадает в радиус действия саундскейпа S1 - теперь саундскейп S1 слышен игроку.
В точке 2 саундскейп S1 находится за пределами прямой видимости, но по-прежнему слышен игроку.
В точке 3 игрок попадает в радиус действия саундскейпа S2. Теперь саундскейп S1 не слышен игроку, слышен только S2.
В точке 4 игрок выходит из радиуса действия саундскейпа S2, но по-прежнему слышит только его, т.к. саундскейп S1 находится за пределами прямой видимости.
В точке 5 игрок снова слышит саундскейп S1, т.к. он находится в пределах прямой видимости. Саундскейп S2 не слышен.
Энтити env_soundscape ищет любой указанный саундскейп в специальном файле soundscapes.txt, который находится в каталоге /scripts Вашего мода, либо в другом файле, зависящем от карты (soundscapes_*.txt).
Структура описания саундскейпа
Структура файла soundscapes.txt простая и наглядная - в основном в виде пар "переменная-значение" или "команда-параметр" (см. пример ниже), каждая в отдельной строке. Секции ограничиваются фигурными скобками.
"example"
{
"key1" "value1"
"key2" "value2"
"subexample"
{
"key3" "value3"
}
"key4" "value4"
}
// Вся эта строка - комментарий (пропускается движком)
"example2" // Возможен и такой комментарий - от // до конца строки
{
}
Каждая секция верхнего уровня (не входящая в другие секции) определяет отдельный саундскейп. В энтити env_soundscape задаются как раз имена этих секций (для приведенного примера это example и example2).
Добавление нового саундскейпа
Имена всех загружаемых файлов с определениями саундскейпов содержатся в файле soundscapes_manifest.txt в каталоге /scripts Вашего мода. Добавьте в него имя файла с описанием новых саундскейпов (после комментария // List additional soundscape files here) по образцу:
"file" "scripts/<имя_файла_с_саундскейпами>.txt"
Затем создайте файл в каталоге /scripts мода с именем <имя_файла_с_саундскейпами>.txt и в него внесите определения новых саундскейпов.
Есть еще один способ добавления саундскейпов (если нельзя менять содержимое файла soundscapes_manifest.txt), но он будет работать только для отдельно взятой карты. Для этого для карты <имя карты> нужно создать файл soundscapes_<имя карты>.txt и в нем определить новые саундскейпы (этот файл будет обрабатываться при загрузке карты <имя карты>.bsp).
Команды, используемые в определении саундскейпа
"dsp" "<параметр>"
задает эффект обработки звука. Обычно <параметр> равен 1 - автоматическая обработка звуков, исходя из окружающей геометрии (эхо, ревербация). Параметр 0 отключает обработку звуков (проигрываются без изменений).
Другие значения параметра рекомендуются только в особых случаях и описываются в файле …/hl2/scripts/dsp_preset.txt; названия эффектов по номерам есть в начале файла soundscapes.txt.
Пример:
// Саундскейп - полная тишина без обработки звука
"Nothing"
{
"dsp" "0"
}
"playlooping" {}
циклически проигрывает звук до тех пор, пока активен саундскейп.
В скобках задаются дополнительные команды-спецификации:
"wave" "<путь>"
имя звукового файла с указанием пути. Если звук из стандартных, то <путь> задается так же, как в просмотрщике звуков. Для новых звуков, добавленных в каталог /sound Вашего мода, <путь> задается относительно этого каталога.
"volume" "<число с п.точкой от 0 до 1>"
задает громкость звука.
"pitch" "<число от 1 до 255>"
задает темп воспроизведения звука (с изменением высоты). Нормальное значение - 100 (оригинальное звучание).
"attenuation" "<число>"
случайное ослабление звука (используется только в том случае, если далее следует команда "position"). На данный момент более подробная информация отсутствует.
"position" "<число>"
если секция playlooping используется для позиционного звучания (в игре определяется его положение), данная команда задает номер позиции (<число> - от 0 до 7). Позиции задаются затем в энтити env_soundscape.
Пример:
// Циклическое проигрывание отдельного звука с ревербацией (1 тип комнаты)
"GenericIndoor"
{
"dsp" "1"
"playlooping"
{
"volume" "1"
"pitch" "100"
"wave" "ambient/atmosphere/indoor2.wav"
}
}
Замечание: для того, чтобы зациклить звук, необходимо добавить в него специальные метки цикла (в звуковом редакторе установить на начало маркер cue с именем loop). Эти метки позволяют звуковому движку определить, какую часть звука нужно проигрывать циклически (обычно звук целиком).
"playrandom" {}
постоянно проигрывает набор звуков случайным образом (пока активен саундскейп).
В скобках задаются дополнительные команды-спецификации:
"time" "tmin,tmax"
временной интервал между звуками. Здесь tmin и tmax - минимальное и максимальное значение времени (т.е. между началом текущего и следующего звуков пройдет tmin…tmax секунд).
"volume" "vmin,vmax"
громкость звуков; задается значениями от 0 до 1 (1 - максимальная (оригинальная) громкость звука). Здесь vmin и vmax - минимальная и максимальная громкость (т.е. громкость очередного звука будет случайной в интервале от vmin до vmax).
"pitch" "pmin,pmax"
ускорение/замедление воспроизведения; задается значениями в процентах от 50 до 250 (100 - нормальная скорость). Здесь pmin и pmax - минимальное и максимальное значения (т.е. ускорение/замедление воспроизведения колеблется в интервале от pmin до pmax).
"attenuation" "<число>"
случайное ослабление звука. Более подробная информация отсутствует.
"rndwave" {}
список звуков, которые будут проигрываться в случайном порядке. Каждый звук задается в виде строки "wave" "<путь>" (имя звукового файла с указанием пути). Если звук из стандартных, то <путь> задается так же, как и в просмотрщике звуков. Для новых звуков, добавленных в каталог /sound Вашего мода, <путь> задается относительно этого каталога.
"position" "<число>"
если секция playrandom используется для позиционного звучания (в игре определяется его положение), данная команда задает номер позиции (<число> - от 0 до 7). Позиции задаются затем в энтити env_soundscape.
Пример:
"ExampleSoundscape"
{
"dsp" "1"
"playrandom"
{
// Проигрывать звуки каждые 0.1…1.5 секунд
"time" "0.1,1.5"
// Громкость звуков от 0.5 до 1
"volume" "0.5,1"
// Проигрывать от ускорения 50% до замедления 120%
"pitch" "50,120"
// Ослабление звучания 0.7
"attenuation" "0.7"
// Для энтити, определенной в позиции 1
"position" "1"
// Случайным образом проигрывать звуки из следующего списка
"rndwave"
{
"wave" "ambient/creatures/pigeon_idle1.wav"
"wave" "ambient/creatures/pigeon_idle2.wav"
"wave" "ambient/creatures/pigeon_idle3.wav"
}
}
}
"playsoundscape" {}
проигрывает ранее определенный саундскейп, включенный в данный. Таким образом можно задавать набор саундскейпов, которые будут проигрываться в составе данного.
В скобках задаются дополнительные команды-спецификации:
"name" "<имя саундскейпа>"
имя проигрываемого саундскейпа.
"volume" "<число с п.точкой от 0 до 1>"
громкость проигрываемого саундскейпа (1 - максимальная (оригинальная)).
"position" "<число>"
если секция playsoundscape используется для позиционного звучания (в игре определяется его положение), данная команда задает номер позиции (<число> - от 0 до 7). Позиции задаются затем в энтити env_soundscape.
"positionoverride" "<число>"
даже если проигрываемый саундскейп использует несколько позиций для звуков, данная команда вынуждает проигрывать его звуки только из одной позиции. Здесь <число> равно номеру позиции от 0 до 7.
"ambientpositionoverride" "<число>"
все фоновые звуки заданного саундскейпа будут располагаться в указанной позиции. Таким образом, можно задавать звуки фонового "окружения", идущие с определенной стороны. Здесь <число> равно номеру позиции от 0 до 7.
Замечание: саундскейпы, включенные таким образом в состав данного, не влияют на обработку звука (DSP).
Пример:
"SubSoundscape"
{
"dsp" "1"
"playsoundscape"
{
// Саундскейп, который проигрывается в составе данного саундскейпа
"name" "GenericIndoor"
// Громкость указанного саундскейпа уменьшить наполовину
"volume" "0.5"
// Все позиционные звуки указанного саундскейпа идут из одной позиции
"positionoverride" "0" // из позиции 0
// Все фоновые звуки указанного саундскейпа идут из одной позиции
"ambientpositionoverride" "1" // из позиции 1
}
}
"SOUNDMIXER" "<имя микшера>"
задает звуковое микширование (смешивание) для саундскейпа. Микширование звука используют, чтобы задать громкость для разных категорий звуков, называемых группами микширования. При этом проигрывание категорий может происходить одновременно (смешивается).
Имена микшеров заданы в файле soundmixers.txt в каталоге /scripts Вашего мода. Если необходимо определить собственный микшер, добавьте его в конец этого файла (после строки // add new sound mixers here...).
Замечание: определяя новый микшер, всегда используйте в качестве шаблона микшер Default_Mix. Об этом предупреждает комментарий в файле soundmixers.txt.
Пример:
"automatic"
{
"dsp" "1"
"dsp_volume" "1.0"
"SOUNDMIXER" "Default_Mix"
}
В примере определяется саундскейп automatic с микшером Default_Mix.
Определение микшера Default_Mix (в файле soundmixers.txt):
"Default_Mix"
{
// имя группы значение при смешивании
// -------- ---------
"Explosions" "0.90"
"Player_Weapons_Loud" "1.0"
"Player_Suit" "0.56"
"Weapons" "0.79"
"AHELI_WEAPON" "0.85"
"GUNSHIP_WEAPON" "0.85"
"STRIDER_WEAPON" "0.85"
"bullethit" "0.67"
"Music" "0.81"
"All" "0.72"
}
--------------------------------------------------------------------------------
Статьи (рус):
Статьи (eng): http://developer.valvesoftware.com/wiki/Soundscapes" target="_blank , http://developer.valvesoftware.com/wiki/Env_soundscape" target="_blank
--------------------------------------------------------------------------------
Номер статьи: 10
SOUNDSCAPES - окружающий звуковой фон
- Saidteshnologi
- Маппер
- Сообщения: 769
- Зарегистрирован: 16.06.2006
- Откуда: Minsk, Belarus
- Благодарил (а): 8 раз
- Поблагодарили: 28 раз
- Контактная информация:
Пример создания зацикленного звука программой Sound Forge 9.0:
Открываем звуковой файл выбираем маркерами нужный нам участок или выделяем весь трек (ctrl + A), потом идём в меню Special -> Regions List -> Insert, жмём OK.
И сохраняем файл (ctrl + S).
Открываем звуковой файл выбираем маркерами нужный нам участок или выделяем весь трек (ctrl + A), потом идём в меню Special -> Regions List -> Insert, жмём OK.
И сохраняем файл (ctrl + S).