损伤软区
软区
车身的各处刚度并不相同。前部的压溃区应当折叠,车厢则应保持形状。刚度区域用来指定这些位置。它是车身上的一个盒体,用于划分落在其内部的每次命中所造成的凹陷。刚度区域保存在凹陷配置文件中,由 Zone Editor 在蓝图编辑器中绘制和调整。区域划分的是凹陷,而不是漆面:无论位于哪个区域,漆面都会随金属的移动而磨损。
每个区域都是一个盒体。落在其内部的命中,会比车身其余部分使金属下压得更少或更多。更硬的区域还能在两个区域之间的车门向内凹陷时,固定住门槛或车顶横梁。挤压不受区域影响。
- 盒体。 盒体位于根组件的空间中,单位为 cm。在盒体之外,区域不会改变任何内容。位于车身碰撞体表面或其外侧的面会被视为外壳:区域在该面之内保持完整强度。位于晶格之外的盒体部分会被忽略。
- 刚度。 为 1 时,区域与车身其余部分的凹陷相同。为 3 时,命中的凹陷只有三分之一那么深。为 0.5 时,凹陷深度是两倍。数值越大越硬,因此数值越大,凹陷越浅。
- Edge Width。 区域会在其内侧面的一条带状区域内逐渐增强,使相邻的两个区域平滑过渡。仅仅相接触的两个区域,会在共享面处同时淡出。
- Max Depth。 无论有多少次命中,命中在盒体内能把车身推入的最大深度。为 0 时使用配置文件的 Max Displacement。
- Mirrored。 区域也会以车身中线为轴做镜像应用,因此一个区域即可同时覆盖左右车门。
- 重叠。 盒体重叠的地方,较硬的那个生效。
Zone Editor 按游戏实际绘制区域的方式显示它们。H 切换晶格热图:关闭、仅围绕选中的区域,或显示所有节点。编辑器的提示行列出了其余快捷键:LMB 选中,RMB 打开菜单,Ctrl+D 复制,Del 删除,M 镜像,F 聚焦,Esc 取消选中。
Zone Editor 只在蓝图编辑器的视口中,针对选中的形变组件或车辆适配器绘制和编辑区域。关卡和 Play In Editor 中不显示任何内容。菜单中的预设来自 Project Settings > Plugins > Crushform Zone Editor。
- 按凹陷与晶格的第 1 和第 2 步创建配置文件。对于车辆,设置适配器的 Deform Profile,并保持 Dirt and Dents 开启。如果 Deform Profile 为空,车辆会使用项目的默认配置文件,编辑器中就没有可供它编辑的内容。插件自带的轿车配置文件
DA_CF_Profile_Sedan不含任何区域,因此下面的区域需要你自己添加。 - 打开车辆的蓝图,在视口或 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 | |
运行时没有任何蓝图或 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 是配置文件的 UCFProfile::StiffnessZones 中的 FCFStiffnessZone。
| 属性 | 作用 | 默认值 |
|---|---|---|
UCFProfile::StiffnessZones | 配置文件的区域,显示为 Stiffness Zones。 | 空 |
FCFStiffnessZone::Box | 区域的盒体,位于根组件空间,单位 cm。 | 设置前无效 |
FCFStiffnessZone::Stiffness | 此处的命中推动车身的程度降低:1 为车身本身,越高越硬。 | 1 |
FCFStiffnessZone::EdgeWidth | 内侧面上区域逐渐增强的带状区域宽度(cm)。 | 20 |
FCFStiffnessZone::MaxDepth | 命中在盒体内能推入的最大深度(cm)。0 时使用配置文件的 Max Displacement。 | 0 |
FCFStiffnessZone::bMirrored | 同时以 Y = 0 为轴做镜像应用。 | 关 |
UCFEditorSettings::ZonePresets | 区域菜单中的预设:Frame(刚度 3)、Cabin(刚度 2,深度 12 cm)、Crumple(0.5)和 Neutral(1)。 | 以上四项 |
检查是否正常工作
Section titled “检查是否正常工作”- 在 Play In Editor 中打开 Proving Ground 演示,并使用一辆配置文件中已有上述区域的车辆。
- 输入
Crushform.ShowZones 1。每个区域会绘制为一个盒体,颜色按刚度取对数刻度:在 x1 时为绿色,经黄色和橙色趋向红色,x4 及以上为纯红色。低于 x1 时颜色转向蓝色,x0.25 及以下为纯蓝色。每个盒体都标有其刚度倍数,以及(如果有)其深度上限。
- 用一辆视野内带有这些区域的第二辆车,将你的车辆摄像机对准一个软区,输入
Crushform.DebugImpact 15。然后对准一个硬区,以相同速度再次输入。软区的凹陷会更深。该指令会跳过你驾驶的车辆,因此你自己的车不能作为目标。
Crushform.ShowZones 和 Crushform.DebugImpact 是作弊指令:它们在除 Shipping 之外的所有构建以及编辑器中都可以使用。
Zone Editor 在关卡或 Play In Editor 中什么也不显示
Section titled “Zone Editor 在关卡或 Play In Editor 中什么也不显示”原因。 Zone Editor 只在蓝图编辑器的视口中绘制区域。在关卡中或运行中的游戏里选中对象,不会绘制任何内容。
修复。 打开车辆的蓝图,并在那里选中该组件。
车辆没有可编辑的 Stiffness Zones 分组
Section titled “车辆没有可编辑的 Stiffness Zones 分组”原因。 适配器的 Deform Profile 为空,或 Dirt and Dents 已关闭。编辑器只编辑适配器上设置的配置文件。没有它时,车辆会使用项目的默认配置文件,而这并不属于蓝图可以编辑的内容。
修复。 在适配器上设置 Deform Profile,并开启 Dirt and Dents。
某个区域显示“outside the lattice”
Section titled “某个区域显示“outside the lattice””原因。 区域盒体的一部分位于晶格之外。位于晶格之外的部分会被忽略。
修复。 将盒体移到车身上。如果车身碰撞体比晶格更大,请在配置文件中加宽 Lattice Margin,或者开启 Use Explicit Bounds 并设置 Explicit Bounds。
区域对挤压或漆面没有任何影响
Section titled “区域对挤压或漆面没有任何影响”原因。 挤压按设计忽略区域。区域只划分命中的凹陷推力,而漆面会在区域内随金属的移动而磨损。
修复。 挤压无需处理。若要改变凹陷,请修改该区域的 Stiffness。

