Продвинутая озвучка через entity_soundscape
В
Source имеется возможность создавать
сложные по своему звучанию звуковые схемы, типа эмбиента, разговоров НПЦ
и прочих звуковых событий, состоящих из микса нескольких звуков,
сопровождающихся различными эффектами и т.п. Эти звуковые схемы
находятся в файлах-скриптах - в них описаны последовательность и тайминг
для звуков, DSP-эффекты, которые накладываются на звуки и т.п.
Практически весь эмбиент-звук на CSS- и HL2- картах, за редким исключением, использует эту скриптовую озвучку.
В этом туторе речь пойдет об
entity_soundscape,
с помощью которого осуществляется добавление скриптового звука на карту
и управление звучания разных звуковых схем в процессе игры.
-
Soundscape представляет собой триггер,
который, при активации игроком, запускает соотвецтвующую звуковую схему
из скрипта. Эта схема будет звучать из сотвецтвующих мест на карте
локально для включившего ее игрока.
-Когда игрок попадает в радиус
soundscape, или активирует его через триггер,
soundscape запускает указанную в нем звуковую схему.
-Звук будет исходить с позиций
entity-объектов, чьи имена указанны в
soundscape в параметре
position (чаще всего используются
info_target, установленные в необходимых местах).
-Одновременно игрок может слышать только одну звуковую схему- каждый новый активированный
soundscape
отключает предыдущую звуковую схему и включает свою (при этом
предыдущая звуковая схема плавно затухает, а новая - плавно
запускается).
-Важно, что игрок не может активировать
soundscape, находясь в его радиусе, если
soundscape не находится в зоне видимости с позиции игрока (ака спрятан за препятствием)
-Все параметры, касающиеся непосредственно звука (скорость, время, эхо,
громкость и т.п.) описываются в скрипте, и не имеют отношения к
soundscape.
-Размещать
soundscape лучше всего на
границах игровых зон- например по две штуки с разных сторон дверных
проемов и т.п., чтобы включать/выключать эмбиент для соотвецтвующих
помещений.
ВАЖНО!
soundscape не является глобальным, т.е. звук будет слышать только тот игрок, которым был запущен данный
soundscape.
По сути,
soundscape является
индивидуальной эмбиент-озвучкой для игрока, поэтому не стоит пытаться
делать через них глобальное оповещение для игроков в мультиплеере, или
что-то подобное.
-Далее приведены основные параметры
soundscape, которые позволят его использовать в большинстве обычных случаев, и ряд сопутствующих им ньюансов.
-
radius –радиус, в котором игрок активирует данный
soundscape.
-Радиус = -1, считается бесконечным, в этом случае
soundscape активируется, как только станет видимым для игрока.
-
soundscape –имя звуковой схемы из скрипта
…/сstrike/scripts /soundscapes_*.txt.
-под CSS движок «понимает» названия звуковых схем из стандартных карт
CSS (dust, office и т.п.), но «не понимает» из HL2. Чтобы добавить свои
звуковые схемы, надо записать их в файл
…/сstrike/scripts /soundscapes_»название карты».txt.
-
position 0-7 –имена
entity, позиции которых будут использоваться в качестве источников звука (8 штук).
-Для разных источников звука необходимы уникальные имена (несколько
info_target с одинаковым именем - не прокатит).