跳转到内容
CRUSHFORMV1.1.0
在 Fab 上获取

入门快速入门

快速入门

本指南为 Chaos 车辆添加凹陷、漆面磨损和污垢。你需要将三个材质函数连接到车身和车轮的材质中,再为车辆添加一个组件。无需编写代码。

你需要:

  • 已安装插件。参见安装。
  • 基于 AWheeledVehiclePawn 并带有 UChaosWheeledVehicleMovementComponent 的 Pawn。
  • 车轮是位于车轮骨骼上的网格体组件。只是一根骨骼的车轮不会产生轮胎形变,也不会有车轮污垢。
  • 尚未做过上述任何设置的车辆:没有 Crushform 适配器,也没有连接材质。
  • Unreal Engine 5.6、5.7 或 5.8。

本指南中的截图展示的是插件的轿车 BP_VehicleAdvSedan,它是从零开始逐步设置的。请在你自己的车辆上按步骤操作。完成后的轿车位于插件的 /Crushform/Blueprints/Sedan/BP_VehicleAdvSedan,可供对照。

  1. 打开漆面的母材质,即其材质实例的父级。
漆面的母材质(其材质实例的父级),连接之前。
  1. 添加 MF_CF_Deform 和 MF_CF_Paint。在图表上右键,分别搜索这两个名称。
  2. 在连接任何内容之前,请检查你的材质:
    • 你自己的 World Position Offset 保持不变。用一个 Add 节点将它与 MF_CF_Deform 的 World Position Offset 相加,然后把和接到材质的 World Position Offset。
    • 法线贴图或其他法线来源接到 MF_CF_Deform 的 Normal 输入,而不是接到材质上。
    • 使用 Material Attributes 的材质通过 Break Material Attributes 和 Set Material Attributes 节点连接。Break Material Attributes 的输出接到两个函数的输入以及 Add 节点。MF_CF_Deform 的输出(Normal,以及偏移之和)和 MF_CF_Paint 的输出(Base Color、Roughness、Metallic)接到 Set Material Attributes 的对应引脚,再由它输入到材质中。
    • 材质必须使用 Tangent Space Normal。世界空间的法线无法连接。
    • 与车身共用网格体的玻璃和内饰部件只获得 MF_CF_Deform。它们随车身一起凹陷,并保留自己的外观。
    • 每个应当弯曲的网格体的每个材质都需要这样连接。相对车身会移动的部件,例如车门和方向盘,应放入配置文件的 Exclude Tags。
    • 一个材质最多使用两个参数集合。MF_CF_Paint 占用其中一个,因此已经使用两个集合的材质连接后将无法编译。
    • 每个使用已连接函数的材质都要承担顶点运算的开销,无论它是否凹陷。
  3. 完成以下十个连接,每行一个。Scratch 这一行是可选的:没有它,漆面照常磨损,但刮擦不会画出划痕线。先记下目前接到材质的 Base Color、Roughness 和 Metallic 上的是什么。
从到
你的基础颜色MF_CF_Paint 的 Base Color
你的粗糙度MF_CF_Paint 的 Roughness
你的金属度MF_CF_Paint 的 Metallic
MF_CF_Deform 的 Wear DepthMF_CF_Paint 的 Wear Depth
MF_CF_Deform 的 ScratchMF_CF_Paint 的 Scratch
MF_CF_Paint 的 Base Color材质的 Base Color
MF_CF_Paint 的 Roughness材质的 Roughness
MF_CF_Paint 的 Metallic材质的 Metallic
MF_CF_Deform 的 World Position Offset材质的 World Position Offset
MF_CF_Deform 的 Normal材质的 Normal
  1. 在材质的 Details 中,于 Usage 下,如果车身是骨骼网格体,请开启 Used with Skeletal Mesh。
  2. 在材质的 Details 中,将 World Position Offset 类别下的 Max World Position Offset Displacement 设为车辆所用配置文件的 Max Displacement,再加上 MF_CF_Deform 的 Fold Amplitude 输入。褶皱幅度默认为 3 cm。如果材质已经有自己的边界,则将同样的和加到该边界上。
  3. 点击 Apply,然后点击 Save。
