PS:如果添加模块没有反应,尝试关闭右边√,然后重新开启,进行预览

将全方位讲解各个阶段给出的官方默认Module、设置、和效果

Generated
  • Emitter Setting
  • Emitter Spawn
  • Emitter Update
  • Particle Spawn
  • Particle Update
  • Event Handle
  • AddEvent Handle
  • Render

Emitter Setting主要是对发射器的基本状态进行设置,并且无法动态进行更新。例如Space的选择,随机数设置,ID和迭代器的设置。

Emitter Spawn主要在Emitter被创建的时候调用一次主要是初始化默认值或执行初始设置。可以创建参数和赋值Emitter的数值。生成向量域和Vertex Animation Tools。

Emitter Update 主要是控制粒子的生命周期、数量。

Particle Spawn每一个粒子生成只会调用一次。主要设置粒子的初始状态

Particle Update 在每个粒子没有销毁之前,每帧都会调用。主要更新粒子在运动过程中的变换



Emitter Setting

Generated

localSpace:是否是在局部空间,不选择是在全局空间。这里和我们Cascade概念是一样的。如果粒子在世界场景中移动,如果是局部空间,已经发出的粒子会跟着移动,如果是全局空间,发出的粒子不会跟着发射器的移动而移动。下图中,在移动的过程中,左图是选择了局部空间,右图没有。

Generated
Generated
  • Determinism:设置随机数生成的全局确定性或非确定性。
  • Random Seed:随机数的种子。
  • Sim Target:决定模拟在CPU或GPU上执行。
  • Fixed Bounds:决定是否可编辑固定边界。若启用,则拥有可调整的X、Y、Z设置的最小值和最大值。
  • Interpolated Spawning:若启用此设置,此发射器将利用内插参数值生成,且生成时会执行部分更新。这种生成方法将大幅增加开销,但高生成率、帧率不稳定、高移动速度的发射器生成时将更加顺畅。
  • Requires Persistent:若启用,将向发射的所有粒子指定固定ID
  • Max Delta Time Per Tick:限制刷新时间
  • Max Update Iterations:最大的迭代器的数量
  • Spawn Stages:得到将要被启动的Cs的迭代器的最大数量
  • Bake Out Rapid Iteration:可启用或禁用将快速迭代参数烘焙到正常编译中
Generated
  • Minimum Detail Level:若虚幻引擎当前细节等级低于此值,则禁用此发射器。
  • Maximum Detail Leve:若虚幻引擎当前细节等级高于此值,则禁用此发射器。
Generated
  • Is Template Asset:若启用此设置,则将此发射器识别为模板资源。
  • Template Asset Description:若将此发射器识别为模板资源,可点击下拉箭头查找内联文本和参考文本的其他设置。

