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

工具控制台命令

控制台命令

Crushform 向引擎控制台注册了它的命令和变量。你可以在用波浪号键打开的控制台中输入它们,也可以在 Output Log 的命令行中输入。本页按用途对它们分组。如需查看同一列表及每个描述的源文本,请参见控制台参考。

命令在哪些构建中可用:作弊指令在除 Shipping 之外的所有构建以及编辑器中都可用。大多数命令在 Shipping 中完全不存在:Crushform.Debug、Crushform.ShowZones、Crushform.ShowCollision、Crushform.Stats、Crushform.RepairAll、Crushform.WashAll、Crushform.DebugImpact、Crushform.Tire.Debug 以及调试模式。Crushform.Collision.Deform、Crushform.Collision.DeferFrames、crushform.Impact.LogHits、Crushform.Impact.MaxSoundsPerFrame、Crushform.Impact.SoundQueueSeconds、Crushform.Glass.ShardScale、Crushform.Glass.MaxLiveShards、Crushform.Glass.ShardSystemsPerFrame 以及除 Crushform.Tire.Debug 外的轮胎变量,存在于所有构建中。编辑器命令仅存在于编辑器中。

  • Crushform.Debug 0|1|2(默认 0,作弊指令):绘制驱动车身网格运动的晶格节点,以及它们之间的梁。0 为关闭,1 为受损节点,2 为所有节点。近期的撞击显示为带有法线箭头的蓝色球体。将其关闭后再开启,可重建缓存的节点遮罩。
  • Crushform.ShowZones 0|1(默认 0,作弊指令):以包围盒绘制每个可受损车身的刚度区域。蓝色为软,绿色为普通,红色为硬。每个包围盒都标注有其刚度倍数和深度上限。
  • Crushform.ShowCollision 0|1(默认 0,作弊指令):以线框绘制每个可受损车身当前拥有的碰撞:其根部刚体的形状用品红色表示,包括跟随凹陷变化的块;其松动铰接部件的形状用白色表示。引擎的 show collision 绘制的是按原样制作的形状,凹陷从不改变这些形状。
  • crushform.Impact.LogHits 0|1(默认 0):记录撞击反馈组件判定的每次撞击,并在数秒内绘制每个撞击点。绿色标记表示播放了声音,黄色表示持续接触,红色表示低于最小值的撞击。
  • Crushform.Tire.Debug 0|1|2(默认 0):轮胎预算叠加层。1 显示屏幕上的计数,2 还会显示每个形变器的射线以及每个轮胎的细节层级。
  • Crushform.RepairAll(作弊指令):将本机持有其损伤的每个可受损 Actor 恢复平直。在服务器上运行它,可为所有玩家修复车身。在客户端上,它只修复仅存在于该客户端上的车身;每个被复制的车身(包括你自己的车)都属于服务器,日志会说明这一点。
  • Crushform.WashAll(作弊指令):洗掉本机持有其损伤的每个可受损 Actor 上的污垢;凹陷保留。在服务器上运行它,可为所有玩家清洗车身。在客户端上,它只清洗仅存在于该客户端上的车身,日志会说明这一点。
  • Crushform.DebugImpact [DeltaV] [Name](作弊指令):对 100 米以内的可受损 Actor 施加撞击。若未给出名称,则撞击从玩家视角找到的准星下的车身;追踪会跳过你所控制的 Pawn,因此你驾驶的汽车永远不会被撞击。若给出名称,则撞击名称或标签包含该名称的 Actor,瞄准该 Actor 中最接近其中心的车身,并在有其他车身挡路时予以说明。第一个参数为速度变化量,单位 m/s,默认 10;若第一个参数不是数字,则将其视为名称。用它可以在不撞向任何东西的情况下检查凹陷:站在停放的汽车 100 米以内,然后运行 Crushform.DebugImpact 18 BP_VehicleAdvSedan2。
  • Crushform.DebugMode(作弊指令):切换调试模式,即自由摄像机和一组工具面板。它由 CrushformDebug 模块注册,该模块不包含在 Shipping 构建中。参见调试模式。
  • Crushform.DebugMode.AllowClients 0|1(默认 1):服务器是为远程客户端运行调试工具(1),还是仅为其自身的本地玩家运行(0)。
  • Crushform.Stats(非作弊指令):打印正在使用的图集槽位,以及世界中每个可受损 Actor 的计数器。它存在于除 Shipping 之外的所有构建中。在编辑器中、Play In Editor 期间,它会打印每个正在运行的世界:服务器的以及每个客户端的,并通过角色加以区分。

使用 stat 加上插件统计组的名称,可查看每个模块的帧开销:stat Crushform、stat CrushformTire、stat CrushformBreakable、stat CFBreakableInstances、stat CrushformDebris、stat CFPropContact、stat CFImpactFeedback、stat CrushformVehicle、stat CrushformChaos、stat CrushformWheel、stat CrushformEngine、stat CrushformPlayground 和 stat CrushformDebug。摄像机模块未声明任何统计组。

凹陷车身的碰撞体。这些变量存在于每个构建中。项目设置 UCFSettings::bDeformCollision 和 UCFSettings::CollisionDeferFrames 会在启动时以及在编辑器中写入这些变量;参见项目设置。

  • Crushform.Collision.Deform(1):本项目中碰撞体是否跟随凹陷。0:每辆车都保留其原本制作的碰撞体。在车辆开始游戏时读取。控制台命令、命令行参数或设备配置文件会覆盖项目设置。
  • Crushform.Collision.DeferFrames(1):一次较重的碰撞体构建可以在游戏线程之外运行多少帧,之后必须落到车身上,取值为 0 或 1。0 表示在命中的那一帧完成全部构建。负值按 0 处理,大于 1 的值按 1 处理。控制台命令、命令行参数或设备配置文件会覆盖项目设置。

