前言
在 Niagara 中有一种视觉效果是用庞大数量来呈现震撼的效果的, 我们可以让网格来模拟像素点, 也可以去程序化设定每个网格的位置, 使整个效果变得特别牛~ 但是可能对密集恐惧症患者就不那么友好了~哈哈哈,那本篇文章只是单纯讲解在 Niagara 中如何实现密密麻麻的三维网格分布模块脚本, 同时, 本篇文章也是为下一篇文章做铺垫
第一步: 效果分析
- 我们需要的变量1: 在 X,Y,Z 三个轴向上的网格数量 ,
- 我们需要的变量2: 整体的网格空间尺寸, 也是 X,Y,Z 三个轴向的大小
- 分析步骤, 通过简单的代数方式推算公式:
第二步: 实现方法
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. 为粒子的属性,我们可以设置值来做对应的修改
4.
打开 Grid_Distance
,通过前面的分析,带入公式, 如果看不明白的可以自己多试几个数, Particles.Position
为粒子的位置属性
5.
设置好之后将两个模块添加到对发射器 GridNE 当中,注意 Grid_Count 添加到 Emitter Spawn
组下, Grid_Distance 添加到 Particle Update
组下
6.
设置 Spawn Burst Instantaneous
> Spawn Count
属性, 这个 Emitter.NumInstances
就是我们在 Grid_Count 中计算的值. 设置好后就可以调整我们想要的效果啦~~