连接好 MF_CF_Deform 和 MF_CF_Paint 的母材质。
  1. 打开车轮材质。将 MF_CF_WheelDirt 放在车轮颜色与 Base Color、Roughness、Metallic 之间。车轮的颜色、粗糙度和金属度分别接到同名的输入,它的三个输出驱动这三个属性。
  2. 不要把 MF_CF_Deform 或 MF_CF_Paint 加到车轮材质中。车轮的自定义基元数据保存的是车轮自己的污垢,而不是车身的凹陷数据。
  3. 轮胎鼓起是一个单独的函数 MF_CF_TireDeform,它的连接不属于本指南的内容。在轮胎材质中保持 Always Evaluate WPO 关闭。
  4. 插件的现成示例是 M_CF_Wheel。打开它可以对照。
车轮材质,MF_CF_WheelDirt 位于车轮颜色与其输出之间。
  1. 打开车辆的蓝图。点击 Add,选择 Crushform Chaos Vehicle Adapter。它位于 Crushform 类别中。不要选 Crushform Vehicle Adapter:那个需要你手动列出车轮。
  2. 点击 Compile,然后点击 Save。
Components 面板及其展开的 Add 列表,其中在 Crushform 下选中了 Crushform Chaos Vehicle Adapter。
Add › Crushform Chaos Vehicle Adapter,位于 Crushform 类别中。
  1. 适配器会在每个端上用固定名称创建它的组件。每个组件都有自己的开关:

    • CF_Deform 制作车身的凹陷和污垢。它需要 Dirt and Dents。
    • CF_Glass 制作玻璃板。它需要 Glass 和 Dirt and Dents。
    • CF_Tires 制作轮胎形变。它需要 Tires。
    • CF_RollingAudio 和 CF_RollingFX 制作滚动声音和滚动 FX。它们需要 Rolling Sound 和 Rolling FX。
    • CF_EngineAudio 制作发动机声音。它需要 Engine Sound,以及项目设置中 Crushform Engine 下的发动机声音设置。
    • CF_PropContact 破坏道具。它需要 Breaks Props。
    • CF_ImpactFeedback 播放撞击声音和特效。它需要 Impact Feedback。CF_PartImpactFeedback 对铰接部件做同样的事,并且还需要 Dirt and Dents。

    适配器从移动组件中读取车轮,因此你无需列出它们。

  2. 留空的 Deform Profile 会取项目设置中的默认值,位于 Plugins › Crushform 下的 Default Profile(DA_CF_DefaultProfile)。留空的 Tire Profile 会取项目设置中的默认值,位于 Plugins › Crushform Tire 下的 Default Profile。

Crushform
AuthorityServer
Deform ProfileDA_CF_DefaultProfile
Tire ProfileDA_CF_DefaultTireProfile
Ram Allowance Mps15.0 m/s
Features
Dirt and Dents
Glass
Tires
Rolling Sound
Rolling FX
Engine Sound
Impact Feedback
Breaks Props
Crushform Chaos Vehicle Adapter 的 Crushform 类别。其功能开关全部开启。
  • 污垢、滚动声音和滚动 FX 都来自地面的物理材质。将地面材质的 Phys Material 设为插件的七种材质之一:PM_CF_Asphalt、PM_CF_Dirt、PM_CF_Grass、PM_CF_Mud、PM_CF_Swamp、PM_CF_Snow 或 PM_CF_Water。
  • 在 Surfaces 表(DA_CF_Surfaces)中没有对应行的物理材质会使用 Default 行。你可以为自己的物理材质添加行。
  • 滚动声音通过项目设置中 Plugins › Crushform Wheels 下的 Attenuation 播放。默认为 SA_CF_TireRolling。如果将它清空,滚动声音将保持关闭。
  1. 按 Play,然后将车辆开进墙壁或栅栏。Proving Ground 演示中有可供测试的栅栏。
