【转载】Niagara 中的三维网格分布模块脚本

210 阅读2分钟

原文链接:【Niagara教程】Niagara中的三维网格分布模块脚本

前言

在 Niagara 中有一种视觉效果是用庞大数量来呈现震撼的效果的, 我们可以让网格来模拟像素点, 也可以去程序化设定每个网格的位置, 使整个效果变得特别牛~ 但是可能对密集恐惧症患者就不那么友好了~哈哈哈,那本篇文章只是单纯讲解在 Niagara 中如何实现密密麻麻的三维网格分布模块脚本, 同时, 本篇文章也是为下一篇文章做铺垫

juejuejue.gif

第一步: 效果分析

  1. 我们需要的变量1: 在 X,Y,Z 三个轴向上的网格数量 ,
  2. 我们需要的变量2: 整体的网格空间尺寸, 也是 X,Y,Z 三个轴向的大小
  3. 分析步骤, 通过简单的代数方式推算公式:

第二步: 实现方法

1.

这里用的是 4.21 版本, 首先新建一个粒子发射器, 以及两个粒子模块脚本, 之后命名, 注意这里我们选择的 模板为空

2.

打开 GridNE 粒子发射器添加以下模块:

Emitter Spawn>Emitter Properties 下的 Requires Persistent IDs 勾选上, 这个可以使我们在脚本中访问到该粒子是第几个, 也就是粒子的编号 P(见 图1 效果分析)

Emitter Update 中添加 Emitter Life Cycle,并将 NextLoopDuration 下一循环持续时间设置为 10.

Emitter Update 中继续添加 Spawn Burst Instantaneous, 给一个粒子初始值,这里我们先不管参数, 先把模块添加上, 后续会绑定参数.

Particle Spawn 添加 Particles.Life 变量,并将值设置为 10

最后在 Render 下, 添加 NiagaraMeshRendererPropertie 属性模块,设置 Mesh,使用最基本的 Cube Mesh 即可,同时要注意, Cube 材质球为下图中的材质.

3.

打开 Grid_Count 模块,如图设置我们的脚本, Module. 开头的为自定义变量,并且该变量会在发射器的模块下暴露出来. Emitter. 为粒子的属性,我们可以设置值来做对应的修改

image.png

4.

打开 Grid_Distance,通过前面的分析,带入公式, 如果看不明白的可以自己多试几个数, Particles.Position 为粒子的位置属性

image.png

5.

设置好之后将两个模块添加到对发射器 GridNE 当中,注意 Grid_Count 添加到 Emitter Spawn 组下, Grid_Distance 添加到 Particle Update 组下

6.

设置 Spawn Burst Instantaneous > Spawn Count 属性, 这个 Emitter.NumInstances 就是我们在 Grid_Count 中计算的值. 设置好后就可以调整我们想要的效果啦~~