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