如何将 Unreal Engine 4 Niagara Int 数组传递给蓝图

How to pass Unreal Engine 4 Niagara Int Array to Blueprint

我正在努力从蓝图中检索 Niagara Int 数组。在研究这个主题时,我遇到了“Niagara Get Int32 Array”节点,但它没有按预期工作。出于某种原因,当我尝试检索用户暴露的参数时,我只得到一个有效的数组 returned,但是当我尝试获取一个系统或发射器数组时,它不是 return 一个有效的数组。

This returns Length 0 (4 is expected)

This returns Length 4 ( as expected)

我的问题是否可以从 Niagara Systems 检索系统或发射器阵列并将它们传递给蓝图?我是否正确使用了这个节点?或者我应该使用 2D 网格和稍后在着色器中解释的纹理来执行此操作?

感谢任何帮助

您可以使用这两个数据接口之一:

  • 导出数据接口可以将粒子数据数组发送到蓝图(在内容示例的Niagara_Advanced地图中有使用它的示例系统)
  • 数组数据接口可用于将数组从蓝图发送到 Niagara 或在发射器之间发送。

导出粒子数据接口非常有限,也不会在多个帧上提供持久粒子索引。此外,它只允许输出两个向量和一个标量参数,而不是数组或值列表。

原来无法从 Niagara GPU 发射器检索数组。解决方案是使用 Grid Collections 而不是数组,并将它们输出为渲染目标纹理,以对所需信息进行编码。然后可以通过自定义计算着色器或蓝图解释这些纹理(仅当您要编写自己的 ReadRenderTargetPixel 函数时才建议这样做,因为本机函数会阻塞渲染线程)