Prop ragdoll

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

Оригинал Prop Types Overview, Prop_ragdoll.

Описание

Объект prop_ragdoll используется для создания сложных составных физических объектов на карте. Такие объекты используют MDL-модели для своего отображения, которые могут иметь до 24 соединительных "костей" для своей физической анимации.

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

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

Ошибки

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

Заметки

Эти объекты при использовании их в игре дают не очень корректные физические столкновения с игроком, что может испортить игровой процесс. Например такие объекты при соприкосновениях с игроком могут подбросить его очень высоко вверх, а при падении игрок потеряет здоровье. Так же этот объект может помешать передвижению игроков, что скорей всего многим игрокам может не понравиться, а так же этот объект может способствовать очень высокому сетевому трафику, что так же может плачевно сказаться на игровом процессе для игроков. Вы не должны размещать на карте множество подобных объектов, потому то их большое количество может пагубно скажется на игре в момент их движения. Как избежать вышеописанных проблем смотрите пункт "Размещение на карте".

На некоторых серверах может быть использована не интерактивная физика. Такая физика включается консольной командой "sv_turbophysics 1". При этом игроки не могут сдвинуть физические объекты просто толкая их. Чтобы толкать физические объекты нужно использовать на них клавишу "Использовать". Даже при использовании такого типа физики объекты prop_ragdoll будут неточно рассчитывать физические прикосновения к игроку.

Размещение на карте

Так как этот объект является составным физическим объектом, то каждая его часть является отдельным физическим объектом. Физические объекты в процессе своего движения создают высокий сетевой трафик, а значит этот объект создаёт очень высокий сетевой трафик. Именно это и останавливает некоторых авторов использовать этот объект в своих картах. Однако есть возможность указать этому объекту нужное положение на карте, предотвращая его от физических взаимодействий в начале каждого раунда. Для этого используется консольная команда "map_edit", способная совместно с командой "wc_update_entity" указать редактору Hammer точные координаты и параметры для этого объекта. Редактор Hammer автоматически заполнит свойство "Override Animation" и поместит объект в нужную точку на карте. Подробнее об этом можно посмотреть здесь.

Параметры

  • Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0; (см. фильтр filter_activator_team);
  • Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
  • Override Animation – изменённые углы поворота для всех составных частей этого объекта; значение этого свойства не нужно указывать вручную, кроме как можно просто его очистить; формат значений строки для этого свойства: <индекс>,<угол>,<индекс>,<угол>,... и т.д. например: 1, 22.5 123.0 0.0, 2, 0 0 0, 3, 0 0 180.0 значение этого свойства заполняется редактором Hammer; подробнее смотрите пункт "Размещение на карте";
  • World Model – имя файла MDL-модели, которая будет использоваться в качестве основы для внешнего вида объекта (выбирается в окне Model Browser);
  • Skin – установить номер другого скина, если модель "World Model" использует несколько скинов; скин – это набор текстур для модели; изменяя скин, изменяется внешний вид модели; узнать какие скины использует модель можно в программе "Model Viewer";
  • Body Group – установить номер другого подобъекта, если модель "World Model" использует несколько подобъектов; подобъект – это другая модель, встроенная в тот же файл; изменяя подобъект, изменяется внешний вид объекта; узнать какие подобъекты использует объект можно в программе "Model Viewer";
  • Disable Damage Forces - отключить силы, прикладываемые к объекту при получении им повреждений (Нет/Да); например: выстрел по объекту не сдвинет его с места;
  • Damage Filter – имя объекта-фильтра, который будет контролировать типы повреждений которые можно будет наносить этому объекту; (см. подробнее filter_damage_type или filter_multi);
  • Render Mode – режим рендеринга объекта;
  • FX Color (R G B) – цвет объекта;
  • FX Alpha (0-255) – прозрачность объекта; 255 – полностью не прозрачен; 0 - полностью прозрачен; не используется если свойство "Render Mode" равно "Normal" или "Don’t Render";
  • Render FX – эффект рендеринга объекта; например: мигание, плавное появление/исчезновение и т.п.;
  • Disable Shadows – отключить динамические тени, отбрасываемые этим объектом (Нет/Да);
  • Shadow Cast Distance - максимальное расстояние на которое распространяются динамические тени от этого объекта;
  • Fade Start Dist – расстояние от игрока до объекта, с которого объект начнёт плавно исчезать, а полностью исчезнет на расстоянии "Fade End Dist"; это расстояние должно быть меньше чем "Fade End Dist", но в игре они будут автоматически поменяны местами, если это не так; если значение этого свойства меньше нуля, то оно будет автоматически изменено и станет равным "Fade End Dist" - 400;
  • Fade End Dist – расстояние от игрока до объекта, на котором объект становится полностью не видимым, начав исчезать с расстояния "Fade Start Dist"; если значение этого свойства меньше или равно нулю, то функция исчезновения будет отключена для этого объекта;
  • Fade Scale – множитель для значений исчезновения объекта по умолчанию, используемых если:
    • движок запущен в режиме DX7 и ниже;
    • параметры исчезновения объектов настраиваются в объекте worldspawn (Hammer > Main menu > Map > Map properties...);
    • движок будет использовать свои значения по умолчанию, когда свойства "Fade Start Dist" и "Fade End Dist" не указаны;

