阿赵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系统,所以创建一下:
然后就可以放到场景里面了: