【转载】UE4 Niagara扩散环效果及参数化配置(数字孪生用)

507 阅读2分钟

版权声明:本文为CSDN博主「a1406215966」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:blog.csdn.net/a1406215966…

正文

本文章用于记录博主本人 Niagara 扩散效果的实现步骤,也供大家学习使用,欢迎转载 实现效果如下图所示:实现一个水波动态纹扩散效果

并且要实现一定的通用和可配置性,所以设计了三个可控参数

  • 颜色
  • 呼吸速度
  • 环数

image.png

步骤简介

  1. Create Shader
  2. Create Niagara Emitter
  3. Create an Empty Emitter
  4. Emitter Setting
  5. Emitter Update
  6. Particle Spawn
  7. Particle Update
  8. Render
  9. Create BluePrint Actor

Create Shader

首先我们需要下图这样的环状透明模式的材质,并可以设置发光颜色和强度

image.png

我们用 UE4 自带的一些环状 MaskFunction 不难实现,实现思路如下:

image.png

Create Niagara Emitter

Create an Empty Emitter

在资源中右键,在 FX 文件夹中选择 Emitter,创建一个 Empty Emitter 类型

image.png

Emitter Setting

勾选 LocalSpace:目的是让粒子系统的缩放受 场景缩放 控制

image.png

Emitter Update

增加一个 SpawnRate 组件。 在 User Exposed 中增加三个变量:Float; Vextor; Int 各一个,分别命名为 SpawnRate; Color; Amount,他们在后面分别代表 波动速度颜色同一时间出现的环数

image.png

SpawnRate 数值后面点击倒三角,选择成 MultiplyFloatbyInt 并分别设置上上面的两个变量(SpawnRate, Amount

image.png

Particle Spawn

InitializeParticle 组件中,将 MeshAttributes 中设置成 固定缩放(Uniform),值为 1

image.png

该设置修改注解:此设置将作为粒子生成的时的基础缩放值存在,后续在粒子更新中的缩放都是基于这个的基础上再进行缩放的;如果用默认设置,则在后续步骤中添加 MeshRenderer 后预览窗口就看不到任何模型

InitializeParticle 组件中,将 LifeTime 设置成DivideFloat,用 1 除以 SpawnRate

image.png

Particle Update

增加一个 Scale Color 组件

image.png

将其 ScaleRGB 变量指定为上面定义的 RingColor

image.png

ScaleAlpha 设置成 FloatFromCurve, 设置 0 点值为 1 , 1 点值为 0。并将 CurveIndex 设置成 MultiplyFloat ,将 AgeSpawnRate 相乘(是 Age,不是 NormalizedAge, 设置成后者会出现扩散后暂停等待粒子死亡的问题)

image.png

增加 Scale Mesh Size 组件

image.png

按照下图对其进行配置

image.png

Render

Sprite Renderer 组件,添加 Mesh Renderer 组件:设置模型为系统的 PlaneExplicit Mat 设置为 前面创建的材质 的 材质实例

image.png

Create BluePrint Actor

给前面创建的 Emitter 创建一个 NiagaraSystem ,并将 System 添加进蓝图中,并创建下图所示 Function

94961b4703cc4697bd8cd97c3b093a74.png

并将此 Function 连接在构建脚本上,暴露出相应参数,然后就可以拖入场景尽情配置啦

image.png

image.png