Ru/Prop data: Difference between revisions

From Valve Developer Community
< Ru
Jump to navigation Jump to search
No edit summary
m (Using L template for links)
 
(18 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{otherlang2
{{lang|Prop data|title=prop_data}}
|title=prop_data
|en=Prop data
|jp = Prop data:jp
}}
 
{{toc-right}}
{{toc-right}}


'''<code>prop_data</code>''' могут быть использованы, чтобы создавать модели:
'''<code>prop_data</code>''' могут быть использованы, чтобы создавать модели:


* [[#Options|Физические]] (по умолчанию, модели с <code>prop_data</code> не могут быть [[prop_static|статикой]])
* [[#Options|Физические]] (по умолчанию, модели с <code>prop_data</code> не могут быть {{L|prop_static|статикой}})
* [[#Damage modifiers|Разбиваемые]] (с [[#Gibs|гибсами]])
* [[#Damage modifiers|Разбиваемые]] (с [[#Gibs|гибсами]])
* [[#Flammable props|Поджигаемые]]
* [[#Flammable props|Поджигаемые]]
* [[#Exploding props|Взрывающиеся]]
* [[#Exploding props|Взрывающиеся]]


Их блок [[KeyValues]] встроен с помощью QC-команды <code>[[$keyvalues]]</code>.
Их блок {{L|KeyValues}} встроен с помощью QC-команды <code>{{L|$keyvalues}}</code>.


{{note|Свойства ''поверхности'' модели определяются <code>[[$surfaceprop]]</code>.}}
{{Note|Свойства ''поверхности'' модели определяются в <code>{{L|$surfaceprop}}</code>.}}
{{note|Моделям, используемым как [[prop_physics|физика]], будет необходим <code>[[$staticprop]]</code>.}}
{{Note|Моделям, используемым как {{L|prop_physics|физика}}, будет необходим <code>{{L|$staticprop}}</code>.}}


== Пример ==
== Пример ==


  [[$keyvalues]]
  {{L|$keyvalues}}
  {
  {
  prop_data
  prop_data
Line 32: Line 27:
  }
  }


Здесь мы получаем prop_data из стандартного base_type "Wooden.Small". Затем берём дополнительные ключевые значения, чтобы дать модели три специальные характеристики: она будет пуленепробиваемой, но когда взорвётся, нанесет ущерб до 100 сущностям в радиусе 50 единиц.
Здесь мы получаем prop_data из стандартного base_type "Wooden.Small". Затем берём дополнительные ключевые значения, чтобы дать модели три специальные характеристики: она будет пуленепробиваемой, но когда взорвётся, нанесет ущерб 100 в радиусе 50 единиц.


==Советы==
==Советы==
Line 49: Line 44:
=== Должна ли моя модель быть физической? ===
=== Должна ли моя модель быть физической? ===


В Half-Life 2, Valve старается следовать этим общим правилам:
В Half-Life 2, Valve старается следовать общим правилам:


;Если модель прикреплена к не-физической вещи или поддерживает её...
;Если модель прикреплена к не-физической вещи или поддерживает её...
Line 60: Line 55:
:Она должна быть физикой.
:Она должна быть физикой.


Кроме того Valve рассматривает металл и пластик как неуязвимые, но всё же разбиваемые материалы.
Кроме того, Valve рассматривает металл и пластик как неуязвимые, но всё же разбиваемые материалы.


== Свойства ==
== Свойства ==
Line 66: Line 61:
=== Тип основы ===
=== Тип основы ===


; <code>base <[[string]]></code>
; <code>base <{{L|string}}></code>
: Даёт модели [[prop_data base types|предопределенный тип prop_data]], обеспечивая одним движением все данные, необходимые движку, чтобы создать модель одновременно и физической и разбиваемой. Большинство других команд в блоке prop_data переопределяют значения, унаследованные отсюда.
: Даёт модели {{L|prop_data base types|предопределенный тип prop_data}}, обеспечивая одним движением все данные, необходимые движку, чтобы создать модель одновременно и физической и разбиваемой. Большинство других команд в блоке prop_data переопределяют значения, унаследованные отсюда.


===Общие===
===Общие===


; <code>health <[[int]]></code>
; <code>health <{{L|int}}></code>
: Количество повреждений, которые объект должен принять до момента разбивания. 0 означает, что не ломается.
: Количество повреждений, которые объект должен принять до момента разбивания. 0 означает, что не ломается.
; <code>allowstatic <[[bool]]></code>
; <code>allowstatic <{{L|bool}}></code>
: Позволяет использовать модель как [[prop_static|статику]]. Для обеспечения согласованности, избегайте по возможности.
: Позволяет использовать модель как {{L|prop_static|статику}}. Для обеспечения согласованности, избегайте по возможности.
; <code>physicsmode <choices></code>
; <code>physicsmode <choices></code>
: Задает режим физики, используемый в [[prop_physics_multiplayer]]. Может быть переопределен сущностью в Orange Box.
: Задает режим физики, используемый в {{L|prop_physics_multiplayer}}. Может быть переопределен сущностью в Orange Box.
{{physicsmode choices}}
* Твердый, отталкивает игрока.
* Не-твердый, но отталкивается игроком.
* Не-твердый, моделируется только на стороне клиента.
; <code>blockLOS <bool></code>
; <code>blockLOS <bool></code>
: Определяет, блокирует ли он [[line of sight|линию взгляда]] NPC. Если не указано, движок игры будет принимать решение на основе размеров модели.  
: Определяет, блокирует ли он {{L|line of sight|линию взгляда}} NPC. Если не указано, движок игры будет принимать решение на основе размеров модели.  
; <code>AIWalkable <bool></code>
; <code>AIWalkable <bool></code>
: Должны ли боты ходить по этому объекту? {{todo:ru|Имеет ли значение тип объекта?}}
: Должны ли боты проходить этот объект? {{todo|Имеет ли значение тип объекта?}}


=== Модификаторы урона ===
=== Модификаторы урона ===


''Use damage modifiers to reflect differences between the amount of damage that an object takes from different attacks. '''Don't''' use them to reflect overall damage strength. (e.g. Stone is resilient to everything. To reflect this, increase the health of all stone objects, don't set the damage modifiers lower.)''
''Модификаторы урона используются для отражения разницы между суммой ущерба, которую объект принимает от различных атак. '''Не''' используйте их, чтобы отражать полную силу ущерба. (например, камень устойчив ко всему. Чтобы отразить это, увеличьте здоровье всех камней, не ставьте модификаторы урона ниже.)''


; <code>dmg.bullets</code> <float> : Modifies damage done by bullets.
; <code>dmg.bullets</code> <float> : Изменяет урон от пуль.
:* Paper, Cloth and Glass = 0.5
:* Бумага, ткань и стекло = 0.5
:* Wood = 0.75
:* Дерево = 0.75
:* Flesh = 1.25.
:* Flesh = 1.25.
; <code>dmg.club</code> <float> : Modifies damage done by blunt impacts.
; <code>dmg.club</code> <float> : Урон от тупого предмета.
:* Cloth = 0.75
:* Ткань = 0.75
:* Paper and Pottery = 1.25
:* Бумага и керамика = 1.25
:* Wood = 2.0
:* Дерево = 2.0
; <code>dmg.explosive</code> <float> : Modifies damage done by explosions.
; <code>dmg.explosive</code> <float> : Урон от взрывов.
:* Paper, Cloth, Pottery, Flesh and Wood = 1.5
:* Бумага, ткань, керамика, флэш и дерево = 1.5
; <code>damage_table</code> <choices>
; <code>damage_table</code> <choices>
: [[Impact Damage Table]]s are defined in C++ code (in physics_impact_damage.cpp), and contain very detailed information about what damage a prop should take from different directions and forces. Only Glass and Pottery base_types inherit one. {{tip|Use <code> damage_table "" </code> to ignore an inherited table.}}
: {{L|Impact Damage Table|Таблица повреждений}} задана в коде C++ (в physics_impact_damage.cpp), и содержит самую подробную информацию о том, какой урон получает объект с различных направлений и силы удара. Только стекло и керамика наследуют один base_type. {{tip|Используйте <code> damage_table "" </code>, чтобы игнорировать таблицу наследования.}}
:; <code>glass</code>
:; <code>glass</code>
:: Extremely fragile, will break just by being dropped.
:: Чрезвычайно хрупкий, разбивается даже при падении.
:; <code>player</code>
:; <code>player</code>
:: {{todo}}
:: {{todo}}
Line 108: Line 105:
:: {{todo}}
:: {{todo}}


=== Flammable props ===
=== Воспламеняющиеся объекты ===


''<code>fire_interactions</code> is a subkey of <code>prop_data</code> that defines flammability. There are only three known parameters, each with only one known value:''
''<code>fire_interactions</code> - это подраздел <code>prop_data</code>, который отвечает за воспламеняемость. Имеет всего три известных параметра, каждый с одним известным значением:''


  [[$keyvalues]]
  {{L|$keyvalues}}
  {
  {
     prop_data
     prop_data
Line 118: Line 115:
       fire_interactions
       fire_interactions
       {
       {
           '''ignite      halfhealth''' // Will ignite spontaneously on reaching 50% health.
           '''ignite      halfhealth''' // Будет самовозгораться при достижении 50% здоровья.
           '''explosive_resist  yes''' // Clamp blast damage so that the prop ignites instead of breaking.
           '''explosive_resist  yes''' // Ограничивает урон от взрыва, так что объект загорается вместо того, чтобы разрушиться.
           '''flammable          yes''' // Can be ignited by fire and explosions.
           '''flammable          yes''' // Может загораться от огня и взрывов.
       }
       }
     }
     }
  }
  }


* {{note|fire_interactions may not function while within the prop_data section. Move it just below the prop_data section if you encounter problems}}
* {{Note|fire_interactions может не работать в разделе prop_data. Если у вас возникли проблемы, переместите его ниже раздела prop_data}}
* {{todo|confirm that fire_interactions are not used for flammable NPC models.}}
* {{todo|подтвердить, что fire_interactions не используется для воспламеняющихся моделей NPC.}}
* {{todo|confirm whether unbreakable (health 0) models can be flammable.}}
* {{todo|подтвердить, что не разрушаемые (здоровье 0) модели могут воспламеняться.}}


=== Exploding props ===
=== Взрывающиеся объекты ===


''If these two fields are specified for a prop, and it is given health so that it can be damaged, then it will explode when it breaks.''
''Эти два поля определяют количество жизни, которое отнимет объект во время взрыва.''


; <code>explosive_damage <float></code>
; <code>explosive_damage <float></code>
: The amount of explosive damage.
: Сила повреждений от взрыва.
; <code>explosive_radius <float></code>
; <code>explosive_radius <float></code>
: The radius of the explosion. Damage falls off as distance from the origin increases.
: Радиус взрыва. Чем дальше от взрыва, тем повреждений меньше.


=== Gibs ===
=== Гибы ===


''The prop_data system handles generic [[Wikipedia:Gibs|gibs]]. Generic gibs are used for any breakable object that doesn't have [[Creating Custom Breakable Gibs|custom gibs]].''  
''Система prop_data обрабатывает стандартные {{L|Wikipedia:Gibs|гибы}}. Стандартные гибы используются для любого разрушаемого объекта, у которого нет {{L|Creating Custom Breakable Gibs|пользовательских гибов}}.''  


; <code>breakable_model <choices></code>
; <code>breakable_model <choices></code>
: Defines the set of generic gibs (as defined in <code>scripts\propdata.txt</code>) this prop should break into. Props with a wooden base type gib in this manner already. See also [[Creating Custom Breakable Gibs|creating custom gibs]].
: Задает набор стандартных гибов (как в <code>scripts\propdata.txt</code>) этого разрушаемого объекта. Объекты с гибом древесной основы в этой манере. См. также {{L|Creating Custom Breakable Gibs|создание гибов}}.
:* <code>WoodChunks</code>
:* <code>WoodChunks</code>
:* <code>GlassChunks</code>
:* <code>GlassChunks</code>
Line 149: Line 146:
:* <code>MetalChunks</code>
:* <code>MetalChunks</code>
; <code>breakable_count <int></code>
; <code>breakable_count <int></code>
: The number of generic breakable gibs to break into. If this is not specified, the engine will generate a sensible number based on the gibs' and model's sizes.  
: Количество стандартных разбиваемых гибов. Если не задано, движок генерирует разумное число на основе гибов или размеров модели.  
; <code>breakable_skin <int></code>
; <code>breakable_skin <int></code>
: Allows you to specify a skin to use on the gib models, which is useful for matching the original prop's skin.
: Позволяет задать скин для использования на гиб-моделях, который соответствует оригинальному скину объектов.
: Only props with Wooden base_types inherit a gib skin (skin 0).
: Только объекты с деревянными base_types наследуют гиб-скин (скин 0).
; <code>multiplayer_break <choices></code>
; <code>multiplayer_break <choices></code>
: {{confirm|Determines where the gibs from a [[prop_physics_multiplayer]] are simulated.}}
: {{confirm:ru|Определить, где моделируются гибы из {{L|prop_physics_multiplayer}}.}}
:* <code>both</code>
:* <code>both</code>
:* <code>server</code>
:* <code>server</code>
Line 162: Line 159:
* {{todo|Confirm whether multiplayer_break is set for the breakable model rather than each individual gib itself.}}
* {{todo|Confirm whether multiplayer_break is set for the breakable model rather than each individual gib itself.}}


== Creating new base types ==
== Создание новых базовых типов ==


All base types are defined in <code>scripts\propdata.txt</code>. If you edit a base type in this file, you will affect the behaviour of all models using it (that do not have their own overrides).
Все базовые типы задаются в <code>scripts\propdata.txt</code>. Редактирование базовых типов в этом файле повлияет на поведение всех моделей, которые его используют (и не имеют своих собственных переопределений).


The format of the file is:
Формат файла:


<source lang=cpp>
<source lang=cpp>
Line 178: Line 175:
</source>
</source>


Valve generally only use their base types to set health and damage modifiers.
Как правило, Valve использует эти типы только для того, чтобы задать модификаторы здоровья и урона.


=== Creating generic gibs ===
=== Создание стандартных гибов ===


Generic gibsets are also defined in propdata.txt. Valve have only four, and only one (<code>WoodChunks</code>) is assigned to a base type - most models instead specify theirs directly, with <code>breakable_model</code>.
Стандартные гибы также задаются в propdata.txt. У Valve есть только четыре гиба, и только одному (<code>WoodChunks</code>) присваивается базовый тип — для остальных моделей тип задается напрямую, с помощью <code>breakable_model</code>.


Defining a new gibset is easy as most of the work is done by the engine:
Определить новый gibset легко, поскольку движок делает большую часть работы:


<source lang=cpp>
<source lang=cpp>
Line 204: Line 201:
</source>
</source>


== Prototyping models ==
== Работа с прототипами моделей ==


When working on prototypes, or when you don't have modellers handy, it's useful to be able to work around the prop data system's enforcement. To do this, use the [[prop_physics_override]] and [[prop_dynamic_override]] entities instead of [[prop_physics]] and [[prop_dynamic]]. A [[prop_physics_override]] entity will not remove itself if it is assigned a model that wants to be static (i.e. has no "prop_data" entry in its <code>$keyvalues</code> .[[qc|QC]] section). It will also allow the level designer to set its "health".
Во время работы над прототипами, когда под рукой нет моделиста, весьма полезно обойти систему принуждения проп-данных. Для этого используйте сущности {{L|prop_physics_override}} и {{L|prop_dynamic_override}} вместо {{L|prop_physics}} и {{L|prop_dynamic}}. Сущность {{L|prop_physics_override}} не удалит себя, если ей назначена модель, которая хочет быть статичной (т. е. не имеет  записей "prop_data" в <code>$keyvalues</code> раздела .{{L|qc|QC}}). Это также позволит дизайнеру уровня настроить "здоровье".


The override entities allow you to temporarily use models incorrectly while prototyping, or waiting for a modeller to finish up a new model that has the properties you desire. '''It is highly recommended''' that you use Hammer's [[Hammer Entity Report Dialog|Entity Report]] feature to check each of your maps to ensure you have no override entities left when you ship them. Otherwise you may be shipping physics inconsistencies, and players are extremely quick to notice them (the orange bucket won't move when I shoot it on this level, but it did on the previous one).
Переопределение сущностей во время испытания прототипа временно позволяет использовать модели некорректно, пока моделист не задаст им нужные свойства. '''Настоятельно рекомендуется''' использовать {{L|Hammer Entity Report Dialog|Журнал отчета по сущностям}} в Хаммере, чтобы перед отправкой карт убедиться, что на них нет переопределенных сущностей. Иначе вы получите несоответствие физики, которое игроки быстро заметят (при стрельбе по оранжевому ведру оно не двигается, как на предыдущем уровне).


See also [[func_physbox]] for brush-based physics objects.
См. также {{L|func_physbox}} - брашевые физические объекты.


== See also ==
== См. также ==


* [[prop_data base types]]
* {{L|prop_data base types}}
* [[prop_static]], [[prop_dynamic]], [[prop_physics]] - common prop entities.
* {{L|prop_static}}, {{L|prop_dynamic}}, {{L|prop_physics}} — общие проп-сущности.
* [[Prop Types Overview]] - an article describing various prop types.
* {{L|Prop Types Overview}} — статьи,  описывабщие различные виды пропов.
* [[physgun interactions]] - another QC $keyvalues block that defines some special interactions between [[prop_physics]] models and the [[physcannon]].
* {{L|physgun interactions}} — другой блок QC $keyvalues, который определяет различные взаимодействия между моделями {{L|prop_physics}} и гравипушкой.


[[Category:Modeling]]
[[Category:Modeling]]
[[Category:QC Keyvalues]]
[[Category:QC Keyvalues]]

Latest revision as of 07:39, 11 July 2024

English (en)日本語 (ja)Русский (ru)Translate (Translate)

prop_data могут быть использованы, чтобы создавать модели:

Их блок KeyValues(en) встроен с помощью QC-команды $keyvalues(en).

Note.pngПримечание:Свойства поверхности модели определяются в $surfaceprop(en).
Note.pngПримечание:Моделям, используемым как физика(en), будет необходим $staticprop(en).

Пример

$keyvalues(en)
{
	prop_data
	{
		base			Wooden.Small 
		dmg.bullets		0 
		explosive_damage	100
		explosive_radius	50 
	}
}

Здесь мы получаем prop_data из стандартного base_type "Wooden.Small". Затем берём дополнительные ключевые значения, чтобы дать модели три специальные характеристики: она будет пуленепробиваемой, но когда взорвётся, нанесет ущерб 100 в радиусе 50 единиц.

Советы

Вам не нужно что-либо переопределять
Просто установите base, и она будет работать как физический объект.
Не переопределяет уровни здоровья у ваших пропов
Вместо этого, пусть здоровье будет настроено по-умолчанию. Таким образом, один стул не получит вдвое больший урон, чем другой стул.
Всегда, когда это возможно, избегайте смешивания типов материалов внутри одного пропа
Не создавайте полуметаллические, полудеревянные пропы.
Избегайте скопления нескольких объектов в одном пропе
Особенно, если вы или Valve по отдельности смоделировали идентичные объекты в разных местах.
Избегайте движущихся частей или материалов, которые Source не моделирует
Не помещайте воду в физический аквариум.

Должна ли моя модель быть физической?

В Half-Life 2, Valve старается следовать общим правилам:

Если модель прикреплена к не-физической вещи или поддерживает её...
То должна быть статикой.
Если генерирует статичный свет...
То должна быть статикой.
Если она настолько велика, что игрок не может двигать её...
То должна быть статикой.
В остальном...
Она должна быть физикой.

Кроме того, Valve рассматривает металл и пластик как неуязвимые, но всё же разбиваемые материалы.

Свойства

Тип основы

base <string(en)>
Даёт модели предопределенный тип prop_data(en), обеспечивая одним движением все данные, необходимые движку, чтобы создать модель одновременно и физической и разбиваемой. Большинство других команд в блоке prop_data переопределяют значения, унаследованные отсюда.

Общие

health <int(en)>
Количество повреждений, которые объект должен принять до момента разбивания. 0 означает, что не ломается.
allowstatic <bool(en)>
Позволяет использовать модель как статику(en). Для обеспечения согласованности, избегайте по возможности.
physicsmode <choices>
Задает режим физики, используемый в prop_physics_multiplayer(en). Может быть переопределен сущностью в Orange Box.
  • Твердый, отталкивает игрока.
  • Не-твердый, но отталкивается игроком.
  • Не-твердый, моделируется только на стороне клиента.
blockLOS <bool>
Определяет, блокирует ли он линию взгляда(en) NPC. Если не указано, движок игры будет принимать решение на основе размеров модели.
AIWalkable <bool>
Должны ли боты проходить этот объект?
Нужно сделать: Имеет ли значение тип объекта?

Модификаторы урона

Модификаторы урона используются для отражения разницы между суммой ущерба, которую объект принимает от различных атак. Не используйте их, чтобы отражать полную силу ущерба. (например, камень устойчив ко всему. Чтобы отразить это, увеличьте здоровье всех камней, не ставьте модификаторы урона ниже.)

dmg.bullets <float>
Изменяет урон от пуль.
  • Бумага, ткань и стекло = 0.5
  • Дерево = 0.75
  • Flesh = 1.25.
dmg.club <float>
Урон от тупого предмета.
  • Ткань = 0.75
  • Бумага и керамика = 1.25
  • Дерево = 2.0
dmg.explosive <float>
Урон от взрывов.
  • Бумага, ткань, керамика, флэш и дерево = 1.5
damage_table <choices>
Таблица повреждений(en) задана в коде C++ (в physics_impact_damage.cpp), и содержит самую подробную информацию о том, какой урон получает объект с различных направлений и силы удара. Только стекло и керамика наследуют один base_type.
Tip.pngСовет:Используйте damage_table "" , чтобы игнорировать таблицу наследования.
glass
Чрезвычайно хрупкий, разбивается даже при падении.
player
[Нужно сделать]
player_vehicle
[Нужно сделать]
npc
[Нужно сделать]

Воспламеняющиеся объекты

fire_interactions - это подраздел prop_data, который отвечает за воспламеняемость. Имеет всего три известных параметра, каждый с одним известным значением:

$keyvalues(en)
{
   prop_data
   {
      fire_interactions
      {
         ignite      halfhealth 	// Будет самовозгораться при достижении 50% здоровья.
         explosive_resist   yes 	// Ограничивает урон от взрыва, так что объект загорается вместо того, чтобы разрушиться.
         flammable          yes 	// Может загораться от огня и взрывов.
      }
    }
}
  • Note.pngПримечание:fire_interactions может не работать в разделе prop_data. Если у вас возникли проблемы, переместите его ниже раздела prop_data
  • Нужно сделать: подтвердить, что fire_interactions не используется для воспламеняющихся моделей NPC.
  • Нужно сделать: подтвердить, что не разрушаемые (здоровье 0) модели могут воспламеняться.

Взрывающиеся объекты

Эти два поля определяют количество жизни, которое отнимет объект во время взрыва.

explosive_damage <float>
Сила повреждений от взрыва.
explosive_radius <float>
Радиус взрыва. Чем дальше от взрыва, тем повреждений меньше.

Гибы

Система prop_data обрабатывает стандартные гибы(en). Стандартные гибы используются для любого разрушаемого объекта, у которого нет пользовательских гибов(en).

breakable_model <choices>
Задает набор стандартных гибов (как в scripts\propdata.txt) этого разрушаемого объекта. Объекты с гибом древесной основы в этой манере. См. также создание гибов(en).
  • WoodChunks
  • GlassChunks
  • ConcreteChunks
  • MetalChunks
breakable_count <int>
Количество стандартных разбиваемых гибов. Если не задано, движок генерирует разумное число на основе гибов или размеров модели.
breakable_skin <int>
Позволяет задать скин для использования на гиб-моделях, который соответствует оригинальному скину объектов.
Только объекты с деревянными base_types наследуют гиб-скин (скин 0).
multiplayer_break <choices>
Подтвердить:Определить, где моделируются гибы из prop_physics_multiplayer(en).
  • both
  • server
  • client (default)
  • Нужно сделать: Confirm whether breakable_count, breakable_skin and multiplayer_break do not affect custom gibs.
  • Нужно сделать: Confirm whether multiplayer_break is set for the breakable model rather than each individual gib itself.

Создание новых базовых типов

Все базовые типы задаются в scripts\propdata.txt. Редактирование базовых типов в этом файле повлияет на поведение всех моделей, которые его используют (и не имеют своих собственных переопределений).

Формат файла:

PropData.txt
{
	<base type name>
	{
		<any number of the prop_data KVs listed above>
	}
}

Как правило, Valve использует эти типы только для того, чтобы задать модификаторы здоровья и урона.

Создание стандартных гибов

Стандартные гибы также задаются в propdata.txt. У Valve есть только четыре гиба, и только одному (WoodChunks) присваивается базовый тип — для остальных моделей тип задается напрямую, с помощью breakable_model.

Определить новый gibset легко, поскольку движок делает большую часть работы:

PropData.txt
{
	BreakableModels
	{
		WoodChunks
		{
			// Smallest to largest:
			models\Gibs\wood_gib01e.mdl	1
			models\Gibs\wood_gib01d.mdl	1
			models\Gibs\wood_gib01c.mdl	1
			models\Gibs\wood_gib01b.mdl	1
			models\Gibs\wood_gib01a.mdl	1
		}
	}
}

Работа с прототипами моделей

Во время работы над прототипами, когда под рукой нет моделиста, весьма полезно обойти систему принуждения проп-данных. Для этого используйте сущности prop_physics_override(en) и prop_dynamic_override(en) вместо prop_physics(en) и prop_dynamic(en). Сущность prop_physics_override(en) не удалит себя, если ей назначена модель, которая хочет быть статичной (т. е. не имеет записей "prop_data" в $keyvalues раздела .QC(en)). Это также позволит дизайнеру уровня настроить "здоровье".

Переопределение сущностей во время испытания прототипа временно позволяет использовать модели некорректно, пока моделист не задаст им нужные свойства. Настоятельно рекомендуется использовать Журнал отчета по сущностям(en) в Хаммере, чтобы перед отправкой карт убедиться, что на них нет переопределенных сущностей. Иначе вы получите несоответствие физики, которое игроки быстро заметят (при стрельбе по оранжевому ведру оно не двигается, как на предыдущем уровне).

См. также func_physbox(en) - брашевые физические объекты.

См. также