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

工具调试模式

调试模式

调试模式是一个面板,用于在正在运行的车身上试用插件,无需实际试驾。Crushform.DebugMode 会在游戏画面上打开它。它提供自由视角摄像机、一个目标,以及可使车身凹陷、沾污、清洗、击碎玻璃和掉落的工具,还有显示晶格、刚度区域和轮胎的叠加层。再次运行该命令即可关闭。

面板标题为 CRUSHFORM DEBUG。其各部分的标题为大写:TARGET、TOOLS、DAMAGE、DIRT、WORLD、VIEW、TIME 和 INFO。

CRUSHFORM DEBUG 面板,尚未选择目标:TARGET 一行显示 'No target. Aim at a body and use Pick.',DAMAGE 和 DIRT 按钮呈灰色。
选择车身之前的面板。
  • TARGET:点击 Pick,按住鼠标右键瞄准后点击车身。也可以用 < 和 > 依次切换关卡中的车身。
  • TOOLS:Ball 向车身投掷一个球,Dent 以所选的撞击速度使其凹陷,Dirt 涂上污垢,Wash 将其刷掉,Glass 使准星处的玻璃开裂或破碎。
  • DAMAGE:Light、Medium、Heavy 和 Wreck 施加一组撞击。Repair 将车身恢复平直,Wash 清洗车身,Drop 将车身抬到指定高度后使其落下。
  • DIRT:Dusty、Muddy、Snowy 和 Wet 以你设定的 Amount 为车身填入对应的混合污垢。
  • WORLD:Reset world、Respawn props 和 Clear debris。
  • VIEW:四个叠加层开关,在下文“工作原理”中说明:Lattice、Zones、Tyres 和 Hit markers。
  • TIME:Pause、Resume 和 Step(单帧)控制世界的暂停。速度按钮 1、0.5、0.25 和 0.1 设置时间膨胀。当游戏或其他玩家持有暂停状态时,面板会改为显示相应提示。
  • INFO:目标的 Profile、处于关闭或弯曲状态的 Parts、Glass 数量,以及 Dirt at aim。
开启 All 晶格叠加层的凹陷轿车:灰色节点未受损,受损节点从绿色渐变为红色,梁将节点相连。
轿车凹陷时开启 Crushform.Debug 2。灰色节点未受损;随着凹陷加深,受损节点从绿色变为红色。

该模式运行在你的本地玩家上。按住鼠标右键时可以飞行和瞄准:W、A、S、D、E 和 Q 键移动摄像机,鼠标滚轮改变飞行速度。鼠标左键在准星处使用当前选中的工具。松开鼠标右键即停止飞行。

面板打开时会刷新目标的状态。其 INFO 部分显示配置文件、处于关闭或弯曲状态的部件、玻璃数量以及准星处的污垢。

损伤与修复按钮以及世界按钮,都通过插件的中继在服务器上运行。只有服务器允许时,客户端才能使用它们。服务器始终允许其自身的玩家,默认也允许远程客户端;参见“关键设置”一节。服务器拒绝时,面板会显示 Server tools unavailable。

VIEW 部分用于开启和关闭四个叠加层:

  • Lattice(Crushform.Debug):Off、Damaged 或 All。它绘制晶格节点以及节点之间的梁。
  • Zones(Crushform.ShowZones):以包围盒显示每个可受损车身的刚度区域。
  • Tyres(Crushform.Tire.Debug):Off、Counts 或 Rays。Counts 显示屏幕上的轮胎数量。Rays 还会绘制每个正在形变的轮胎的射线。
  • Hit markers(crushform.Impact.LogHits):在每次撞击落点处显示标记。
三个刚度区域以方框绘制在轿车周围:尾部为蓝色,沿车身为绿色,车头为红色,分别标注 x0.2、x1.0 和 x4.0,12 厘米。
轿车配置文件的刚度区域,本图额外添加了三个区域,并开启了 Zones 叠加层。

