为了帮助 Jbeam 设计,游戏提供了多种调试视图,让你能够获得关于 Jbeam 的更多信息。
控制台
可以通过 ` 键打开控制台。它会显示加载车辆时发生的信息和错误,有助于调查车辆无法加载、材质丢失等问题的原因。
信息采用颜色编码:错误为红色,警告为黄色,信息为绿色,调试信息为蓝色。你可以通过点击左上角的按钮来隐藏各种类型的消息。
底部的文本框用于输入命令。
慢动作
虽然慢动作工具并未明确定义为调试工具,但它在排查jbeam相关问题时非常有用。你可以在“环境”菜单中找到此功能,或通过按下 Alt + ↑ 快捷键访问。
车辆配置 > 调试界面(Debug UI)
调试界面(Debug UI)提供了多种调试车辆JBeam物理属性的方法。该界面不仅包含下述各类调试模式,还提供了车辆生成相关的功能。
调试界面包括一个车辆部件选择器,被调试工具影响的零件会高亮显示,类似于清单勾选方式——高亮部件会被影响,未高亮则不会。你可以通过勾选按钮快速全选或取消全部选择。在车辆部件选择器中切换零件或更改单个部件的可见性后,选择器会自动同步变化。该选择器还包括搜索功能。
调试界面主要包括以下部分(但不限于):
节点可视化
节点调试视图默认可通过 Ctrl + M 打开。在调试界面中,你还可以调整高亮的宽度和透明度。
可用的视图有:
- 简单模式(Simple)——根据碰撞情况为节点着色。黄色节点表示有内部和外部碰撞,浅蓝色节点表示有外部但无内部碰撞,紫色节点表示完全无碰撞。
- 仅高亮(Highlighted Only)——仅显示被高亮的节点,使用其高亮色进行显示。
- 质量显示(Weights)——以点的大小显示节点,点的大小根据节点的重量变化,颜色编码与简单模式相同。
- 位移模式(Displacement)——突出显示自生成以来因弹性变形发生位移的节点。位移越大,高亮颜色的不透明度越高。
- 速度(Velocities)——显示节点相对于参考节点的速度。
- 力(Forces)——显示作用于节点上的总力向量,非常适合查找不稳定情况或被三角形碰撞意外推动的节点。
- 密度(Density)——显示节点当前是否在空气中(绿色)或在水中(红色)。
- 集群(Clusters)——用不同颜色显示每个节点集群。集群是由梁连接的一组节点。整车最初为单一集群,脱落部件会分离成独立集群。
- 主集群(Main Cluster)——用绿色显示主集群的节点,用蓝色显示其他节点。主集群即是摄像机跟随的集群。
除了上述调试模式,界面还提供了“只显示高亮(Show Highlighted)”复选框。勾选此项后,选择的模式效果会与仅高亮模式结合。
节点文本
节点文本视图默认可通过 Ctrl + N 访问。可用的视图如下:
- 名称(Name) - 显示每个节点在 Jbeam 文件中定义的名称。如果未定义名称(如轮节点),则显示其 ID 编号。
- 编号(Numbers) - 显示每个节点的 ID 编号。主要被 lua 和物理引擎使用。
- 名称+编号(Name+Numbers) - 结合上述两种模式。
- 重量(Weight) - 显示每个节点的名称和重量(kg)。还会在屏幕右上角显示所有节点的总重量。
- 材质(Materials) - 显示每个节点的名称和分配的材质。
- 分组(Groups) - 对每个节点,显示其名称和所属分组。需在调试界面中开启“以调试模式生成(Spawn in Debug Mode)”复选框才可用。
- 力(Forces) - 显示每个节点的名称及其所受总力的向量值。还会在屏幕右上角显示平均力。联轴器节点以红色字体显示(非黑色),且不计入平均力。
- 相对位置(Relative positions) - 显示每个节点的名称及其相对于车辆本地坐标的位置。
- 世界位置(World positions) - 显示每个节点的名称及其相对于世界坐标的位置。
在调试界面中,可以切换 显示轮子(Show Wheels) 复选框,以决定这些文本是否也显示在轮节点上。该选项默认关闭,因为文本会遮挡视野并且大多数情况下对轮节点不是很有用。
节点调试文本
显示包含某些节点额外属性信息的调试文本。默认可通过 Ctrl + K 访问。可用的视图包括:
- 闩锁(Latches) - 显示与车辆闩锁相关的声音事件,例如开锁、闭锁和断开事件,同时显示闩锁的名称。
- 支架动画(PropAnimation) - 显示与支架动画控制器相关的声音事件,以及控制器的名称。
- 声景(Soundscape) - 显示与车辆各种声音相关的声音事件。
- 燃烧发动机(CombustionEngine) - 显示车辆上存在的发动机与排气相关的声音事件。在标签中显示发动机名称,并在本节标题中补充显示,例如“CombustionEngine mainEngine”。
- 动力系统(Powertrain) - 显示与车辆各类动力系统装置相关的声音事件。
Beam可视化(Beam visualization)
Beam调试视图提供多种方式来展示杆件的各种状态。这些视图对于构建你的jbeam,以及调查由不稳定性或属性泄漏引发的问题非常有帮助。默认情况下,你可以通过 Ctrl + B 快捷键访问Beam调试视图。一些Beam调试视图带有数值范围参数,用于限定可视化的数值范围。这些参数可以通过“车辆配置 > 调试 > ‘最小范围(Range Min)’”和“最大范围(Range Max)”滑块以及“显示无限值(FLT_MAX)”复选框进行设置。
本节介绍基于游戏中 Beam 当前状态的可视化模式。可用的模式有:
- 简单模式(Simple):以绿色显示所有 Beam。
- 类型模式(Type):根据 Beam 类型以不同颜色显示。普通 Beam 为绿色,支撑 Beam 为紫色,限界 Beam 为黄色,液压 Beam 为深蓝色,加压 Beam 为青色,L 型 Beam 为灰色,各向异性 Beam 为橙色。游戏内也有此配色图例。
- 显示损坏(With broken):与“类型”视图相同,但损坏的 Beam 会以红色显示。
- 仅显示损坏(Broken only):只显示损坏的 Beam。适用于排查如 Beam 出厂即断裂等问题。
- 仅支撑 Beam(Support only):仅显示未损坏的支撑 Beam。便于调整支撑 Beam 的 beamLongBound 参数。
- 应力模式(Stress):展示 Beam 上受力情况,压缩时为红色,拉伸时为蓝色。适用于观察不稳定问题和振动。有两种应力模式,一种在 Debug UI 中可限制数值范围,一种为“应力(旧)”,不限制数值范围。
- 位移模式(Displacement):显示 Beam 因弹性变形相较于原始长度的位移。蓝色表示被拉长,红色表示被缩短。Debug UI 支持范围约束。
- 永久变形(Deformation):显示 Beam 的永久变形量。蓝色表示相较原始长度被拉长,红色表示被缩短。Debug UI 支持范围约束。
- 断裂分组(Break Groups):按 breakGroups 用不同颜色高亮 Beam。可用来排查 breakGroups 未正确工作或泄漏的问题。
- 变形分组(Deform Groups):按 deformGroups 用不同颜色高亮 Beam。
- 限界 Beam 边界(Bounded Beam Bounds):仅显示限界 Beam。
- 如果 Beam 长度未相较生成长度发生变化(考虑预压缩),则全绿色显示,无节点两端超程。
- 若 Beam 被缩短,则当前长度显示为绿色,节点两端超至生成长度部分以深蓝色延伸。若触发 shortBound,则该部分为青色,且浅蓝色表示过渡区。
- 若 Beam 被拉长,则原始长度显示为绿色,延伸部分填充红色。超出 longBound 限度的部分为黄色,橙色表示过渡区。
- 支撑 Beam 边界(Support Beam Bounds):与上述相同,但适用于支撑 Beam。由于过渡区长度为零,故不显示过渡区。这类 Beam 通常用小于 1 的预压缩与较大 longBound 参数,因此经常有较长延伸的黄色 longBound 区域。
- 频率模式(Frequency):高亮当前设定频率和最大幅值的 Beam。
还有一些 Beam 可视化模式,可以根据 Jbeam 文件中设置的 Beam 属性进行可视化。这些调试模式将属性低端范围值可视化为白色,高端范围值为红色,无限(FLT_MAX)值为紫色。可用的模式包括:
- Beam 阻尼(Beam Damp)
- Beam 快速阻尼(Beam Damp Fast)
- Beam 回弹阻尼(Beam Damp Rebound)
- Beam 快速回弹阻尼(Beam Damp Rebound Fast)
- Beam 阻尼速度分离(Beam Damp Velocity Split)
- Beam 形变极限(Beam Deform)
- Beam 极限阻尼(Beam Limit Damp)
- Beam 极限回弹阻尼(Beam Limit Damp Rebound)
- Beam 长限界(Beam Long Bound)
- Beam 预压缩(Beam Precompression)
- Beam 预压缩范围(Beam Precompression Range)
- Beam 预压缩时间(Beam Precompression Time)
- Beam 短限界(Beam Short Bound)
- Beam 弹性系数(Beam Spring)
- Beam 强度(Beam Strength)
- 限界区域(Bound Zone)
- 阻尼截止频率(Damp Cutoff Hz)
- 阻尼扩展(Damp Expansion)
- 形变极限(Deform Limit)
- 形变极限扩展(Deform Limit Expansion)
- 形变触发比例(Deformation Trigger Ratio)
- 长限界范围(Long Bound Range)
- 预压缩范围(Precompression Range)
- 短限界范围(Short Bound Range)
- 弹簧扩展(Spring Expansion)
Beam文本
为每根Beam提供额外信息:
- IDs(编号)- 显示Beam的内部编号。
- 生成长度(Spawn Length)- 显示每根Beam的初始长度(米)。
- 实时长度(Live Length)- 显示每根Beam当前的长度(米)。
扭杆可视化(Torsion bar visualization)
仅通过调试UI提供。用于显示车辆的扭杆。对调试副车架、悬挂等刚性结构非常有用。
可用模式如下:
- 简单(Simple)- 每根扭杆的节点将从一端到另一端按照红色、橙色、黄色和绿色分别着色。每根扭杆的节点连接也会以不同颜色高亮显示。
- 无损坏(Without Broken)- 同上,但不会高亮显示损坏的扭杆。
- 显示损坏(With Broken)- 同上,但损坏的扭杆会以比完好扭杆更显眼的颜色高亮显示。
- 仅显示损坏(Broken Only)- 同上,但只高亮显示损坏的扭杆。
- 角度(Angle)- 扭杆的透明度显示其两端臂之间的夹角。你可以在设置中调整可视化的最小和最大范围。
- 应力(Stress)- 扭杆的透明度显示其两端臂之间的应力。你可以在设置中调整可视化的最小和最大范围。
- 变形(Deformation)- 扭杆的透明度显示其两端臂之间的形变量。你可以在设置中调整可视化的最小和最大范围。
- 阻尼(Damp)- 扭杆节点之间的连接颜色可视化其阻尼,方式与beam阻尼调试视图一致。你可以在设置中调整可视化的最小和最大范围。
- 形变抗性(Deform)- 扭杆节点之间的连接颜色可视化其形变抗性,方式与beam形变调试视图一致。你可以在设置中调整可视化的最小和最大范围。
- 刚度(Spring)- 扭杆节点之间的连接颜色可视化其刚度,方式与beam弹簧调试视图一致。你可以在设置中调整可视化的最小和最大范围。
- 强度(Strength)- 扭杆节点之间的连接颜色可视化其抗断强度,方式与beam强度调试视图一致。你可以在设置中调整可视化的最小和最大范围。
导轨与滑节点可视化
仅能通过调试UI访问。用于显示车辆的导轨和滑节点。对于排查由于滑节点错位导致车辆生成时的Beam断裂或形变问题非常有用。
可用模式如下:
- 简单(Simple)- 每条导轨及其滑节点用不同的颜色显示。滑节点的显示会比导轨节点粗。
- 无损坏(Without Broken)- 同上,但断裂的导轨和脱落的滑节点不会被高亮显示。
- 显示损坏(With Broken)- 同上,但断裂的导轨和脱落的滑节点会用比完好导轨和滑节点更醒目的颜色高亮显示。
- 仅显示损坏(Broken Only)- 同上,但只会高亮显示断裂的导轨与脱落的滑节点。
碰撞三角形可视化
三角形调试视图默认可通过Ctrl + T快捷键打开。可用于调试碰撞以及空气动力学。
可用模式如下:
- 简单(Simple)- 三角形正面用绿色显示,反面用紫色显示。
- 类型(Type)- 同上,但不可碰撞三角形的正面用黄色显示,有压力的三角形正面用蓝色显示。
- 无损坏(Without Broken)- 同上,但不会显示损坏的三角形。
- 显示损坏(With Broken)- 同上,但损坏的三角形正反面都会用红色显示。
- 仅显示损坏(Broken Only)- 同上,但只会显示损坏的三角形。
- 仅显示可碰撞三角形(Collidable Only)- 与“无损坏”类似,但也不会显示不可碰撞的三角形。
其它
- 空气动力学调试:
空气动力学调试仅能通过调试菜单访问,需要在UI选项中启用高级功能后才能使用。该工具用于调试车辆的空气动力学特性,如升力和阻力的不平衡等问题。请注意,虽然空气动力学属性是在三角面
中定义的,但真正的空气动力学力会在每个节点处计算,依据的是相邻三角面的属性、尺寸和朝向。
可用选项如下:
- 阻力+升力(Drag + Lift) - 会为每个节点显示3个向量。黄色为该节点气动表面的法线向量,基于相邻三角面的尺寸和朝向。红色为施加在该节点的阻力向量,此力始终指向与气流方向相反。蓝色为该节点的升力/下压力向量,此力始终与阻力垂直。
- 攻角(Angle of Attack) - 显示节点法线与气流之间的夹角。如果法线与气流完全对齐,攻角为90度,受力全为阻力;如果法线与气流垂直,攻角为0度,节点将不会受到任何空气动力学力。
- 综合(Combined) - 此视图整合了前两种视图的信息。
-
重心显示(Center of Gravity):
重心调试视图默认可通过Ctrl + G快捷键打开。
红点表示车辆的重心位置。蓝点表示车辆的压力中心位置,也就是所有升力与阻力力的合力平均点。两种不同的显示模式分别显示装配轮胎和无轮胎时的重心位置。
-
轮胎接地点调试(Tire contact point debug):
显示车辆每个轮胎与地面的接触点。
-
转向几何调试(自0.33版起提供)(Steering geometry debug):
会从轮心向两个方向投射射线。它们的交点有助于可视化和调试转向几何布局。射线长度可调节。
-
网格可见度(Mesh visibility):
虽然本身不是调试工具,但通过调整网格可见度,可以将车辆模型半透明或完全透明,以更好地观察各种调试视图。默认快捷键为Ctrl + 数字小键盘加号和Ctrl + 数字小键盘减号,分别提高或降低网格的可见度。
UI 应用程序
BeamNG.drive 包含许多有用的调试 UI 应用程序,可以添加到界面中。它们可通过顶部菜单中的 UI Apps 选项卡添加。
高级轮组调试
此应用可显示车辆每个轮子的前束角和外倾角,此外还可显示有转向轴轮子的主销后倾角(Caster)和转向轴倾角(SAI)。这些数值基于车辆 refNodes 参考点计算,并以 Jbeam 的 pressureWheels 部分定义的节点位置为基础。可用于设置和调试悬挂几何,也能方便地发现 refNode 对齐问题。
刹车热调试
允许选择车辆上的两个刹车,显示各种与温度相关的数值。可用于调试刹车过热问题。
发动机调试
显示一些关于发动机的信息,有助于调试因摩擦或温度引起的能量损失。
发动机热调试
显示车辆发动机各种热力学属性的详尽动态列表。包括发动机损坏、散热器和冷却效率、机油供给不足等信息。可以准确定位过热和机油问题原因,同时有助于冷却系统的调整。
节点/梁信息
此应用可可靠地显示车辆的 Jbeam 相关统计数据,如变形或断裂的梁和扭杆数量及百分比、准确的总重量、三角形数量等。可用于评估车辆 Jbeam 对性能的影响,也非常有助于发现导致重量异常或梁变形的不易察觉的问题。
动力系统可视化
可视化显示车辆动力系统树,包括所有组件及其传递的扭矩。点击“torque”文字可切换为功率。鼠标高亮组件会显示其名称与转速(RPM)。部分组件如锁止车轴、可断开传动轴、锁止差速器及变速箱,可在应用内点击进行交互。此应用适用于调试传动系统锁死、配置不当等问题。
换挡点调试
显示一个动画图,展现不同变速档在不同发动机转速和车轮速度(km/h)下的激活情况,标出换挡点并有当前档位的线。适用于设置自动变速器的换挡点。
扭矩曲线
几乎是发动机调校必备应用,显示扭矩-转速(Nm)曲线与功率-转速(Ps)曲线,同时显示当前和峰值的功率/扭矩及当前曲线上的点。各个强制进气装置可通过图表切换开关,并用不同线型区分。
重量分布
以多种方式显示车辆每个车轮的载荷:通过背景色突出超过 25% 载荷的车轮、以千克(kg)显示重量、以牛顿(N)显示力载荷,以及显示每个车轮所占总重量的百分比。
世界编辑器
世界编辑器(默认可通过 F11 键进入)包含一些对 Jbeam 调试很有用的工具。可通过 Window(窗口)选项卡添加。
发动机音频调试
在 Audio(音频)选项卡可找到。可实时调整和测试发动机及排气声效参数。调试结果的 Jbeam 配置可复制到剪贴板,粘贴到发动机的 Jbeam 文件中。
悬挂音频调试
在 Audio(音频)选项卡可找到。用于调试 Jbeam 定义的悬挂声音参数。
车辆详情查看器
开发中,稍后补充文档
车辆管理器
位于 Experimental(实验性)标签内。点击“Reload”(重新加载)后,会在用户文件夹下生成以下文件:
- vehicleDebug_activeParts.json:包含车辆上所有已激活零件的原始 Jbeam 数据,格式为 JSON。
- vehicleDebug_chosenParts.json:当前车辆已装备的所有零件及其插槽,格式与 .pc 配置文件类似。
- vehicleDebug_config.json:当前车辆的配置文件,格式和 .pc 文件相似,但包含更多数据。
- vehicleDebug_data.json:游戏引擎所识别到的本车全部数据。
- vehicleDebug_preTable.json:将车辆所有零件的 Jbeam 部分合并为一个 Json 文件。
车辆管理器可用于调试 Jbeam 中计算和字符串拼接的问题,通过展示数据在各阶段的处理结果,帮助排查错误。
车辆编辑器
车辆编辑器是一组实用的 Jbeam 工具,可通过 Shift + F11 快捷键或在世界编辑器(World Editor)标签:Window(窗口)> Experimental(实验性)> Vehicle Editor(车辆编辑器)中打开。车辆编辑器分为两个标签页:静态编辑器(Static Editor),侧重于编辑 Jbeam 文件;实时编辑器(Live Editor),可用于实时调试 Jbeam 行为。两者皆支持自定义布局,用户可保存常用布局,方便随时调用喜欢的工具。
静态编辑器应用
- Jbeam 修改器泄漏可视化:显示零件中使用的哪些 Jbeam 数值会泄漏到后续加载的零件。
- Jbeam 拼写检查器:在所有 Jbeam 文件中查找节名称拼写错误,并在控制台打印。
- Jbeam 表格可视化工具:在界面中以表格形式展示所选 Jbeam 文件。
- Jbeam 变量检查器:检查所有 .pc 文件中定义的变量是否超出 Jbeam 文件规定的范围,若超出,会打印到控制台。(如果同一变量在多个文件用不同范围定义,可能产生误报)
实时编辑器应用
- 车辆空气动力学调试:展示与空气动力学相关的各种数值,最常用的是车轴下压力。
- 梁可视化:与调试 UI 中相同。
- 柔性车身调试:在调试尖峰和拉伸问题时非常有用,可查看模型每个顶点被哪些节点插值、每个 Jbeam 节点插值了哪些顶点。在“All Flexmeshes”标签页内,还有自动查找顶点附近无节点(易导致峰值)的工具。
- 综合数据:一次性显示一些基本且有用的信息。
- Jbeam 选择器:可用鼠标选择车辆上的单独节点和梁,并显示其静态及实时数据。
- 灯光调试:展示车辆所有灯光照射的方向。
- 后视镜调试:可通过滑块实时测试后视镜的 Jbeam 参数。
- 节点三角自碰撞检测器:高亮可能发生碰撞、且距离低于指定值的节点和三角形,并在控制台输出相关数据。默认范围为 0.025m,意味着车辆生成时即发生碰撞。建议至少设为 0.035m,以避免底盘形变时发生碰撞。
- 节点可视化:与调试 UI 相同。
- 动力系统监控器:显示所选动力装置的静态及实时 Jbeam 数据。
- 道具变换器:非常实用的工具,可大幅简化道具在车辆上的定位。点击“Pick Prop”按钮选择道具后,车辆上会显示一些点(为道具的原点节点),可使用滚轮切换每个原点上的不同道具。使用底部按钮可启用 3D 操控器对道具进行位置和旋转调整。最终,可手动或直接用按钮(一旦使用 baseTranslationGlobal)将参数从文本框复制到 Jbeam。
- 原始车辆数据:显示来自游戏引擎的所有车辆数据。
道具(Props)
游戏中有一些可生成的道具,可以协助调试和调整 Jbeam 参数。请在载具选择器中勾选 Include Auxiliary Debug Content(包含辅助调试内容)复选框后才能看到它们。
车顶挤压测试器(Roof Crusher Tester)
此道具用于模拟 IIHS 车辆车顶强度测试,以便实现车辆更加真实的车顶变形。
使用教程
- 打开要测试车辆的车身 JBeam 文件,并在地板节点(floor nodes)中添加 {“fixed”:true} 标签。
- 在 Grid, Small, Pure 地图中生成 Roof Crusher Tester。勾选“Include Auxiliary Debug Content”选项后,可以在列表底部找到它。生成你要测试的车辆,并通过世界编辑器将其移动到挤压器正中央。建议使用车辆的基础版本。
- 点击挤压器上的蓝色球,并等待它接触到车辆车顶。如果没有正确接触,可能需要拆卸部分零件,或使用红色和绿色球调整位置。对于较矮的车辆,也可以通过世界编辑器将车辆抬高。
- 再次点击蓝色球,等待 UI 显示测量结果,同时也可以在控制台看到数据。如果车辆的后视镜干扰了测试(老车型的模组中常见),可移除后视镜后重新测试。
- 用测试结果数值除以 9.81,计算车辆的车顶强度系数。
- 用车辆的重量乘以 IIHS 车顶强度测试评分,可得到理论强度系数。如果找不到完全相同的车型,可选用最相近的车型参考。
- 2013 年前的车辆通常评级约为 1.5,低价车型更低,非常便宜的可降至 1.00,昂贵车型可达 1.75 左右。大多数 1980-2005 年的车辆评级都在 1.5 以上,之后甚至可超过 3。2013 年起标准大幅提高,评级接近 4。2016 年及以后的车型至少为 4,重型或高端车型甚至可高于 5。SUV 的车顶强度因结构设计差异可能强于或弱于普通轿车。
- 调整 Jbeam 直到测试结果合理(现实车的 2 倍左右即可)。你可能需要重构屋顶和每根柱子的 Jbeam,使每个柱子都有自己的加强梁,并通过易形变的梁相连。还应测试玻璃对结果的影响,并相应减弱其强度,必要时也要调整或移除可断裂的车身梁。
- 测试后请记得重新调整地板强度,以确保车辆正面碰撞时的结构强度。