效果
步骤
1. 新建一个Niagara系统,选择一个空模板,这里命名为“NS_Worm”
打开“NS_Worm”,重命名发射器为“Leader”
先添加“Spawn Burst Instantaneous”模块来单次生成粒子
为了让粒子持续停留在关卡中,需要在“Particle State”模块中取消勾选“Kill Particles When Lifetime Has Elapsed”
添加一个“Curl Noise Force”模块,来添加一个随机的噪波力
点击修复问题
添加一个噪波力
设置循环模式为自身、单次
此时粒子会运动到非常远的位置,如果我们希望粒子在一定范围内移动,就需要添加一个引力。这里添加一个“Point Attraction Force”模块,设置引力大小为5,引力半径为100000
接下来制作它跟随的粒子
添加一个Empty发射器
重命名新的发射器为“Body”
添加一个“Spawn Particles from Other Emiter”模块,实现从其它发射器中生成粒子
点击修复问题
修复后会多出一个“Sample Particles from Other Emitter”模块,在该模块中再次点击修复问题
设置从发射器“Leader”中读取粒子
此时可以看到发射器“Body”中生成的粒子会跟随发射器“Leader”产生的那个粒子移动
将渲染更改为网格体渲染器
设置网格体为引擎自带的“SM_Cube_01”
2. 找到网格体“SM_Cube_01”所用到的材质“M_Floor_01”,添加如下节点
3. 回到“NS_Worm”中,在“Initialize Particle”中设置“Mesh Scale Mode”为“Non-Uniform”,设置网格体X轴缩放只有0.3
接下来需要更改网格体的朝向让方块随着粒子的运动方向进行旋转。添加一个“Update Mesh Orentation”模块,设置“Orientation Method”为“Orient To Vector(s)”设置“Facing Direction”为“Normailize Vector”
在“Sample Particle from Other Emitter”模块中设置“Velocity Sampling”为“Output Only”
在左下角粒子属性中添加一个新的向量
将“New Vector”拖入到发射器“Body”中
将采样的速度作为“New Vector”的值
选中“Update Mesh Orientation”模块,将“New Vector”拖入到如下位置
此时可以看到网格体的朝向和粒子的运动方向一致
再次添加一个“Update Mesh Orientation”模块
设置旋转速率为0.5
增加粒子生成数量
减少噪波力的强度
添加一个“Scale Mesh Size”模块,让网格体尺寸缩放随如下曲线变化
为了不显示发射器“Leader”生成的那个粒子,我们可以设置该粒子大小为0
设置初始颜色
添加一个“Scale Color”模块,设置颜色变化曲线
最终效果如下