无需创建任何内容。该模式适用于任何带有 Crushform 形变组件的车身,例如带有适配器的车辆,或一个道具。

  1. 请使用非 Shipping 构建。调试模块不包含在 Shipping 构建中,因此其中没有 Crushform.DebugMode。除 Shipping 之外的所有构建以及编辑器中都可以使用。
  2. 打开一个带有 Crushform 车身的关卡。插件的 /Crushform/ProvingGround/Maps/Lvl_ProvingGround 中有一个,你自己的关卡在按照自定义车辆设置好车辆之后,同样会有。
  3. 使用 Play In Editor 运行。按波浪号键(~)打开控制台,并运行 Crushform.DebugMode。
  4. 在 TARGET 部分点击 Pick。按住鼠标右键瞄准车身,然后点击左键:准星下的车身成为目标,工具会恢复为你之前选中的那个。也可以用 < 和 > 切换到某个车身。然后在 DAMAGE 下按 Heavy。

在蓝图中。 该模式没有蓝图函数。在蓝图中,使用引擎的 Execute Console Command 节点(位于 Development 分类)运行控制台命令。下方的图表通过自定义事件运行它:

该图表通过自定义事件运行控制台命令。

在 C++ 中。 从本地玩家获取该模式,并调用其函数。该模式是一个 ULocalPlayerSubsystem:

#include "CFDebugModeSubsystem.h"
UCFDebugModeSubsystem* Mode = LocalPlayer->GetSubsystem<UCFDebugModeSubsystem>();
if (IsValid(Mode))
{
Mode->Toggle(); // Enters the mode when it is off, exits it when it is on.
const bool bOn = Mode->IsActive();
}

Enter() 和 Exit() 的作用相同,但不切换。模块 CrushformDebug 不会在 Shipping 中构建;依赖规则请参见安装。

属性作用默认值
Crushform.DebugMode.AllowClients服务器是为远程客户端运行调试工具(1),还是仅为其自身的本地玩家运行(0)。1
Crushform.Debug晶格叠加层:0 关闭,1 受损节点,2 所有节点。0
Crushform.ShowZones刚度区域叠加层:0 关闭,1 开启。0
Crushform.Tire.Debug轮胎叠加层:0 关闭,1 计数,2 射线。0
crushform.Impact.LogHits撞击标记:0 关闭,1 开启。0

VIEW 部分会设置这些 CVar,因此面板与控制台保持一致。

在 Play In Editor 中运行 Crushform.DebugMode。CRUSHFORM DEBUG 面板随即打开,屏幕底部显示其各部分以及叠加层提示。点击 Pick,按住鼠标右键,瞄准一个 Crushform 车身并点击左键。TARGET 行会显示其名称,INFO 会显示其配置文件。按下 Heavy:车身凹陷,并且在 VIEW 中将 Lattice 设为 All 后,你会看到晶格节点移动。再次运行 Crushform.DebugMode 即可关闭面板。

选中轿车后的完整视图:红色方框勾勒出它,滚动后的面板在 INFO 中显示其配置文件 DA_CF_Profile_Sedan、铰接部件为 0 厘米,以及六块完好的玻璃板。
已选中轿车。INFO 显示其配置文件、部件、玻璃以及准星处的污垢。

打包构建中 Crushform.DebugMode 没有任何效果。 原因:CrushformDebug 模块不包含在 Shipping 构建中,因此该命令在那里没有注册。 解决:使用非 Shipping 构建。不要让 Shipping 代码依赖此模块。

Output Log 输出以下这一行:

Crushform.DebugMode: no local player in this world.

原因:该命令在没有本地玩家的世界中运行,例如专用服务器。 解决:在客户端窗口中运行该命令,或在编辑器的 Play In Editor 窗口中运行。

面板显示 Server tools unavailable,服务器端按钮呈灰色。 原因:服务器以 Crushform.DebugMode.AllowClients 为 0 运行,而你是远程客户端。 解决:在服务器上将其设为 1,或在服务器自身的玩家上运行这些工具。

凹陷按钮呈灰色。 原因:没有目标,或其配置文件的 Dents 为关闭状态。此时面板会在目标名称旁显示 Dents off。 解决:选择一个配置文件中 Dents 为开启状态的车身,或在其配置文件中开启 Dents。