插件的轿车,引擎盖和前保险杠被压扁,车门凹陷,车门被撞开。
车身在受击处凹陷,金属移动的位置漆面磨损。
  1. 驶过 PM_CF_Mud 路面的泥浆。车轮和车身下部会变脏。
插件的轿车,车身下部、车门和车轮上沾满棕色污垢,停在 Proving Ground 的浅褐色地面上。
在 Proving Ground 的各种路面上行驶后,车身和车轮上的污垢。

这些设置位于适配器上。Chaos 适配器继承了 UCFVehicleAdapterComponent 的这些设置。

属性作用
UCFVehicleAdapterComponent::DeformProfile车身的凹陷和污垢。为空时:使用项目的默认配置文件。
UCFVehicleAdapterComponent::TireProfile轮胎。为空时:使用项目的默认轮胎配置文件。
UCFVehicleAdapterComponent::AuthorityServer(默认):服务器模拟车辆并判定其命中。Owning Client:驾驶车辆的端模拟它并上报其命中,服务器再对这些上报做校验。
UCFVehicleAdapterComponent::bDirtAndDents车身凹陷并沾上污垢。玻璃板和车轮的污垢需要它。
UCFVehicleAdapterComponent::bGlass车辆上的玻璃板会开裂并破碎。需要 Dirt and Dents。
UCFVehicleAdapterComponent::bTires轮胎在车轮网格体上发生形变。
UCFVehicleAdapterComponent::bRollingSound每个车轮播放其所在路面的滚动声音。仅用于呈现:在专用服务器上无声。
UCFVehicleAdapterComponent::bRollingFX每个车轮显示其所在路面的滚动 FX。仅用于呈现。
UCFVehicleAdapterComponent::bEngineSound发动机播放其声音。仅用于呈现。还需要 Crushform Engine 中的发动机声音设置。
UCFVehicleAdapterComponent::bImpactFeedback命中会在每个端上播放撞击声音和特效。
UCFVehicleAdapterComponent::bBreaksProps车辆会破坏它驶入的可破坏道具。
  • 用波浪号键(~)打开控制台,运行 Crushform.Stats。车辆会出现在列表中,并带有它的 hits 计数器。各行的格式如下。每行车辆信息都以 Actor 的名称开头,然后说明本机持有的是晶格还是晶格的视图:
Crushform atlas: N of M slots used, N waiting, N evictions, N uploads.
Actor name: server lattice or client view, generation N, N pending, N chunks | hits N, sent N, accepted N, rejected N, ...
  • 运行 Crushform.DebugImpact 15,后面跟上关卡中另一辆带有 Crushform 的车辆名称的一部分。名称放在速度之后。它会从你所站的位置,以 15 m/s 的速度变化量撞击该车辆,距离最远 100 m,无需驾驶即可使其凹陷。如果不带名称,它会命中准星下的可受损 Actor。它从不命中你控制的 Pawn,因此请按第 5 步驾车撞墙来检查你自己的车辆。
  • 运行 Crushform.Debug 1。它会绘制车身凹陷的晶格节点。
  • 驶过 PM_CF_Mud 路面。车轮和车身下部会变脏。
  • 这些命令在编辑器以及除 Shipping 之外的所有构建中都可用。在 Shipping 构建中,它们会被编译掉。
  • 没有任何凹陷:检查第 1 步中的连接,并检查配置文件的 Exclude Tags 是否隐藏了车身网格体。
  • 车轮保持干净:车轮必须是位于车轮骨骼上的网格体组件。
  • 地面没有污垢或滚动声音:它的 Phys Material 必须是插件的材质之一,或者在 Surfaces 表中有对应的行。
  • 材质无法编译:检查第 1 步中两个集合的限制。

更多情况参见故障排除。