Env microphone

Материал из CSM Wiki
Версия от 19:03, 28 марта 2010; Kogemyaka (обсуждение | вклад) (→‎Смотрите также)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Оригинал Env_microphone

Описание

Объект env_microphone может использовать как микрофон, записывая звуки вблизи себя и воспроизводя эти звуки через какой-нибудь другой объект на карте. Так же, объект env_microphone может быть использован как измеритель уровня шума вблизи себя или в некоторой точке на карте.

Особенности использования

  • Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
  • Объект должен быть установлен там, где будет использоваться.
  • На карте может быть установлено множество этих объектов

Ошибки

В режиме "микрофона" в свойстве "Speaker" лучше всего указывать имя объекта info_target или env_spark, потому что с другими объектами объект env_microphone может не работать. Не обнаружены.

В режиме микрофона

В этом режиме объект env_microphone "слышит" не все звуки и не использует никакие "флажки". В этом режиме через "Speaker" будут доноситься только достаточно громкие звуки. Следующие звуки являются не достаточно громкими для объекта env_microphone и НЕ слышны в режиме "микрофона", а если и слышны то не различимы на слух:

  • звуки объектов "soundscapes_*";
  • звуки выстрелов;
  • звуки шагов игроков;
  • звуки переключения оружия для игроков;
  • звуки контактов пуль с поверхностями;
  • звуки всплесков воды;
  • звуки физических контактов для различных физических объектов;
  • и некоторые другие...

Чем дальше от env_microphone раздаются звуки, тем тише они воспроизводятся через объект "Speaker".

Нужно отметить, что в режиме "микрофона", даже если не указывать "Measure target", объект env_microphone всё равно вызывает событие "SoundLevel". При этом микрофон работает так, как бы он работал в режиме "измерения шума".

Режим измерения шума

В этом режиме объект env_microphone измеряет уровень шума вблизи объекта, указанного в свойстве "Measure target" или вблизи себя, если свойство "Measure target" не указано.


Уровень измеренного шума возвращается функцией "SoundLevel" и его значение варьируется от "0.0" до "1.0". Функция "SoundLevel" никогда не возвращает значение равное "1.0", потому что это предел громкости звука. Даже звук от взрыва не даёт уровень шума равный "1.0".

В режиме измерения шума чувствительность объекта env_microphone настраивается при помощи свойства "Sensitivity", и объект env_microphone способен улавливать даже такие незначительные звуки, как передвижение игрока ползком ("Duck").

Используйте флажки, чтобы определить какие звуки будет улавливать объект env_microphone, а какие нет. Так же удобно использовать фильтры (свойство "Listen Filter"), чтобы микрофон улавливал звуки только от конкретных объектов.

Заметки

Этому объекту крайне не просто найти применение, из-за его сложности. К тому же, хорошая отдача от его использования может быть получена только в режиме "измерения шума". Режим "микрофона" крайне ограничен в игре CS:S.

Советы

Несколько примеров, где можно применить объект env_microphone:

  • для создания эффекта "рации" или "радио", при воспроизведении голосовых сообщений; однако, эффект "рации" или "радио" можно добавить в звуковые файлы ещё на этапе создания карты, и использовать в качестве источника звука объект ambient_generic, тем самым немного разгрузив и упростив вашу карту;
  • для обнаружения попадания пули в какой-нибудь объект или в какую-нибудь область на карте, используя уровень шума в качестве признака попадания;
  • для обнаружения нахождения игроков в какой-нибудь области, используя уровень шума в качестве признака присутствия;
  • для обнаружения момента, когда игрок начал двигаться или когда игрок остановился, используя уровень шума в качестве признака движения;
  • для выполнения каких-либо действий при достижении уровнем шума какого-либо значения; так сделано на карте-примере csssdk_env_microphone_2.vmf;
  • для создания "наушников" или переносных звуковых динамиков; этом случае объект указанный в свойстве "Speaker" можно закрепить на каком-нибудь игроке или физическом объекте;

и т.п.

Параметры

  • Start Disabled – выключать объект в начале каждого раунда (Нет/Да);
  • Measure target – имя объекта на карте в опорной точке которого будет измеряться уровень шума; если указано значение этого свойства, то объект env_microphone будет работать в режиме "измерения шума", иначе он будет работать в режиме "микрофона";
  • Speaker – объект, из которого будут доноситься звуки, записанные объектом env_microphone; используется только в режиме "микрофона";
  • Listen Filter – имя объекта-фильтра (класс "filter_*"), определяющего объекты от которых будут слышны звуки для микрофона; работает в обоих режимах: "микрофона" и "измерения шума";
  • Speaker DSP Preset – эффект для звука, который будет доноситься из объекта "Speaker"; используется только в режиме "микрофона" (Выбор из списка);
  • Sensitivity (0-10) – чувствительность микрофона; 0 – глухой; 1 – нормальная чувствительность; 10 – очень чувствительный; используется только в режиме "измерения шума";
  • Smoothing (0-1) – степень сглаживания графика шума; 0 – без сглаживания, что приводит к резкому скачку уровня измеренного шума; 1 – максимальное сглаживание, что приводит к плавному изменению уровня измеренного шума; используется только в режиме "измерения шума";
  • Maximum hearing range – максимальное расстояние от объекта env_microphone, на котором этот объект "слышит"; 0 – объект env_microphone слышит звуки на всей карте.

