几何体集调试绘制

对使用几何体集调试绘制和公开Chaos刚体属性的方法进行讲解。

Choose your operating system:

Windows

macOS

Linux

根据你使用的版本,你可能不一定需要启用Chaos插件。

  • 如果你用的是虚幻引擎4.26或更早的版本的标准版本,必须通过源码版本编译并启用Chaos破坏工具。

  • 假如用户用的是UE_4.26Chaos版本或更高版本,Chaos是默认启用的。 更多信息请参阅 Chaos破坏系统概述 文档。

使用几何体集时,显示特定几何体集(或一组几何体集)的信息十分实用。 利用**几何体集调试绘制Actor 可利用 细节** 面板或控制台命令切换如层级、群集、刚体信息等显示信息。

在编辑器中调试

关卡中有要调试的几何体集后,在 在编辑器中运行 会话期间,使用 世界大纲视图 查找并选择 GeometryCollectionDebugDrawActor

DebugDrawActor_Outliner.png

此操作将显示 调试绘制 属性面板,其控制当前关卡中几何体集内可用的不同可视化模式类型。

显示刚体ID

上手调试的最佳地点便是显示刚体ID。在Actor的 调试绘制(Debug Draw) 类别和 刚体(Rigid Body) 子类别中,启用 显示刚体ID(Show Rigid Body Id) 复选框。

DebugDrawActor_RigidBodyIDs.png

利用 选定刚体(Selected Rigid Body) 属性可查看所有刚体(-1)或输入想要显示的刚体ID。

DebugDrawActor_SelectedBody.png

在上图中的 Id 字段中输入 95 ,可仅显示左侧的柱体,而非场景中的两个物体。

启用场景中所有几何体集的可视化对于小测试场景十分有用,但可能会严重影响大关卡的帧率。

除在 选定刚体(Selected Rigid Body) 字段输入Id外,还可使用滴管选择场景中的对象。

DebugDrawActor_EyeDropper.png

同样可通过启用 调试绘制群集(Debug Draw Clustering) 选项,显示群集几何体集的非活跃子项来获取更多信息。

DebugDrawActor_DrawClustering.png

导航群集

选定刚体(Selected Rigid Body) 选项下,可在子项/父项间移动及在不同群集间循环。

以上视频启用了 调试绘制层级(Debug Draw Hierarchy) 显示面(Show Faces) ,以便在循环时查看各群集的面。

可视化选项

使用 调试绘制完整集(Debug Draw Whole Collection) 属性可选择是否显示完整集。此操作将显示与选定刚体Id属于相同几何体集的所有刚体调试信息。

启用完整几何体集将会增加显示难度,并会对帧率产生负面影响,具体取决于集合大小。

也可通过下拉列表的方式显示几何体信息(几何体集的图表代表默认位于层级底部)。 如着重于探索顶部节点的几何体, 调试绘制层级(Debug Draw Hierarchy) 选项将首先启用父项显示。该选项还可与 调试绘制群集(Debug Draw Clustering) 选项合并以同时显示父项和子项。

DebugDrawActor_TopDownGeo.png

由于刚体信息已在父项中显示,因此 调试绘制层级(Debug Draw Hierarchy) 选项仅影响几何体集组件属性的显示。

隐藏几何体

默认仅在显示碰撞体积时隐藏与选定刚体Id相关的几何体,但 隐藏几何体(Hide Geometry) 属性下还有部分其他选项。

选项

说明

不隐藏(Hide None)

不隐藏任何几何体。

隐藏碰撞(Hide Collision)

隐藏与刚体关联的几何体(默认选项),此类刚体被选中用于显示碰撞体积。

隐藏选中项(Hide Selected)

隐藏与选中刚体相关的几何体。

隐藏整个集(Hide Whole Collection)

隐藏与选中刚体相关的整个几何体集。

全部隐藏(Hide All)

隐藏所有几何体集。

将-1用作选中 刚体Id 时,最后四个选项相同(将隐藏所有几何体集)。

开关要显示的属性