во всех этих случаях можно контролировать исчезновение объекта вручную:

    • 0.0 – полностью отключить исчезновение, объект виден на любом расстоянии;
    • меньше 1.0 – исчезновение начнётся с большего расстояния и будет более

растянутым по времени;

    • больше 1.0 – исчезновение объекта начнётся на меньшей дистанции и будет выполнено быстрее обычного;

{{sdk param Lighting Origin

  • Minimum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого ниже этого значения; используется только компилятором VBSP в процессе компиляции карты;
  • Maximum DX Level – запретить размещение этого объекта на карте при компиляции карты на компьютере, уровень аппаратной поддержки видеокарты которого выше этого значения; используется только компилятором VBSP в процессе компиляции карты.

Флаги

  • Debris – объект помечается как "Debris"; такие объекты не реагируют на прикосновения (Touch), поэтому они:
    • не контактируют друг с другом;
    • не контактируют с игроками;
    • не контактируют с гранатами, но получают повреждения от взрывов;
    • не контактируют с триггерами;
    • не выполняют своё событие "OnPlayerUse", когда игроки нажимают на них клавишу "Использовать"; однако при всём при этом объект продолжает контактировать с миром.

Inputs

  • StartRagdollBoogie – встряхивать объект в течение нескольких секунд;
  • SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
  • Skin <integer> – установить новое значение свойства "Skin";
  • SetBodyGroup <integer> - установить новое значение свойства "Body Group";
  • Ignite – поджечь объект;
  • EnableDamageForces – установить значение свойства "Disable Damage Forces" равным "No";
  • DisableDamageForces – установить значение свойства "Disable Damage Forces" равным "Yes";
  • SetDamageFilter <string> - установить новое значение свойства "Damage Filter";
  • Color <R G B> - установить новое значение свойства "FX Color";
  • Alpha <integer> – (от 0 до 255) установить новое значение свойства "FX Alpha";
  • EnableShadow – включить динамические тени от объекта;
  • DisableShadow – выключить динамические тени от объекта;
  • FadeMinDist <float> - установить новое значение свойства "Fade Start Dist";
  • FadeMaxDist <float> - установить новое значение свойства "Fade End Dist".
  • SetLightingOrigin <string> - установить новое значение свойства "Lighting Origin".

Outputs

  • OnIgnite - выполняется тогда, когда объект воспламеняется при вызове функции "Ignite".

Карта

csssdk_prop_ragdoll.vmf

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

  • prop_ragdoll
  • infodecal
  • logic_auto
  • env_gunfire

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

На карте размещено два три разнотипных объекта prop_ragdoll. Первый – это матрац, который прислонён к стеночке. Второй – это труп игрока, который лежит в луже крови. Третий – это автомобиль. Все три этих объекта могут быть пошевелены выстрелами.

Понаблюдайте за этим. В начале каждого раунда в течение секунды в сторону трупа "стреляет" объект env_gunfire, который создан просто для того, чтобы следы от пуль соответствовали пятнам крови, и для того, чтобы оставить на трупе следы выстрелов.