工具调试模式
调试模式
调试模式是一个面板,用于在正在运行的车身上试用插件,无需实际试驾。Crushform.DebugMode 会在游戏画面上打开它。它提供自由视角摄像机、一个目标,以及可使车身凹陷、沾污、清洗、击碎玻璃和掉落的工具,还有显示晶格、刚度区域和轮胎的叠加层。再次运行该命令即可关闭。
面板标题为 CRUSHFORM DEBUG。其各部分的标题为大写:TARGET、TOOLS、DAMAGE、DIRT、WORLD、VIEW、TIME 和 INFO。
- 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。
该模式运行在你的本地玩家上。按住鼠标右键时可以飞行和瞄准: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):在每次撞击落点处显示标记。
无需创建任何内容。该模式适用于任何带有 Crushform 形变组件的车身,例如带有适配器的车辆,或一个道具。
- 请使用非 Shipping 构建。调试模块不包含在 Shipping 构建中,因此其中没有
Crushform.DebugMode。除 Shipping 之外的所有构建以及编辑器中都可以使用。 - 打开一个带有 Crushform 车身的关卡。插件的
/Crushform/ProvingGround/Maps/Lvl_ProvingGround中有一个,你自己的关卡在按照自定义车辆设置好车辆之后,同样会有。 - 使用 Play In Editor 运行。按波浪号键(~)打开控制台,并运行
Crushform.DebugMode。 - 在 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,因此面板与控制台保持一致。
检查是否正常工作
Section titled “检查是否正常工作”在 Play In Editor 中运行 Crushform.DebugMode。CRUSHFORM DEBUG 面板随即打开,屏幕底部显示其各部分以及叠加层提示。点击 Pick,按住鼠标右键,瞄准一个 Crushform 车身并点击左键。TARGET 行会显示其名称,INFO 会显示其配置文件。按下 Heavy:车身凹陷,并且在 VIEW 中将 Lattice 设为 All 后,你会看到晶格节点移动。再次运行 Crushform.DebugMode 即可关闭面板。
打包构建中 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。