Emitter Spawn

  • 新建参数
  • 设置特定参数
    • Emitter.Age:此参数定义此发射器的age。
    • Emitter.CurrentLoopDelay:定义发射器当前循环重复之前的当前延迟量
    • Emitter.CurrentLoopDuration:定义当前发射器循环的时长
    • Emitter.ExecutionState:影响发射器状态。有效值选择包括
      • Active
      • Inactive
      • InactiveClear
      • Complete
    • Emitter.ExecutionStateSource:此参数将指出执行状态设置的源。使用此参数,可延展性可更改状态,但只有在更高优先权的项目未定义此状态时才能更改。
    • Emitter.LocalSpace:此参数将定义粒子位置对应场景原点或拥有Niagara组件的位置。
    • Emitter.LoopCount:此参数定义发射器循环的重复次数,如果是0的话将无限执行
    • Emitter.LoopedAge:例如,若发射器已激活8秒且每5秒循环一次,则发射器的LoopedAge将为 3秒。发射器每次循环时,LoopedAge返回0。
    • Emitter.NormalizedLoopAge:此参数计算相对于发射器当前循环的发射器年龄,标准化为 0 到 1。将NormalizedLoopAge表达为 LoopedAge 除以 CurrentLoopDuration。若发射器已激活8秒且每5秒循环一次,则发射器的LoopedAge将为 3。发射器的NormalizedLoopAge将为 0.6。
    • System.ExecutionState:此参数将影响系统状态。可选的有效值包括 Active、Inactive、InactiveClear、Complete、Disabled 和 Num。
    • System.ExecutionStateSource:此参数将指出系统执行状态设置的源。使用此参数,可延展性可更改状态,但只有在更高优先权的项目未定义此状态时才能更改
  • 位置
    • Spawn Particles in Grid:基于用户定义的网格分辨率设置来生成粒子。
  • MAXScripts
    • Spawn MS Vertex Animation Tools Morph Target:生成使用顶点动画工具创建的变换目标纹理,并对其进行采样。顶点动画工具将生成代表变换目标混合形状的纹理。此模块为由工具采集的每个顶点生成一个粒子。此模块应与 更新MS顶点动画工具变形目标(Update MS Vertex Animation Tools Morph Target) 模块同时使用。
  • Update MS Vertex Animation Tools Morph Target:获取 生成MS顶点动画工具变形目标(Spawn MS Vertex Animation Tools Morph Target) 模块生成的粒子,并放置于选定的位置。
  • 向量域
    • Construct Bounding Box for Vector Field构造向量域的边界框,变换边界框边缘网格体的12个实例,使其组成代表某向量域边界框的立方体。此参数也可应用局部平移、旋转和缩放变换。
    • Distribute Arrows for Vector Field基于向量域在网格中分配点。此参数也可应用局部平移、旋转和缩放变换。
    • Get Vector Field Properties从向量域对象中提取相关属性,并计算其他有用属性。此参数也可应用局部平移、旋转和缩放变换。
    • Sample Vector Field对矢量场进行采样,应用逐粒子强度因子和可选衰减因子,该衰减因子将消退向量域对边界框边缘的影响。此参数也可应用局部平移、旋转和缩放变换。

Emitter Update

  • 每次tick都会调用,主要是更新数值
  • Emitter Life Cycle:管理粒子
  • Spawn Rate:此模块以特定速率持续生成粒子。
  • Spawn per unit:此模块基于行程距离(以虚幻单位计)生成粒子
  • Spawn per Frame:此模块将在各帧中生成粒子喷发。
  • Spawn Burst Instantaneous:此模块将自发地生成粒子喷发。
  • Shpere plane Intersection System
  • Emitter Scalability:此模块负责管理发射器的数个可延展性参数。
  • Spawn MS Vertex Animation tools Morph Target Particles
  • Spawn Particles in Grid:基于用户定义的网格分辨率设置来生成粒子
  • Beam Emitter setup:此模块提供光束的 起点终点切线 设置。
  • Emitter Frame Counter:在此模块中启用增量计数器,可设置发射器动画中每帧增量的计数器。

Particle Spawn

粒子模块下,Particle Spawn 和Particle Update中会有很多重复的内容,而update中则会有其独有的一些模块,这也非常好理解,在每帧更新时会有一些与数据收集相关的module。

在所有的模块中,初始化模块在堆栈中应当排在第一位(当然这不是必须的)。

*

Initialize Particle 初始化模块 该模块包含数个常用粒子参数,可按需启用或禁用。包含 点属性(Point Attributes)(例如 生命周期位置质量颜色)、Sprite属性(Sprite Attributes)(例如 Sprite大小Sprite旋转)和 网格体属性(Mesh Attributes)(例如 网格体缩放)。在粒子生成组中,该模块应位于堆栈顶部。 基本上可以无脑放在第一个,不用管渲染模式
Initialize Ribbon   初始化模块   该模块包含条带的数个常见参数。其与初始化粒子模块一样具有 点属性,但额外有 条带属性(Ribbon Attributes),例如 条带宽度条带扭转。在粒子生成组中,该模块应位于堆栈顶部。 如果式Ribbon 和beam 是可以放的
  • UE4 Niagara 网格体模块
  • UE4 Niagara 工具与数学模块
  • UE4 Niagara 向量域模块
  • UE4 Niagara 速度与约束模块
  • UE4 Niagara 位置与朝向模块
  • UE4 Niagara力学与物理模块

其他的一些模块:

*

  模块 描述  