Флаги

  • Hears Combat sounds – слышать звуки сражений; #возможно не работает#;
  • Hears World sounds – слышать звуки мира; используется только в режиме "измерения шума"; #возможно не работает#;
  • Hears Player sounds – слышать звуки, издаваемые игроками при передвижении; используется только в режиме "измерения шума";
  • Hears Bullet impacts – слышать как пули ударяются о стены или предметы; используется только в режиме "измерения шума";
  • Swallows sounds routed through speakers – звуки, которые может слышать микрофон, не будут воспроизводиться на карте; например: если рядом с вами упадёт какой-то объект (например: стул или оружие), и объект env_microphone будет "слышать" шум падения, то игроки не услышат этот звук; работает только в режиме "измерения шума";
  • Hears Explosions – слышать взрывы от гранат; используется только в режиме "измерения шума".

Inputs

  • Enable – включить объект;
  • Disable – выключить объект;
  • SetSpeakerName <string> – установить новое значение свойства "Speaker".

Outputs

  • OnHeardSound – вызывается тогда, когда микрофон слышит новый звук; это событие происходит очень часто; например, если сделать выстрел в стену, то будет воспроизведено сразу 4 звука: 1 – выстрел, 2 – звук попадания в стену, 3 – звук рикошета от стены, 4 – звук падения осколков от стены;
  • OnRoutedSound – вызывается тогда, когда из "Speaker" доносятся звуки;
  • SoundLevel <float> – вызывается тогда, когда изменяется уровень шума; возвращает новое значение уровня шума.

Карта

  • 1) csssdk_env_microphone.vmf
  • 2) csssdk_env_microphone_2.vmf

Используются объекты

  • 1)
  • env_microphone
  • func_button
  • func_detail
  • env_explosion
  • prop_physics
  • info_target
  • ambient_generic
  • env_gunfire
  • infodecal
  • 2)
  • env_microphone
  • info_target
  • func_detail
  • logic_compare
  • math_remap
  • math_colorblend
  • func_brush
  • func_movelinear
  • prop_dynamic
  • weapon_hegrenade

Описание карты

  • 1)

Карта демонстрирует использование объекта env_microphone в режиме "микрофона".

В самом конце карты поставлена чахлая решётка, внутри которой поставлены три бочки. Там же размещён объект env_explosion, который используется для визуализации взрыва, и объект ambient_generic, который используется для озвучивания взрыва. Радиус на котором слышен звук от объекта ambient_generic умышленно выбран небольшим, чтобы звук от взрыва не доносился до игрока, стоящего за пультом. В качестве дополнительного источника звуков в решётку поставлен объект env_gunfire, который стреляет в стену создавая звуки рикошета. Рядом со всеми этими объектами поставлен объект env_microphone, который улавливает всевозможные звуки в радиусе своего действия.

Над пультом с кнопками размещён динамик из которого доносятся звуки, записанные объектом env_microphone. При нажатии на левую кнопку можно услышать взрыв с эффектом маленького динамика. Этот эффект достигается выбором нужного значения в свойстве "Speaker DSP Preset". Правая кнопка включает и выключает микрофон, поэтому вы можете прислушаться какие звуки доходят до пульта без использования микрофона. В нашем случае рикошеты пуль и звуки падения кусочков земли после взрыва можно услышать и без динамика, а микрофон улавливает только звук взрыва, издаваемый объектом ambient_generic.

  • 2)

Карта демонстрирует использование объекта env_microphone в режиме "измерения шума".

На карте определена круглая область в которой объект env_microphone через объект info_target определяет уровень шума. Объект env_microphone поставлен в центр области только лишь для целостности картины. Вы можете свободно убрать объект env_microphone в самый дальний угол карты, чтобы наверняка быть уверенными в том, что уровень шума измеряется именно в точке info_target.

Принцип работы механизма, отпирающего дверь, слегка надуман, но зато даёт хорошее представление о том, как измеряет уровень шума объект env_microphone. Когда игрок начнёт шуметь в круглой области перед дверью, сбоку от двери начнёт "прыгать" объект func_movelinear, информируя игрока о том, каким является уровень шума в точке info_target на данный момент. Движения объекта func_movelinear можно сделать более гладкими, если настроить объект env_microphone другим образом. Для этого установите ("Smoothing" = 1) для объекта env_microphone. Это заставит объект env_microphone реагировать на шум не так резко.

При помощи объектов math_remap и math_colorblend изменяется положение и цвет объекта func_movelinear, а объект logic_compare используется для отпирания дверей в тот момент, когда уровень измеренного шума достигнет значения "0.95" или выше. Чтобы достичь такого высокого уровня шума, вам придётся изрядно постараться, или просто бросить гранату в самый центр круглой области.

Смотрите также