Phys slideconstraint

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

Оригинал [1]

Описание

Объект phys_slideconstraint – это ограничитель физики, используемый для соединения двух физических объектов. При таком типе соединения объекты сохраняют свою ориентацию относительно друг друга и могут двигаться только вдоль указанной прямой.

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

  • Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
  • Объект должен быть установлен там, где будет использоваться.
  • На карте может быть установлено множество этих объектов
  • Для этого объекта не важно сколько объектов будет указано в свойствах "Entity 1" или "Entity 2" – два или один. И в том и в другом случае объекты будут двигаться вдоль прямой, указанной "Sliding Axis".

Ошибки

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

Заметки

Этот объект может быть использован для создания раздвигающихся дверей.

Параметры

  • Entity 1 – имя первого физического объекта для ограничителя;
  • Entity 2 – имя второго физического объекта для ограничителя;
  • Constraint System Manager – имя объекта phys_constraintsystem, в который будет добавлен этот ограничитель физики; все ограничители физики, добавленные в единую систему ограничений (phys_constraintsystem), не будут бороться друг с другом за право управлять объектами, что позволяет снизить нагрузку на сервер и выполнять более сложные физические взаимодействия не опасаясь физических коллизий; если указано это свойство, то функции "TurnOn" и "TurnOff" не будут работать;
  • Force Limit to Break (lbs) – минимальная сила, которую необходимо приложить для того чтобы сломать этот физический ограничитель;
  • Torque Limit to Break (lbs * dist) – минимальный момент силы, который необходимо приложить чтобы сломать этот физический ограничитель;
  • Play Sound on Break – звук, воспроизводимый когда ломается этот физический ограничитель (выбирается в Sound Resource Browser); громкость звука постоянна.
  • Friction – трение, возникающее при движении физических объектов вдоль прямой, указанной "Sliding Axis";
  • Load Scale – множитель сил, прикладываемых к физическим объектам во время движения, вызванного функцией "SetVelocity";
  • Sliding Axis – линия вдоль которой будут двигаться физические объекты (указывается при помощи Helper’а);
  • Angles Fix (Read-Only) – используется только для того, чтобы в редакторе Hammer не выводилось сообщение об ошибке: Entity (phys_constraint) has unused keyvalue "angles"; не используется игрой CS:S.

Флаги

  • No Collision until Break – если указан один из физических объектов "Entity 1" или "Entity 2", то он НЕ будет сталкиваться с World-геометрией карты; если указаны оба физических объекта "Entity 1" и "Entity 2", то они не будут сталкиваться между собой; эти ограничения накладываются до тех пор, пока не будет сломан этот физический ограничитель, или пока этот физический ограничитель не будет выключен функцией "TurnOff";
  • Start Inactive – в начале каждого раунда автоматически выполнять функцию "TurnOff"; не используется если указано свойство "Constraint System Manager".
  • Limit Endpoints – установить ограничение на максимальное расстояние между физическими объектами; если указано оба физических объекта "Entity 1" и "Entity 2", то расстояние между ними будет взято за максимальное; если указан только один физический объект "Entity 1" или "Entity 2", то в этом случае конечные точки будут определяться исходя из позиции указанного физического объекта, позиции этого физического ограничителя и/или точки "Sliding Axis".

Inputs

  • TurnOn – включить объект; не работает если указано свойство "Constraint System Manager";
  • TurnOff – выключить объект; не работает если указано свойство "Constraint System Manager";
  • Break – сломать этот физический ограничитель; после вызова этой функции этот физический ограничитель удаляется, поэтому нельзя будет включать и выключать этот его функциями "TurnOn" и "TurnOff";
  • ConstraintBroken – аналогична функции "Break".
  • SetVelocity <float> - установить скорость движения физических объектов вдоль прямой, указанной "Sliding Axis"; если указано оба физических объекта "Entity 1" и "Entity 2", то они будут разъезжаться друг от друга, если указать в этой функции положительное значение; если указан только один физический объект "Entity 1" или "Entity 2", то он будет двигаться вдоль прямой в направлении по умолчанию.

Outputs

  • OnBreak – вызывается тогда, когда объект ломается;

Карта

csssdk_phys_slideconstraint.vmf

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

  • phys_slideconstraint
  • func_detail
  • func_physbox
  • logic_timer

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

На карте установлено несколько объектов func_physbox, которые можно двигать в вдоль некоторых прямых, заданных объектами phys_slideconstraint. Обратите внимание, что некоторые объекты func_physbox не контактируют с World-геометрией, но контактируют с игроком. По первым четырём объектам func_physbox можно просто пострелять и посмотреть за их реакцией. Вслед за ними установлен объект func_physbox в виде небольшого вагончика, который при помощи таймера приводится в движение функцией "SetVelocity" объекта phys_slideconstraint. Этот вагончик ездит назад и вперёд от стены к стене, и если игрок окажется на его пути, то игрок может пострадать, так как этот вагончик довольно массивен и может легко раздавить игрока. Обратите внимание, что для движения вагончика "вперёд" вызывается функция "SetVelocity 100", а для движения в обратную сторону – функция "SetVelocity -1". Возможно, это какая-то недоработка, но в обратную сторону вагончик движется значительно быстрее чем "вперёд". Дальше за вагончиком создано некое подобие лифта, который то поднимается, то опускается в результате вызова всё той же функции "SetVelocity". Если игрок окажется под лифтом в момент когда тот опускается, игрок будет раздавлен лифтом. Последние нерассмотренные объекты на карте – это два шара, объединённых одним физических ограничителем phys_slideconstraint. Эти шары могут двигаться в любом направлении, но они всегда сохраняют ориентацию к друг другу и перемещаются вдоль общей прямой, определённой их объектом phys_slideconstraint.

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