ПОВРЕЖДЕНИЯМЯГКИЕ ЗОНЫ
Мягкие зоны
Кузов жёсткий не везде. Передняя зона смятия должна складываться, а салон — сохранять форму. Зона жёсткости указывает, где именно. Это коробка на кузове, которая делит вмятину от каждого удара, попавшего внутрь неё. Зоны живут в профиле вмятин, а Zone Editor рисует и формирует их в редакторе Blueprint. Зоны делят вмятины, а не краску: краска изнашивается по мере движения металла, в какой бы зоне он ни был.
Что это делает
Заголовок раздела «Что это делает»Каждая зона — коробка. Удар внутри неё выдавливает металл меньше или больше, чем остальной кузов. Более жёсткая зона также удерживает порог или продольную балку крыши на месте, пока дверь между двумя такими зонами проваливается. Прижатие зоны не учитывает.
Как это работает
Заголовок раздела «Как это работает»- Коробка. Коробка задаётся в пространстве корневого компонента, в см. Снаружи неё зона ничего не меняет. Грань на коллизии кузова или за ней считается обшивкой: зона держит полную силу до неё. Часть коробки за пределами решётки игнорируется.
- Stiffness. При 1 вмятина получается такой же, как на остальном кузове. При 3 вмятина от удара в три раза мельче. При 0.5 — вдвое глубже. Чем выше значение, тем жёстче и тем мельче вмятина.
- Edge Width. Зона плавно включается по полосе вдоль своих внутренних граней, поэтому две зоны, которые заходят друг в друга, сливаются. Две зоны, которые только касаются, гаснут на общей грани.
- Max Depth. Предел глубины, на которую любой удар вдавливает кузов внутри коробки, сколько бы ударов ни пришло. 0 — использовать Max Displacement профиля.
- Mirrored. Зона также действует, отражённая относительно центральной линии кузова, поэтому одна зона покрывает левую и правую дверь.
- Перекрытие. Где коробки перекрываются, побеждает более жёсткая.
Zone Editor рисует каждую зону так, как её рисует игра. H переключает тепловую карту решётки: выключена, вокруг выбранной зоны или все узлы. Строка подсказки редактора перечисляет остальное: LMB выбирает, RMB открывает меню, Ctrl+D дублирует, Del удаляет, M отражает, F фокусирует, а Esc снимает выделение.
Редактор рисует и меняет зоны только во вьюпорте Blueprint, для выбранного компонента deform или адаптера автомобиля. Уровень и Play In Editor ничего не показывают. Пресеты для меню берутся из Project Settings > Plugins > Crushform Zone Editor.
Настройка
Заголовок раздела «Настройка»- Сделайте профиль, как в Вмятинах и решётке, шаги 1 и 2. На автомобиле задайте Deform Profile адаптера и оставьте Dirt and Dents включённым. Если Deform Profile пуст, машина использует профиль проекта по умолчанию, и у редактора нет собственного профиля для правки. Профиль седана из плагина,
DA_CF_Profile_Sedan, поставляется без зон, поэтому зоны ниже добавляете вы. - Откройте Blueprint автомобиля и выберите компонент адаптера во вьюпорте или в списке Components.
- В панели Details найдите раздел Stiffness Zones и нажмите Add Zone. Новая зона встанет в середину решётки, в четверть её размера.
- Перетаскивайте грани зоны во вьюпорте, пока коробка не покроет часть, которую нужно сделать жёстче или мягче. Задайте Stiffness, Edge Width и Max Depth на карточке зоны или в её строке.
| Stiffness Zones | ||
|---|---|---|
| DA_CF_Profile_Sedan · used by 1 asset | ||
| Stiffness Zones | 2 Array elements | |
| Index [ 0 ] | ||
| Index [ 1 ] | ||
| Box | ||
| Stiffness | 2.0 | |
| Edge Width | 20.0 | |
| Max Depth | 12.0 | |
| Mirrored | ||
| Name | Cabin | |
- Для детали, которая идёт парами, например двери, выберите в меню Mirror Left and Right. Тогда зона покроет и своё отражение относительно центральной линии.
- Сохраните ассет профиля. Каждое изменение идёт в профиль, и каждый ассет, который использует профиль, получает те же зоны.
Plugins - Crushform Zone Editor
The stiffness zone editor's presets: Project Settings > Plugins > Crushform Zone Editor, kept in DefaultEditor.ini for the team.
| Zones | ||
|---|---|---|
| Zone Presets | 4 Array elements | |
| Index [ 0 ] | ||
| Name | Frame | |
| Stiffness | 3.0 | |
| Max Depth | 0.0 | |
| Edge Width | 20.0 | |
| Index [ 1 ] | ||
| Name | Cabin | |
| Stiffness | 2.0 | |
| Max Depth | 12.0 | |
| Edge Width | 20.0 | |
| Index [ 2 ] | ||
| Name | Crumple | |
| Stiffness | 0.5 | |
| Max Depth | 0.0 | |
| Edge Width | 20.0 | |
| Index [ 3 ] | ||
| Name | Neutral | |
| Stiffness | 1.0 | |
| Max Depth | 0.0 | |
| Edge Width | 20.0 | |
Использование
Заголовок раздела «Использование»Ни один вызов Blueprint или C++ во время работы не меняет зоны. Зоны — это данные в профиле. Единственный вспомогательный вызов C++ — FCFStiffnessZone::MirrorBox, который даёт коробку отражённой пары зоны:
// The twin of a mirrored zone: its box reflected across Y = 0 of the root component's space.const FBox Twin = FCFStiffnessZone::MirrorBox(Zone.Box);Zone — это FCFStiffnessZone из UCFProfile::StiffnessZones профиля.
Основные настройки
Заголовок раздела «Основные настройки»| Свойство | Что делает | По умолчанию |
|---|---|---|
UCFProfile::StiffnessZones | Зоны профиля, которые показаны как Stiffness Zones. | Пусто |
FCFStiffnessZone::Box | Коробка зоны в пространстве корневого компонента, см. | Недействительна, пока не задана |
FCFStiffnessZone::Stiffness | Во столько раз вмятина здесь мельче: 1 — как у остального кузова, больше — жёстче. | 1 |
FCFStiffnessZone::EdgeWidth | Ширина полосы вдоль внутренних граней, на которой зона плавно включается, см. | 20 |
FCFStiffnessZone::MaxDepth | Самая большая глубина, на которую удар вдавливает внутри коробки, см. 0 — использовать Max Displacement профиля. | 0 |
FCFStiffnessZone::bMirrored | Также действует, отражённая относительно Y = 0. | Выкл. |
UCFEditorSettings::ZonePresets | Пресеты в меню зон: Frame (жёсткость 3), Cabin (2, глубина 12 см), Crumple (0.5) и Neutral (1). | Четыре перечисленных выше |
Проверка работы
Заголовок раздела «Проверка работы»- Откройте Proving Ground в Play In Editor с машиной, у профиля которой есть зоны, которые вы сделали выше.
- Введите
Crushform.ShowZones 1. Каждая зона рисуется коробкой, окрашенной по её жёсткости в логарифмической шкале: зелёный при x1, через жёлтый и оранжевый к красному, который полностью красный от x4 и выше. Ниже x1 цвет уходит к синему, а x0.25 и ниже — полностью синие. Каждая коробка подписана множителем жёсткости и, если он есть, пределом глубины.
- Когда в поле зрения есть вторая машина с этими зонами, наведите камеру своей машины на мягкую зону и введите
Crushform.DebugImpact 15. Затем наведите на жёсткую зону и введите то же самое при той же скорости. На мягкой зоне вмятина глубже. Команда пропускает машину, которой вы управляете, поэтому ваша машина не может быть целью.
Crushform.ShowZones и Crushform.DebugImpact — это читы: они работают во всех сборках, кроме Shipping, и в редакторе.
Решение проблем
Заголовок раздела «Решение проблем»Zone Editor ничего не показывает ни на уровне, ни в Play In Editor
Заголовок раздела «Zone Editor ничего не показывает ни на уровне, ни в Play In Editor»Причина. Редактор рисует зоны только во вьюпорте Blueprint. Выделение на уровне или в запущенной игре ничего не рисует.
Решение. Откройте Blueprint автомобиля и выберите компонент там.
У автомобиля нет раздела Stiffness Zones для правки
Заголовок раздела «У автомобиля нет раздела Stiffness Zones для правки»Причина. Deform Profile адаптера пуст или Dirt and Dents выключены. Редактор правит только профиль, заданный на адаптере. Без него автомобиль использует профиль проекта по умолчанию, который не относится к Blueprint и не редактируется в нём.
Решение. Задайте Deform Profile на адаптере и включите Dirt and Dents.
Зона показывает «outside the lattice»
Заголовок раздела «Зона показывает «outside the lattice»»Причина. Часть коробки зоны лежит за пределами решётки. Эта часть игнорируется.
Решение. Передвиньте коробку на кузов. Если коллизия кузова больше решётки, увеличьте Lattice Margin в профиле или включите Use Explicit Bounds и задайте Explicit Bounds.
Зона не действует на прижатие или на краску
Заголовок раздела «Зона не действует на прижатие или на краску»Причина. Прижатие зоны не учитывает по замыслу. Зоны делят только то, насколько глубоко удар вдавливает металл, а краска изнашивается по мере движения металла внутри зоны.
Решение. Для прижатия ничего не делается. Для вмятин измените Stiffness зоны.

