Func smokevolume

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

Оригинал Func_smokevolume

Описание

Объект func_smokevolume используется для создания дыма внутри некоторой области.

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

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

Ошибки

Возможны случаи, когда частицы дыма не будут реагировать на Lightmap-тени. Это может привести к тому, что все частицы дыма будут либо полностью светлыми, либо полностью тёмными. Так же возможны случаи, когда освещённость частиц будет совершенно неправильной и частицы будут менять свой цвет непроизвольно от раунда к раунду. Эта ошибка не может быть объяснена, потому что она может возникать спонтанно. Во избегании этой ошибки старайтесь не допускать попадания Lightmap-теней на объект func_smokevolume.

Для этого объекта свойственен особый тип графических артефактов, который образно можно назвать "сквозным рендерингом спрайтов". При этом, если смотреть на объект в обратном направлении оси X (влево), то будет казаться, что внутри объекта func_smokevolume вообще нет дыма, и то что игрок находится внутри объекта func_smokevolume. Это происходит из-за того, что для объекта func_smokevolume движком Source частицы дыма рисуются справа налево (от больших координат X до меньших) и не выполняется проверка на уже нарисованные частицы, поэтому видеокарта отображает каждую следующую частицу дыма поверх уже нарисованных. Это и приводит к визуальному ощущению того, что частицы внутри объекта func_smokevolume просто не существуют. Чтобы избежать неправильного рисования частиц дыма, или уменьшить восприятие ошибки, можете попробовать применить нижеперечисленные способы борьбы с это ошибкой:

  • размещайте объект func_smokevolume где-нибудь не в игровом пространстве карты;
  • делайте дым более прозрачным;
  • размещайте объект func_smokevolume где-нибудь "справа" карты.

Параметры

  • Particle Draw Width – размер частиц дыма (юнитов);
  • Particle Spacing Distance – расстояние между частицами дыма внутри объекта func_smokevolume;
  • Rotation Speed (deg/sec) – скорость вращения частиц дыма;
  • Movement Speed (units/sec) – скорость движения частиц дыма;
  • Material – материал, используемый для рисования частиц дыма; (выбирается в окне Textures с фильтром "particle/", "sprites/" или "effects/"); для имён файлов материалов всегда добавляйте окончание ".vmt", если оно не указано;
  • Particle Color1 (R G B) – первый цвет частиц дыма;
  • Particle Color2 (R G B) – второй цвет частиц дыма;
  • Particle Density (0-1) – (от 0.0 до 1.0) прозрачность частиц дыма;
  • Density Ramp Speed – скорость с которой может изменяться прозрачность объекта от 0 до 1; чем ниже значение этого свойства, тем медленнее происходит изменение при использовании функции "SetDensity"; 1 – прозрачность изменяется примерно за 1-2 секунды;
  • Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
  • Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.

Флаги

  • Emissive – частицы дыма будут светиться, поэтому могут быть легко заметны в темноте.

Inputs

  • SetRotationSpeed <float> - установить новое значение свойства "Rotation Speed";
  • SetMovementSpeed <float> - установить новое значение свойства "Movement Speed";
  • SetDensity <float> - (от 0.0 до 1.0) установить новое значение свойства "Particle Density".

Карта

  • 1) csssdk_func_smokevolume.vmf
  • 2) csssdk_func_smokevolume_2.vmf

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

  • 1)
  • func_smokevolume
  • func_button
  • func_detail
  • prop_physics
  • 2)
  • func_smokevolume
  • func_button
  • func_detail
  • prop_physics_multiplayer
  • point_servercommand
  • logic_auto

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

  • 1)

На карте размещено четыре объекта func_smokevolume.

Первый объект func_smokevolume имеет стандартные настройки и его можно включать и выключать при помощи кнопки на пульте. При нажатии кнопки на пульте, дым медленно исчезнет, а при повторном нажатии так же медленно появится. Для второго объекта func_smokevolume включен флажок "Emissive", поэтому он "светится" и практически не реагирует на Lightmap-тени. Для третьего объекта используются настройки, делающие дым очень плотным. Для четвёртого объекта выбраны яркие цвета и маленький размер частиц, чтобы можно было легко изучить принцип действия объекта func_smokevolume.

  • 2)

На карте размещен всего один большой объект func_smokevolume. Цель карты – показать графический артефакт, свойственный объекту func_smokevolume. Нажмите на кнопку пульта и полетайте вокруг объекта func_smokevolume. Возможно, вы с лёгкостью обнаружите как проявляется этот артефакт, который, как не трудно заметить, действует только вдоль оси X.