目录
Niagara是按照从上到下按顺序,依次执行模块Module(可编程代码块),模块会被放置在对应组(Group)内,以描述此模块何时执行;首先,System组内模块执行,其行为可被所有Emitter共享;随后, Emitter组内的modules和items执行;随后,Particle组内modules执行;最后,Render组items执行,描述如何渲染粒子;
modules是一种items,但items不是modules;modules是用户能创建的可编辑资产,items还包括用户无法创建的系统和发射器部分,如system properties、emitter properties、及renderers;
Execution State
- Active,系统或发射器既可simulates也可spawning;
- Inactive,系统或发射器可simulates但不可new spawning;
- InactiveClear,系统或发射器删除所有粒子,然后切换为Inactive状态;
- Complete,系统或发射器既不simulates也不render;
一,系统节点
System Spawn
此组仅在系统创建时计算一次,该组内模块设置系统初始值;
System Update
此组会在系统每帧调用一次,该组内模块每帧更新数值;
二,发射器节点
定义粒子整个的生成逻辑,将粒子的整个生命周期划分为不同的组,在不同的生命周期执行对应的组;
Properties
所有创建的发射器(即使为空)均默认含有 发射器属性 项;
- Local Space,局部空间;粒子是否以自身为参考,不勾选为世界空间;
- Determinism,确定性;随机值根据随机种子生成,种子不变每次生成的效果一致,不同种子值会产生不同的随机效果;
如模块参数中修改了随机模式,以模块参数设置为准;
- Interpolated Spawning,对高生成率,不稳定的帧率和快速移动的发射器,会产生平滑的生成,但会显著影响性能;
- Sim Target
- CPU性能没有GPU好,但基本支持所有模块;
- GPU会有不适用的场景,如光线渲染器、事件处理器;边界不可为动态的;
- Fixed Bounds,固定边界,如相机内边界不可见则剔除;
- 如系统属性内开启了Fixed Bounds,则此参数不可用;
- Requires Presistent IDs,要求持久ID,生成不会帧变化的ID,以便外部追踪;
Emitter Summary
发射器摘要,便于指定参数的访问;可修改显示名称,提示文字,添加分类;
Emitter Spawn
此组仅在发射器创建时计算一次,该组内模块将初始化默认值或执行初始设置;
Emitter Update
此组会在发射器每帧计算一次,该组内模块计算每帧粒子生成或更新的参数值;
Life Cycle 生命循环
- Life Cycle Mode,选择使用系统设置还是自身设置;
- Inactive Response,控制粒子从激活状态到非激活状态后的行为,如关卡序列中的粒子状态;
- Complete 等待粒子完成之后杀死;
- Kill 立即杀死;
- Continue 发射器停用,杀死时交由系统控制,基本上和Kill一致;
- Loop Behavior,循环行为;
- Infinite 无限循环,不会进入inactive状态;
- Once 执行一次后进入inactive状态,有两种循环持续时间模式Fixed、Infinite;
- Multiple 执行多次后进入inactive状态;
- Recalculate Duration Each Loop,每次循环重新计算时间;
Scalability 扩展
Enable Distance Culling,距离剔除,超出指定距离后执行剔除;
Enable Visibility Culling,可见剔除,在摄像机中不可见时执行剔除;
Reset Age On Awaken,唤醒后重置粒子存活时间;
发射器更新阶段,最重要的是发射粒子;
Spawn Rate,以指定发射率持续生成粒子;
有高级参数SpawnGroup,可配合Shape Location模块使用;
注,生成模块都有SpawnGroup参数;
Spawn Burst Instantaneous,瞬间爆发粒子;
Spawn Time不要超过Loop Duration,超过将不会触发;
Spawn Particles from other Emitter
Sample Particles from Other Emitter
Spawn Per Frame,每帧生成粒子(测试试验模块);
Spawn Per Unit,基于移动的距离生成粒子(单位cm);
Particle Spawn
此组仅在粒子生成时计算一次,该组内模块将设置每粒子的初始值;如勾选Properties/Interpolated Spawning ,此组一些生成模块会更新,而不是在Particle Update更新;
Color Channel Mode
- Link RGBA 将RGBA整体作为一个值范围,进行随机取值;
- Link RGB / Link A 将RGB通道和A通道拆分成两个值范围,分别进行随机取值;
- Random Individual Channels 将所有通道拆分成4个值范围,分别取值,然后重组;
Position Mode
Simulation Position,发射器世界位置或局部原点位置;
Mass Mode
配合Calculate Size and Rotational Inertia by Mass使用;
注,其他速度模块
- Inherit Velocity 继承发射源的速度;
- Add Rotational Velocity 添加旋转速度;
Particle Update
此组在粒子每帧都计算一次,该组内模块将每帧更新值;
Acceleration Force,加速度力;
Aerodynamic Drag,空气阻力,对纸和树等薄物体叶很有用;
Curl Noise Force,卷曲噪波力;
Drag,直接应用阻力;
Gravity Force,重力;
Renderer
此组描述怎么渲染Niagara粒子;与其他组不同,渲染器位置不一定与绘制顺序相关;
Component Renderer 可生成任何类型的组件,并使用粒子模拟中的数据更新其属性;
- 绑定会在粒子模拟完成后的每一个更新函数结束时进行评估和更新,所以组件渲染器的运行开销会很大,要谨慎使用;
Decal Renderer 生成贴花并将其投影到表面上;