func_physbox
Описание
Объект func_physbox используется для создания обыкновенных брашей (Entity-браши), которые будут вести себя в игре как физические объекты.
Особенности использования
- Этот объект обновляется в каждом раунде. Это означает что любые изменения объекта НЕ будут наследоваться в последующих раундах.
- Объект должен быть установлен там, где будет использоваться.
- На карте может быть установлено множество этих объектов
- Этот объект всегда обрабатывается на стороне сервера.
- Объект НЕ отбрасывает Lightmap-тени. Однако отбрасывает динамические тени.
- Объект НЕ должен пересекаться с другими физическими объектами на карте.
Ошибки
Не обнаружены.
Заметки
Эти объекты при использовании их в игре дают не очень корректные физические столкновения с игроком, что может испортить игровой процесс. Например такие объекты при соприкосновениях с игроком могут подбросить его очень высоко вверх, а при падении игрок потеряет здоровье. Так же этот объект может помешать передвижению игроков, что скорей всего многим игрокам может не понравиться, а так же этот объект может способствовать высокому сетевому трафику, что так же может плачевно сказаться на игровом процессе для игроков. Во избежание вышеописанных проблем используется объект func_physbox_multiplayer, являющийся копией этого объекта, но имеющий упрощённую модель столкновений с игроком.
На некоторых серверах может быть использована не интерактивная физика. Такая физика включается консольной командой "sv_turbophysics 1". При этом игроки не могут сдвинуть физические объекты просто толкая их. Чтобы толкать физические объекты нужно использовать на них клавишу "Использовать". При использовании такого типа физики игроки могут вставать на физические объекты сверху без опасений быть сброшенным в результате неточностей физических расчётов.
Не так то просто найти достойное применение объекту func_physbox. Этот объект "запекает" на себе тени, и во время вращения или прочих манипуляций с объектом это очень хорошо заметно.
Параметры
- Team Num – команда к которой принадлежит этот объект (Нет/Террористы/Контр-Террористы); если игрок и этот объект находятся в одной команде, то игрок не сможет наносить визуальный урон объекту если на сервере mp_friendlyfire равно 0;
- Pitch Yaw Roll (Y Z X) – ориентация объекта на карте (направление распространения);
- Health – количество жизни у этого объекта; 0 – объект не может быть разрушен; используется только если свойство "Prop Data" равно "None", в противном случае уровень жизни объекта определяется свойствами материала "Prop Data";
- Prop Data – физические свойства материала из которого создан объект; влияет на:
- количество жизни у объекта; при этом игнорируется значение свойства "Health";
- количество и размер кусочков объекта после его разрушения;
- влияние каждого типа повреждений на объект; например: деревянную поверхность можно разрушить огнём, а металлическую вообще нельзя ничем разрушить; чтобы узнать какие свойства имеют материалы, смотрите файл: /hl2/scripts/propdata.txt или /cstrike/scripts/propdata.txt
- Material Type – материал и внешний вид кусочков объекта после его разрушения; влияет на внешний вид кусочков объекта, на звук при разрушении объекта, и на некоторые физические свойства; эти физические свойства имеют больший приоритет перед свойствами "Prop Data";
- Precise Gib Direction – направление, в котором будут лететь кусочки объекта при его разрушении; используется только если свойство "Gibs Direction" равно "Use Precise Gib Direction";
- Solid to World – полностью отключить модель столкновений для этого объекта; если не установить флажок "Start Asleep" или "Motion Disabled", то объект в начале каждого раунда будет проваливаться сквозь карту;
- Mass Scale – множитель массы объекта; 0 или 1.0 – масса не меняется; не используется если в свойстве "Physics Override Parameters" одним из параметров является "mass";
- Physics Override Parameters – список параметров для изменения некоторых физических свойств объекта:
- mass <float|kilograms> - изменить массу объекта;
- inertia <float|scale> - изменить инерцию объекта;
- damping <float|scale> - изменить гашение линейной скорости объекта;
- rotdamping <float|scale> - изменить гашение вращений объекта;
- drag <float|scale> - изменить сопротивление воздуха для объекта;
- surfaceprop<string|name> - изменить материал из которого сделан объект;
- список изменений должен быть записан в следующей форме: <свойство,значение>,<свойство,значение>, ... и т.д. например:mass,10,inertia,3,damping,0.75,drag,5000,surfaceprop,glassbottle
- Physics Impact Damage Scale – множитель повреждений, наносимых объекту в результате физических взаимодействий; например: падение на землю, удар со стороны другого объекта или игрока и т.д.;
- Pressure Delay - задержка перед тем как сломаться от давления, оказываемого со стороны другого объекта или игрока (секунды); работает только при включенном флажке "Break on Pressure";
- Min Damage to Hurt – объект будет игнорировать любые типы повреждений со стороны других объектов и игрока, если величина этих повреждений меньше значения этого свойства;
- Health Level to Enable Motion – сколько "здоровья" должно остаться у объекта, чтобы для него автоматически вызвалась функция "EnableMotion"; выполняется один раз за раунд; если значение этого свойства не равно нулю, то для объекта в начале каждого раунда автоматически будет вызываться функция "DisableMotion";
- Force Amount to Enable Motion – какую силу нужно приложить к объекту, чтобы для него автоматически вызвалась функция "EnableMotion"; выполняется один раз за раунд; например: игрок массой 85 килограмм двигаясь со скоростью 100 юнитов в секунду при ударе об объект приложит к нему силу равную 85 * 100 = 8500; если значение этого свойства не равно нулю, то для объекта в начале каждого раунда автоматически будет вызываться функция "DisableMotion"; если установлен флажок "Prevent motion enable on player bump", то физические воздействия на этот объект со стороны игрока не будут учитываться;
- Impact Damage Type - тип повреждений, который наносит этот объект другим объектам при ударе о них:
- Blunt – тупой удар; при ударе генерируется повреждение с типом "CRUSH";
- Sharp – острый удар; при ударе генерируется повреждение с типом "SLASH";
- Disable Damage Forces - отключить силы, прикладываемые к объекту при получении им повреждений (Нет/Да); например: выстрел по объекту не сдвинет его с места;
- Damage Filter – имя объекта-фильтра, который будет контролировать типы повреждений которые можно будет наносить этому объекту;
- 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 - максимальное расстояние на которое распространяются динамические тени от этого объекта;
- Disable Receiving Shadows – отключить динамические тени от других объектов на этом объекте;
- Minimum Light Level – минимальный уровень освещённости этого объекта; высокое значение этого свойства приведёт к тому, что объект станет очень ярким, будет хорошо заметен в темноте и на нём не будут различаться Lightmap-тени от других объектов; используется только в процессе компиляции карты;
- Origin (X Y Z) – точка опоры объекта (указывается при помощи Helper’а).
Флаги
- Start Asleep – объект будет "спать" в начале каждого раунда; объект не будет двигается пока его не "разбудят"; чтобы "разбудить" объект, нужно приложить к нему какую-нибудь силу (например: задеть его или выстрелить по нему) или вызвать функцию "Wake" или "EnableMotion"; не используется, если установлен флажок "Motion Disabled";
- Motion Disabled – для объекта в начале каждого раунда автоматически будет вызвана функция "DisableMotion";
- Debris – физические объекты, отмеченные как "Debris" могут активировать этот объект; используется только если установлен флажок "Physics Objects"; для физических объектов не обязательно устанавливать флажок "Force Debris Touch Triggers";
- Generate OnPlayerUse on +USE – событие "OnPlayerUse" выполняется всякий раз, когда игрок нажимает клавишу "Использовать" на этом объекте; (см. флажок "Debris");
- Only Break on Trigger – объект не получает никаких повреждений и может быть сломан только вызовом некоторых функций из пункта "Inputs";
- Break on Touch – объект сломается если игрок заденет его; будет ли объект ломаться зависит от типа материала, указанного в свойствах (может быть указано в "Material Type" и "Prop Data"); не используется если установлен флажок "Only Break on Trigger";
- Break on Pressure – объект сломается если игрок окажет на него давление; например: когда игрок наступает на объект сверху; не используется если установлен флажок "Only Break on Trigger";
- Break immediately on Physics – объект сломается если его заденет любой другой физический объект; будет ли объект ломаться зависит от типа материала, указанного в свойствах "Material Type" и "Prop Data"; не используется если установлен флажок "Only Break on Trigger";
- Don’t take physics damage – не получать повреждений в результате столкновений с физическими объектами.
Inputs
- Wake – "разбудить" объект во время игры; (см. флажок "Start Asleep");
- Sleep - "усыпить" объект во время игры; (см. флажок "Start Asleep");
- EnableMotion – разрешить объекту двигаться; эта функция вызывается автоматически в момент выполнения условий для свойств "Health Level to Enable Motion" и/или "Force Amount to Enable Motion";
- DisableMotion – запретить объекту двигаться; объект замирает в воздухе; в то время как объект неподвижен, он использует модель столкновений BSP, а не Vphysics; эта функция вызывается автоматически в начале каждого раунда, если используются свойства "Health Level to Enable Motion" и/или "Force Amount to Enable Motion";
- DisableFloating - отключить взаимодействия объекта с водой; при этом объект будет пролетать через воду так, как будто бы воды не существует; законы физики под водой тоже не будут влиять на объект; после вызова этой функции включить взаимодействия с водой будет нельзя;
- SetTeam <integer> - установить новое значение свойства "Team Num"; 2 – Террористы; 3 – Контр-Террористы;
- PhysDamageScale <float> - установить новое значение свойства "Physics Impact Damage Scale";
- Break – удалить объект точно так же как это делает функция Kill;
- SetHealth <integer> - переключиться на следующую анимацию объекта;
- AddHealth <integer> – добавить объекту указанное количество здоровья;
- RemoveHealth <integer> – отнять у объекта указанное количество здоровья;
- 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 – выключить динамические тени от объекта;
Outputs
- OnAwakened - выполняется тогда, когда объект "просыпается"; (см. флажок "Start Asleep");
- OnPlayerUse – выполняется тогда, когда игрок нажимает клавишу "Использовать" на этом объекте; выполняется только если установлен флажок "Generate OnPlayerUse on +USE";
- OnMotionEnabled – выполняется тогда, когда для объекта вызывается функция "EnableMotion";
- OnBreak – вызывается тогда, когда объект ломается;
- OnHealthChanged <float> – вызывается тогда, когда у объекта изменится количество "жизни"; возвращает процент жизни относительно своего максимального значения (от 0.0 до 1.0).
Карта
csssdk_func_physbox.vmf
Используются объекты
- func_physbox
- func_button
- func_detail
Описание карты
На карте несколько физических объектов func_physbox с разными флажками, типами материалов и прочими настройками. Постреляйте по каждому из них, потолкайте их, понажимайте кнопки на пультах и посмотрите на их реакцию.
Обратите внимание, что Lightmap-тени на шарах не обновляются. Это одна из особенностей всех брашей в движке Source. Исправить это нельзя.
Если Вам понравилась эта страница, Вы можете разместить где-нибудь ссылку на неё: