Объект env_microphone может использовать как микрофон, записывая звуки вблизи себя и воспроизводя эти звуки через какой-нибудь другой объект на карте. Так же, объект env_microphone может быть использован как измеритель уровня шума вблизи себя или в некоторой точке на карте.
В режиме "микрофона" в свойстве "Speaker" лучше всего указывать имя объекта info_target или env_spark, потому что с другими объектами объект env_microphone может не работать. Не обнаружены.
В этом режиме объект env_microphone "слышит" не все звуки и не использует никакие "флажки". В этом режиме через "Speaker" будут доноситься только достаточно громкие звуки. Следующие звуки являются не достаточно громкими для объекта env_microphone и НЕ слышны в режиме "микрофона", а если и слышны то не различимы на слух:
Чем дальше от 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:
и т.п.
Карта демонстрирует использование объекта env_microphone в режиме "микрофона".
В самом конце карты поставлена чахлая решётка, внутри которой поставлены три бочки. Там же размещён объект env_explosion, который используется для визуализации взрыва, и объект ambient_generic, который используется для озвучивания взрыва. Радиус на котором слышен звук от объекта ambient_generic умышленно выбран небольшим, чтобы звук от взрыва не доносился до игрока, стоящего за пультом. В качестве дополнительного источника звуков в решётку поставлен объект env_gunfire, который стреляет в стену создавая звуки рикошета. Рядом со всеми этими объектами поставлен объект env_microphone, который улавливает всевозможные звуки в радиусе своего действия.
Над пультом с кнопками размещён динамик из которого доносятся звуки, записанные объектом env_microphone. При нажатии на левую кнопку можно услышать взрыв с эффектом маленького динамика. Этот эффект достигается выбором нужного значения в свойстве "Speaker DSP Preset". Правая кнопка включает и выключает микрофон, поэтому вы можете прислушаться какие звуки доходят до пульта без использования микрофона. В нашем случае рикошеты пуль и звуки падения кусочков земли после взрыва можно услышать и без динамика, а микрофон улавливает только звук взрыва, издаваемый объектом ambient_generic.
Карта демонстрирует использование объекта 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" или выше. Чтобы достичь такого высокого уровня шума, вам придётся изрядно постараться, или просто бросить гранату в самый центр круглой области.