撞击反馈的声音上限。两个变量都存在于每个构建中。每一个都会在启动时以及在编辑器中,由项目设置写入;参见项目设置。

  • Crushform.Impact.MaxSoundsPerFrame(2):一帧内启动的声音数量上限。其余的按从强到弱的顺序等待之后的帧。0 表示关闭该上限。控制台命令、命令行参数或设备配置文件会覆盖项目设置。
  • Crushform.Impact.SoundQueueSeconds(0.15):超出该帧上限的声音最多可以等待多久;超过则被丢弃。

碎裂玻璃板的碎片。三个变量都存在于每个构建中。

  • Crushform.Glass.ShardScale(1):一块碎裂玻璃板的碎片中被抛出的比例,范围 0 到 1。0 表示一个也不抛;超出范围的值会被限制在范围内。
  • Crushform.Glass.MaxLiveShards(512):碎裂玻璃板的碎片同时存活的最大数量。0 表示关闭该上限。
  • Crushform.Glass.ShardSystemsPerFrame(1):一帧内启动的碎裂玻璃板的碎片系统数量。其余的在之后的帧里按顺序启动。0 表示关闭该限制。

轮胎预算。以下所有项都存在于每个构建中。每一项都会覆盖 Project Settings > Plugins > Crushform Tire 中对应的项目设置,无论由控制台命令还是命令行参数设置。默认值即这些设置的初始值。

  • Crushform.Tire.Enable(1):设为 0 时,每个轮胎都会恢复为圆形。
  • Crushform.Tire.MaxWheels(30):可同时形变的轮胎数量。观察者自己的车辆始终会形变。
  • Crushform.Tire.Radius(4000 厘米):其他车辆的轮胎可以形变的、距摄像机的距离范围。
  • Crushform.Tire.LodDistance1(1500 厘米)和 Crushform.Tire.LodDistance2(3000 厘米):两个细节层级的距离。
  • Crushform.Tire.Hysteresis(0.15):已获得资格的轮胎其边界扩大的幅度。取值范围为 0 到 0.9。
  • Crushform.Tire.UpdateInterval(0.25 秒):两次预算计算之间的时间间隔。
  • Crushform.Tire.OnScreenTolerance(0.5 秒):车轮上次被绘制之后,仍被视为在屏幕上的时间。

预算模式是一项项目设置,即 UCFTireSettings::Scope;参见项目设置。

这些命令仅存在于编辑器中,不存在于游戏构建中。在你更改相应设置后,它们会重建项目的材质函数和污垢顺序。每个命令都会使其所更改的材质处于未保存状态,因此之后请保存它们。

  • Crushform.RewireLooks:将外观设置(Body Dirt Look、Wheel Dirt Look 和 Glass Crack Look)应用到每个调用 Crushform 污垢或玻璃函数的已保存材质上。
  • Crushform.RebakeDirtOrder:在污垢通道或 Dirt Layer Order 更改后,将污垢顺序重新烘焙进污垢函数。
  • Crushform.RebakeOffsets:在四个偏移量之一更改后,将自定义数据偏移量重新烘焙进使用它们的函数。

在 Proving Ground 关卡中使用 Play In Editor 运行,站在停放的轿车 100 米以内,并运行 Crushform.DebugImpact 10 BP_VehicleAdvSedan2。Output Log 会输出一行此格式的内容,其中包含车身的名称:

Crushform.DebugImpact: hit <body> at 10.0 m/s; it is now damaged.

然后运行 Crushform.Stats。该车身的那一行会列出施加于它的撞击,因此现在至少会显示一次。

当命令无法施加撞击时,Output Log 会改为输出以下某一行,并填入相应名称:

Crushform.DebugImpact: no local player to aim with.
Crushform.DebugImpact: the speed change must be a positive number of m/s.
Crushform.DebugImpact: no damageable actor whose name contains '<name>'.
Crushform.DebugImpact: nothing in view within 100 m.
Crushform.DebugImpact: <body> stands between you and <target>.
Crushform.DebugImpact: <body> takes no Crushform damage.
Crushform.DebugImpact: <body> is not hit from this machine; run it on the server or on the machine that drives it.

命令无法识别。 原因:该命令来自构建未加载的模块。调试命令不存在于 Shipping 构建中,编辑器命令不存在于游戏构建中。 解决:请对照本页顶部列出的内容检查构建。

Crushform.DebugImpact 提示 nothing in view within 100 m,或提示车身 takes no Crushform damage。 原因:准星在 100 米内找不到车身,或找到的车身没有 Crushform 形变组件。你驾驶的汽车永远不会被找到,因为追踪会跳过你自己的 Pawn。 解决:瞄准一个带有 Crushform 形变组件的停放车身,或将车身名称作为第二个参数传入。

Crushform.DebugImpact 提示 stands between you and。 原因:从你所在的位置看,被命名的车身位于另一个车身的后方。 解决:移动到能清楚看到被命名车身的位置,然后再次运行该命令。

Crushform.DebugImpact 提示撞击不是从本机发出的。 原因:本机不持有该车身的损伤数据。客户端绘制的是服务器的损伤。 解决:在服务器上运行该命令,或在驾驶该车身的端上运行。