调试绘图

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

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脚本。

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