阿赵UE学习笔记目录
大家好,我是阿赵。
继续学习虚幻引擎,之前简单介绍了Niagara粒子系统,这次用Niagara系统做一个火焰的效果。
一、创建发射器
和之前介绍的一样,先创建一个空白的发射器:

我把这个发射器命名为FireEmitter:

打开发射器编辑器,把基础需要的几个模块加上:

这时候能看到有粒子显示:

然后调整一下发射的频率和粒子的大小:


二、创建材质球
接下来需要给粒子发射器制作材质球了,先创建一个材质:

我给这个材质命名为fireMat:

双击打开材质编辑器,先把混合模式改成Additive:

在StarterContent里面有一张火焰的序列帧图片,这是我正准备用的:

在材质编辑器里面新增一个TextureSample 节点,然后把刚才那张火焰的序列图指定进去:

然后把这个TextureSample节点转换为参数,命名为MainTex:

然后把RGB连接到自发光颜色,把A连到不透明度。

我们可以直接用材质,但规范的做法,应该是创建一个材质实例来使用:

三、设置UV动画
接下来需要把刚才做的材质实例指定到粒子发射器的渲染模块:

然后找到“子UV”,勾选“已启用子UV混合”,由于刚才那张序列帧图是6x6的,所以这里填两个6

这个时候,看粒子预览,已经看到出现了第一帧的动画了,但只停留在第一帧,没有动起来:

在粒子更新阶段加一个SubUVAnimation模块:

然后指定Sprite渲染器:

这时候动画还是没有动起来,这是因为还没有加Particle State:

由此可见,Particle State是很重要的,没有了它,粒子就不会更新了。这个时候,火焰应该就动起来了:

四、增加粒子颜色
这时候会发现一个问题,我们改粒子的颜色,却发现火焰的颜色并没有发生变化:

回到材质编辑,在RGB颜色,需要单独叠加一个Particle Color,然后从粒子系统传入这个Particle Color,包括初始化或者生命周期的颜色变化。

这是我对UE的着色器很迷惑的一个地方,它对于粒子系统,单独要设置这个Particle Color,那么这个材质就变成了粒子系统专用,而没什么通用性了。
反正加上了Particle Color之后,回到粒子发射器编辑器,会发现现在火焰已经可以根据粒子发射器的设置而改变颜色了。

如果再加一个Scale Color到粒子更新阶段,会发现火焰的颜色可以变化了:


五、创建Niagara系统并放到场景
老规矩了,发射器单独不能使用,需要套一层Niagara系统,所以创建一下:

然后就可以放到场景里面了:
