本文章用于记录博主本人Niagara扩散效果的实现步骤,也供大家学习使用,欢迎转载
实现效果如下图所示:实现一个水波动态纹扩散效果
并且要实现一定的通用和可配置性,所以设计了三个可控参数:颜色、呼吸速度、环数
Step
Create Shader
首先我们需要下图这样的环状透明模式的材质,并可以设置发光颜色和强度
我们用UE4自带的一些环状MaskFunction不难实现,实现思路如下:
Create Niagara Emitter
Create an Empty Emitter
在资源中右键,在FX文件夹中选择Emitter,创建一个Empty Emitter类型
Emitter Setting
勾选LocalSpace:目的是让粒子系统的缩放受场景缩放控制
Emitter Update
增加一个SpawnRate组件。
在User Exposed中增加三个变量:Float;Vextor;Int各一个,分别命名为SpawnRate;Color;Amount,他们在后面分别代表波动速度、颜色、同一时间出现的环数。
在SpawnRate数值后面点击倒三角,选择成MultiplyFloatbyInt并分别设置上上面的两个变量
Particle Spawn
在InitializeParticle组件中,将MeshAttributes中设置成固定缩放,值为1(该设置修改注解:此设置将作为粒子生成的时的基础缩放值存在,后续在粒子更新中的缩放都是基于这个的基础上再进行缩放的,;如果用默认设置,则在后续步骤中添加MeshRenderer后预览窗口就看不到任何模型)
在InitializeParticle组件中,将LifeTime设置成DivideFloat,用1除以SpawnRate
Particle Update
增加一个scale Color组件
将其ScaleRGB变量指定为上面定义的RingColor
将ScaleAlpha设置成FloatFromCurve,设置0点值为1,1点值为0。并将CurveIndex设置成MultiplyFloat,将age和SpawnRate相乘(是age,不是NormalizedAge,设置成后者会出现扩散后暂停等待粒子死亡的问题)
增加Scale Mesh Size组件
按照下图对其进行配置
Render
Sprite Renderer组件,添加Mesh Renderer组件:设置模型为系统的plane,材质设置为前面创建的材质的材质实例
Create BluePrint Actor
给前面创建的Emitter创建一个NiagaraSystem,并将System添加进蓝图中,并创建下图所示Function
并将此Function连接在构建脚本上,暴露出相应参数,然后就可以拖入场景尽情配置啦