细节 面板(或通过控制台)中可开关要显示的属性。 结合多个属性可产生不同的效果,例如下方范例中启用 显示刚体碰撞(Show Rigid Body Collision) 显示刚体Id(Show Rigid Body Id) 以及选择 隐藏选中项(Hide Selected) 选项的 隐藏几何体(Hide Geometry)

DebugDrawActor_MultipleOptions.png

显示关卡集类型碰撞体积时,一次只能显示一个体积,即使启用 调试绘制整个集(Debug Draw Whole Collection) 选项也同样如此。

可将多个不同类别分组到多个类别: 刚体 刚体群集 几何体集组件 。 这些类别适用于选中刚体或包含选中刚体的整个几何体集。

GeometryCollectionDebugDraw_Properties.png

多数属性为自解释类型,例如 显示顶点(Show Vertices) 切换显示刚体顶点,或者 显示边界框(Show Bounding Box) 切换显示刚体边界框。 以下为部分例外。

  • 显示刚体速度(Show Rigid Body Velocity) - 此属性显示线性(箭头长度)和角速度(圆半径)。 GeometryCollectionDebugDraw_Velocity.png

  • 显示刚体力(Show Rigid Body Force) - 显示力(箭头)和扭矩(圆)。

  • 显示刚体信息(Show Rigid Body Infos) - 显示选中刚体完整的屏幕文本调试信息。 DebugDrawActor_ShowInfo.png

  • 显示连接边缘(Show Connectivity Edges) - 显示仍为群集的兄弟刚体的各逻辑连接。 DebugDrawActor_ClusterConnectivity.png

    由于 调试绘制群集(Debug Draw Clustering) 选项显示子节点信息,因此需进行使用。

  • 显示单个面(Show Single Face) 单个面索引(Single Face Index) - 显示选中面以协助调试几何体。

    该可视化仅在选中特定几何体集时可用( 选中刚体 不可为-1)。

可视化设置

可在 设置(Settings) 类别下切换调试可视化设置。

GeometryCollectionDebugDraw_Settings.png

在此可进行如更改绘制颜色或变换缩放属性等自定义。因颜色背景造成可视化不清时,该功能将十分有用。 多数属性为自解释类型,并会影响基本调试绘制元素的绘制。 此外,启用 使用活跃可视化(Use Active Visualization) 后可视化将随几何体集的各群集级别而变,调试行和文本将变暗,同时变形轴将随群集级别增大而变小。

DebugDrawActor_ActiveVisualization.png

使用控制台调试

还可在控制台中更改所有 几何体集调试绘制Actor 属性,具体步骤如下。

列出调试绘制命令

所有几何体集调试绘制命令均位于 p.gc 前缀下:

GeometryCollectionDebugDraw_ConsoleCommandList.png

在命令结尾处添加问号 ? ,可访问各命令的描述:

GeometryCollectionDebugDraw_ConsoleCommandInfo.png

由于所有命令均与调试绘制Actor的属性匹配,因此请同时参见 在编辑器中调试 部分,了解属性效果的额外说明。

显示刚体Id

使用命令:

p.gc.ShowRigidBodyIds 1

选择用于调试绘制的刚体

使用命令:

p.gc.SelectedRigidBodyId X

在以上命令中,将X替换为需要显示其信息的刚体Id。

启用/禁用整个集的可视化。

使用命令:

p.gc.DebugDrawWholeCollection 1

此操作将显示与选定刚体Id同属相同几何体集的所有刚体调试信息。

隐藏几何体

默认仅在显示碰撞体积时隐藏与选定刚体Id相关的几何体,使用以下命令可选择另一选项:

p.gc.HideGeometry [0|1|2|3|4|]
0 不隐藏,不隐藏任何几何体。
1 隐藏碰撞,隐藏与选中碰撞体积可视化刚体相关的几何体(默认)。
2 隐藏选中项,隐藏与选中刚体相关的几何体。
3 隐藏整个集,隐藏与选中刚体相关的整个几何体集。
4 全部隐藏,隐藏所有几何体集。

将-1用作选中 刚体Id 时,最后四个选项相同(将隐藏所有几何体集)。

启用/禁用/查询调试绘制属性

还可通过命令台使用以下命令:

命令

说明

p.gc.DebugDrawHierarchy [0|1]

