调试绘图

学习如何使用调试绘图可视化Niagara系统的元素。

Choose your operating system:

Windows

macOS

Linux

调试绘图

调试绘图在某个模块上可用时,点击它将显示该模块的可视化。请查看以下应用于"球体位置"模块的调试绘图示例。

"球体位置"模块上的调试绘图

如何启用调试绘图

在Niagara编辑器中, 调试绘图(Debug Drawing) 可用时,你会在模块上看到图标。

并非所有模块都提供了"调试绘图(Debug Drawing)"选项。

堆栈中的"调试绘图"图标

要启用 调试绘图(Debug Drawing) ,请点击盒体图标。现在你将在视口中看到可视化。

启用多个调试绘图模块

你可以根据需要启用任意数量的 调试绘图(Debug Drawing) 模块。启用多个模块时,你将看到每个模块输出其自己的绘图。

例如,你在 盒体位置(Box Location) 球体位置(Sphere Location) 模块上都启用调试绘图,你将看到这两个模块各自有一个可视化。

"球体位置"和"盒体位置"模块上的调试绘图

这里创建的粒子组合使用这两个模块来确定位置。可视化显示了各个模块,能帮助你调试产生的效果。

调试绘图的类型

调试绘图主要有两种类型,即 逐粒子(Per Particle) 持久(Persistent) 。你可以设置"逐粒子"可视化来追踪每个粒子的进度,逐帧进行更新。

持久可视化会绘制一次,之后会在不同帧之间持久存在。持久绘图必须由常量参数驱动,可以是函数节点上的值,也可以是迅速迭代参数。持久绘图不能作为数学运算或图表运算的结果进行绘制。如果调试绘图不能推断出这些参数的编译标签,它将代替默认值。

"球体位置"模块和"盒体位置"模块的上述可视化是持久可视化的示例。要了解"逐粒子"可视化的示例,你可以查看下面 涡旋力(Vortex Force) 模块上的调试绘图示例。

"涡旋力"模块上的调试绘图

这里,我们可以看到,每个粒子上绘制了一条线,表示应用于该粒子的涡旋力的方向和大小。

调整调试绘图设置

如果你选择的模块开启了调试绘图,默认情况下, 选择(Selection) 面板底部会新增 调试(Debug) 分段。

"选择"面板中的"调试绘图"选项

在本示例中,你可以调整参数,例如绘制的线条的颜色、长度,以及是为每个粒子绘制调试绘图还是跳过粒子。你在这里将看到的调试选项类型取决于已设置的调试绘图类型。

如何在自定义模块上启用调试绘图

要充分了解如何在自定义模块上使用调试绘图,请双击已有调试绘图的模块,检查脚本的设置方式。有关持久绘图的示例,请查看"球体位置"和"盒体位置"模块。有关"逐粒子"设置的示例,请检查"涡旋力"模块。

如果你将调试绘图添加到模块,最好将其添加到脚本末尾,以便在脚本的其余部分完成后绘制调试界面。

作为基本流程,首先你需要使用Map Get来获取调试绘图本地参数,以及你可能需要用于驱动绘图的所有输入。例如,要绘制一条线,就需要起点和终点。要绘制一个球体,就需要中心位置和半径。

你需要的确切输入取决于你打算可视化的具体内容。

调试绘图工作流程图

例如,在"涡旋力"示例中,我们使用了以下输入。

Map Get模块上的调试绘图

DebugDraw 会将调试绘图界面添加到该模块,让用户可以从 系统概述(System Overview) 中选择开启和关闭调试绘图。

ParticlesPosition 将为我们提供该帧上粒子的位置。 VortexForceAmount 将为我们提供已为"涡旋力"模块设置的值。然后,我们使用自定义输入,让用户定义调试绘图的线条颜色以及线条长度。

获取你需要的输入后,这些值需要从本地空间转换到世界空间。 引擎比例(Engine Scale) 用于从本地空间转换到世界空间。

接着,你可以将 调试绘图(Debug Draw) 输出引脚连接到"绘制"组件。如果你从"调试绘图(Debug Draw)"拖离并释放,你将看到各种绘图有许多选项可供选择。

"调试绘图"引脚

请注意,每种类型的绘图都有一个标准选项和一个持久选项。如果你希望绘图在粒子更新时逐帧修改,就使用标准绘图。

如果你希望将一个绘图用于整个Niagara系统,就将持久绘图用于静态绘图。持久绘图还可以在该给定时刻系统没有粒子处于活动状态时绘制。这就是持久绘图非常适合用于绘制静态形状的原因,就像"球体位置"模块示例中那样。

在你选择想要绘制的绘图类型之后,就可以连接此绘图为了完成绘制所需的参数。这是一个简单 绘制线条(DrawLine) 组件的示例:

"绘制线条"模块

将Map Get节点的"调试绘图(Debug Draw)"输出引脚连接到DebugDrawInterface节点的输入引脚。然后,你可以定义要绘制的线条的开始和结束位置。例如,你可以将ParticlePosition设置为StartLocation。然后,你可以让用户定义线条的长度,并使用VortexForce设置定义线条方向的向量。组合起来,脚本如下所示。

调试绘图脚本

在本示例中:

  • A是Map Get节点,我们会从中获取需要的值。

  • B是我们从本地空间转换到世界空间的位置。

  • C是我们确定线条结束点的方式,具体做法是将开始位置和涡旋力的向量加起来。

  • D是能绘制调试绘图的"绘制线条"组件。

要深入理解本示例,请将"涡旋力"模块添加到Niagara系统,然后双击该模块以检查Niagara脚本。

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