Beam Width Beam模块         该模块控制生成光束的宽度,并将该宽度写入 Particles.RibbonWidth 参数。要改变沿光束长度的宽度,使用索引到 Particles.RibbonLinkOrder 中的曲线,默认生成光束模块中提供该曲线。 配置Beam 的宽度
Spawn Beam     该模块沿贝塞尔样条或直接沿两点间的直线放置粒子。该参数对面向光束式路径的sprite有用,或与经典式光束的条带渲染器一起使用。生成光束会创建不会重新计算每帧起点和终点的静态光束。 如果要放置Beam不可缺少的模块
Camera Offset 相机模块 该模块在粒子与摄像机之间沿向量偏移粒子。 相机空间偏移,想不出用途
Color 颜色模块 该模块直接设置 Particles.Color 参数,并提供Float3颜色和标量透明度组件的比例因子。 设置color
Calculate Mass and Rotational Inertia by Volume 质量模块       该参数根据粒子的边界和密度值计算质量和旋转惯性。密度单位为千克/立方米。   太高端,用不上
Calculate Size and Rotational Inertia by Mass   根据用户驱动质量和密度值计算粒子的缩放和旋转惯性。密度单位为千克/立方米。   太高端,用不上

Particle Update

几乎所有的Particle spawn拥有的module,Particle Upadate都是有的,并且还有一些是独有的,我们将只列出Particle Update独有的信息。

  • UE4 Niagara 碰撞模块

Kill Particles in Volume   kill模块 若粒子位于分析形状中,则该模块将杀死粒子。该形状可为盒体、平面、平板(两个朝内的平面)或者球体。结果也可反转。使用该模块时必须启用内插生成,否则生成粒子将在一帧中出现,然后死亡 如果粒子进入一个容器,立即杀死他
Particle State 生命周期模块   当粒子的生命周期结束时,该模块负责杀死模拟中的粒子。 Update age,基本都需要
Update Velocity on Mass Change   该模块根据质量差量改变粒子的角速度和线性速度。换言之,若粒子质量增加,粒子将减速;若粒子质量减小,粒子则加速。 模拟星球
Update Mesh Reproduction Sprite     该模块与初始化网格体复制Sprite模块一起使用。要在Niagara关卡的内容范例中重新创建该效果,请执行以下步骤: 将 初始化网格体复制Sprite(Initialize Mesh Reproduction Sprite) 模块放置在 粒子生成(Particle Spawn) 组中。 将 更新网格体复制Sprite(Update Mesh Reproduction Sprite) 模块放置到 粒子更新(Particle Update) 组中。 在Sprite渲染器中,将 对齐(Alignment) 设为 自定义对齐(Custom Alignment);将 朝向模式(Facing Mode) 设为 自定义朝向向量(Custom Facing Vector);将 自定义朝向向量遮罩(Custom Facing Vector Mask) 设为 1,1,1。 在材质中,使用 Niagara网格体复制Sprite UV 对网格体的UV进行采样。 若 Module.OverwriteIntrinsicVariables 设为 False,确保该模块的输出变量驱动粒子的属性(例如位置、对齐等)。   pass
Mesh Size Scale Size 该模块获取粒子生成组中设置的初始网格体大小缩放,并根据用户设置因子增大缩放。   太简单
Sprite Size Scale   该模块获取粒子生成组中设置的初始sprite大小缩放,并根据用户设置因子增大缩放。  
Sprite Size Scale by Speed   该模块根据粒子速度的量级缩放 Particles.SpriteSize 参数。  
SubUVAnimation     部分sprite在网格中创建,每个sprite各代表一个动画帧。该模块接收待设置动画的sprite总数,并沿曲线标出此类sprite,以便平滑设置动画。 播动画

事件Module

*

Generate Collision Event 事件模块 该模块在发射器中生成碰撞事件。另一发射器中的事件处理器稍后可使用此模块,以在系统中产生操作。  
Generate Death Event 事件模块 该模块在发射器中生成死亡事件。另一发射器中的事件处理器稍后可使用此模块,以在系统中产生操作。  
Generate Location Event 事件模块 该模块在发射器中生成位置事件。另一发射器中的事件处理器稍后可使用此模块,以在系统中产生操作。  

其他的粒子可以通过Event Handle来接受事件,这里是非常重要的我们粒子之间触发和链接的途径。必须改期id

Render

https://docs.unrealengine.com/zh-CN/Engine/Niagara/EmitterReference/RenderModules/index.html