从选中刚体ID开始(如未选择则从根开始),显示层级顶部的可视化调试,而非叶节点。默认值 = 0。

p.gc.DebugDrawClustering [0|1]

显示当前选中刚体ID的群集子项可视化调试。默认值 = 0。

p.gc.ShowRigidBodyCollision [0|1]

显示选中刚体的碰撞体积。默认值 = 1。

p.gc.CollisionAtOrigin [0|1]

显示局部空间中原点处的碰撞体积。默认值 = 0。

p.gc.ShowRigidBodyTransform [0|1]

显示选中刚体的变形。默认值 = 1。

p.gc.ShowRigidBodyVelocity [0|1]

显示选中刚体的线性和角速度。默认值 = 0。

p.gc.ShowRigidBodyForce [0|1]

显示选中刚体的应用力和扭矩。默认值 = 0。

p.gc.ShowRigidBodyInfo [0|1]

显示选中刚体的信息。默认值 = 0。

p.gc.ShowConnectivityEdges [0|1]

显示选中刚体的群集连接边缘。默认值 = 0。

p.gc.ShowTransformIndex [0|1]

显示与选中刚体匹配的几何体集变形索引。默认值 = 0。

p.gc.ShowLevel [0|1]

显示与选中刚体匹配的几何体集层级。默认值 = 0。

p.gc.ShowTransform [0|1]

显示与选中刚体匹配的几何体集变形。默认值 = 0。

p.gc.ShowBoundingBox [0|1]

显示与选中刚体匹配的几何体集边界框。默认值 = 0。

p.gc.ShowFace [0|1]

显示与选中刚体匹配的几何体集面。默认值 = 0。

p.gc.ShowFaceIndex [0|1]

显示与选中刚体匹配的几何体集面索引。默认值 = 0。

p.gc.ShowFaceNormal [0|1]

显示与选中刚体匹配的几何体集面法线。默认值 = 0。

p.gc.ShowVertex [0|1]

显示与选中刚体匹配的几何体集顶点。默认值 = 0。

p.gc.ShowVertexIndex [0|1]

显示与选中刚体匹配的几何体集顶点索引。默认值 = 0。

p.gc.ShowVertexNormal [0|1]

显示与选中刚体匹配的几何体集顶点法线。默认值 = 0。

刚体碰撞

以下命令可用于显示刚体碰撞:

启用:

p.gc.ShowRigidBodyCollision 1

禁用:

p.gc.ShowRigidBodyCollision 0

查询:

p.gc.ShowRigidBodyCollision

更改可视化设置

以下命令也可用于自定义绘制信息的方式:

命令

说明

p.gc.PointThickness [float]

点厚度。默认值 = 6。

p.gc.LineThickness [float]

线厚度。默认值 = 1。

p.gc.TextShadow [0|1]

指数文本下的阴影,提高可读性。默认值 = 1。

p.gc.TextScale [float]

文本缩放。默认值 = 1。

p.gc.NormalScale [float]

法线大小。默认值 = 10。

p.gc.TransformScale [float]

变形大小。默认值 = 20。

p.gc.ArrowScale [float]

法线的箭头大小。默认值 = 2.5。

后期处理效果

若发现调试绘制线上有瑕疵,可能是由于后期处理影响了调试绘制线条的渲染方式。

关闭线的后期处理

使用控制台命令可关闭后期处理:

ShowFlag.PostProcessing 0

之前,开启后期处理:

GeometryCollectionDebugDraw_PostprocessingOn.png

之后,关闭后期处理:

GeometryCollectionDebugDraw_PostprocessingOff.png

关闭后期处理将阻止渲染LevelSet碰撞体积(参见下一章)。

打开LevelSet渲染的后期处理

使用调试绘制显示LevelSet前务必开启后期处理,否则将不会渲染光线行进材质。

ShowFlag.PostProcessing 2

之前,关闭后期处理,未渲染LevelSet:

GeometryCollectionDebugDraw_LevelSetPostprocessingOff.png

之后,开启后期处理,照常绘制LevelSet:

GeometryCollectionDebugDraw_LevelSetPostprocessingOn.png

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消