Func monitor

Материал из CSM Wiki
Перейти к навигации Перейти к поиску

Оригинал Func_monitor

Описание

Объект func_monitor используется для создания обыкновенных брашей (Entity-браши), обеспечивающих работоспособность камеры point_camera. Этот объект указывает какая камера будет выбрана в качестве основной в начале каждого раунда.

Чтобы камера point_camera работала, на карте должен быть установлен хотя бы один объект func_monitor или info_camera_link.

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

  • Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
  • Объект должен быть установлен там, где будет использоваться.
  • На карте достаточно одного такого объекта, чтобы обеспечить функциональность для всех объектов point_camera. Если установить на карте несколько таких объектов и для каждого указать разное свойство "Camera Name", то в начале каждого раунда будет включена только та камера, которая будет указана в свойстве "Camera Name" у самого последнего созданного объекта func_monitor.
  • Объект НЕ отбрасывает Lightmap-тени и динамические тени.
  • На этом объекте не обязательно должен быть наложен материал:
    • dev/dev_tvmonitor1a
    • dev/dev_tvmonitor2a
    • dev/dev_combinemonitor_1
    • dev/dev_combinemonitor_2

и им подобный, для того чтобы камера работал. Например: объект func_monitor можно сделать маленького размера, полностью прозрачным и скрыть от игроков где-нибудь на карте, а вышеперечисленные материалы можно наложить на любую World-поверхность, Brush-объекты, использовать в качестве текстур для Prop-объектов, или просто использовать в картах отражения.

Ошибки

Не обнаружены.

Заметки

Использование камер и мониторов влечёт за собой больший расход ресурсов компьютера. Вы всегда должны учитывать, что при использовании камер и мониторов практически всегда требуется больше видеопамяти, так как будут использоваться текстуры не только в той области, в которой находится игрок, но и те текстуры, которые находятся в поле зрения камеры. Общий объём используемых одновременно текстур не должен превышать значения в 100 МБ.

Параметры

  • Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
  • Start Disabled – выключать объект в начале каждого раунда (Нет/Да);
  • Solidity – контроль модели столкновений для этого объекта:
    • Toggle – когда объект выключен, он не использует модель столкновений, а когда включен – использует;
    • Never Solid – модель столкновений вообще не используется;
    • Always Solid – даже в выключенном состоянии используется модель столкновений;
  • Solid Type – тип модели столкновений этого объект с другими объектами и игроками:
    • VPhysics – модель столкновений VPhysics; другие объекты, касающиеся этого объекта, не смогут сохранять своё точное положение относительно этого объекта, когда этот объект движется или вращается;
    • BSP – модель столкновений BSP; эта модель столкновений, в отличие от VPhysics, позволяет другим объектам, касающимся этого объекта, сохранять своё точное положение относительно этого объекта, когда этот объект движется или вращается;
  • Render Mode – режим рендеринга объекта;
  • FX Color (R G B) – цвет объекта;
  • FX Alpha (0-255) – прозрачность объекта; 255 – полностью не прозрачен; 0 - полностью прозрачен; не используется если свойство "Render Mode" равно "Normal" или "Don’t Render";
  • Render FX – эффект рендеринга объекта; например: мигание, плавное появление/исчезновение и т.п.;
  • Disable Receiving Shadows – отключить динамические тени от других объектов на этом объекте;
  • Minimum Light Level – минимальный уровень освещённости этого объекта; высокое значение этого свойства приведёт к тому, что объект станет очень ярким, будет хорошо заметен в темноте и на нём не будут различаться Lightmap-тени от других объектов; используется только в процессе компиляции карты;
  • Origin (X Y Z) – точка опоры объекта (указывается при помощи Helper’а).

Inputs

  • SetCamera <string> - установить новое значение свойства "Camera";
  • Enable – включить объект;
  • Disable – выключить объект;
  • Toggle – переключить состояние объекта (Включен/Выключен);
  • SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
  • Color <R G B> - установить новое значение свойства "FX Color";
  • Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";

Карта

csssdk_func_monitor.vmf

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

  • func_monitor
  • func_button
  • func_detail
  • point_camera
  • func_rotating
  • env_spritetrail
  • logic_timer

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

На карте установлено множество экранов и невидимый вращающийся объект func_rotating, который нужен просто для того, чтобы что-то двигалось и это было видно. Для каждого экрана выбран свой отдельный материал-монитор. Все они выглядят по-разному, но отображают всегда одинаковое изображение. Это особенность игры CS:S, позволяющая в один момент времени использовать только один объект point_camera. На этой карте для того, чтобы какая-нибудь камера работала, необходимо чтобы она была прописана хотя бы у одного объекта func_monitor в свойстве "Camera". После этого для камеры необходимо вызвать функцию "SetOnAndTurnOthersOff", которая включит эту камеру, а все остальные камеры – отключит. Именно такие операции выполняют большие кнопки на пультах. Маленькие кнопки на пультах включают/выключают мониторы, расположенные перед пультом. Обратите внимание, что большие кнопки на пульте выполняют функцию "SetCamera" всегда только для первого монитора - объекта monitor1 (func_monitor). Это сделано в учебных целях и понадобится для понимания работы камер.

Есть одна очень интересная особенность использования объектов point_camera и func_monitor. Эту особенность всегда нужно учитывать. Для правильной работы объекта point_camera необходимо чтобы он был прописан в свойстве "Camera" хотя бы у одного объекта func_monitor. Это условие выполняется на этой карте-примере, потому что мы меняем свойство "Camera" всегда только у первого объекта func_monitor. А что будет если выключить первый объект func_monitor? Чтобы лучше понять что произойдёт, нажмите сначала на большую кнопку первого пульта – чтобы включить первую камеру, а затем на маленькую кнопку на первом пульте – чтобы выключить первый монитор. Если выполнить эту последовательность действий, то картинка на всех мониторах перестанет обновляться, а значит первая камера перестала работать. Тоже самое произойдёт со второй и третьей камерой.

Первая камера постоянно изменяет свой угол обзора. Это результат работы функции "ChangeFOV".

Обратите внимание так же на то, как работает вторая камера. На ней чётко видны артефакты вызванные тем, что камера может видеть результат своей работы. Возможно на разных компьютерах это выглядит по-разному, но на момент создания этой карты-примера камера могла видеть до 2 своих шагов, после чего появлялись артефакты.

Так же не лишним будет заметить, что для третьей камеры включен туман, который отсекает всё что находится дальше 512 юнитов от камеры. Результат работы такого отсечения весьма плачевный, так как при этом идёт весомая нагрузка на CPU компьютера, поэтому не даёт преимущества в производительности. Рекомендуется не использовать туман для камер.

Скорей всего вы уже заметили, что игрок не может видеть сам себя в камерах. Это не досадное упущение разработчиков, а особенность движка Source. Если вы хотите увидеть себя в камере, то выполните в консоли команду "sv_cheats 1" и вслед за ней команду "thirdperson". Эта команда переключит камеру на вид от третьего лица. Камера станет "малость" кривовата, зато вы сможете себя видеть в камерах. Чтобы вернуть вид в нормальное состояние, выполните в консоли команду "firstperson".

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