发射器更新组

本文档介绍Niagara发射器中发射器更新模块的参考信息。

Windows
MacOS
Linux

发射器在CPU上tick时,发射器更新(Emitter Update) 模块便会出现。此组中的模块应计算此帧中粒子生成或更新的参数值。以从堆栈顶部到底部的顺序执行模块。

  • 光束

  • 新建参数

  • 发射器

  • 位置

  • MAX脚本

  • 可延展性

  • 设置特定参数

  • 生成

  • 工具

  • 向量域

以上各模块类型均有对应章节,并带有列出和描述该模块类型可用默认选项的表格。请注意:您可以创建Niagara发射器任意部分的自定义模块。此处列出的项仅为UE4中自动包含的模块。

光束模块

参数

说明

光束发射器设置(Beam Emitter Setup)

此模块提供光束的 起点终点切线 设置。

新建参数

将在列出的参数中选择 新建参数(Create New Parameter)。此设置会向发射器更新组添加 设置变量(Set Variable) 模块,从而能与常见模块图表外的Niagara参数交互。

参数

类型

说明

布尔(Bool)

基元

添加带true/false复选框的设置变量(Set Variable)模块。

碰撞查询(Collision Query)

结构体

向发射器堆栈添加碰撞数据接口。此参数常与碰撞模块配合使用。

留英(Curl Noise)

数据接口

向发射器堆栈添加留英数据接口。若将此参数与留英模块配合使用,此数据接口会将不同类型的噪点注入模拟。

颜色曲线(Curve for Colors)

数据接口

添加模拟的四通道颜色曲线数据接口。可通过动态输入或其他模块对此曲线进行采样,以创建随时间变化的颜色。

浮点曲线(Curve for Floats)

数据接口

添加模拟的单通道曲线数据接口。可通过动态输入或其他模块对此曲线进行采样,以创建随时间变化的浮点值。

向量2D曲线(Curve for Vector 2Ds)

数据接口

添加模拟的双通道曲线数据接口。可通过动态输入或其他模块对此曲线进行采样,以创建随时间变化的浮点值对。

向量3曲线(Curve for Vector 3s)

数据接口

添加模拟的三通道曲线数据接口。可通过动态输入或其他模块对此曲线进行采样,以创建随时间变化的浮点值集。

向量4曲线(Curve for Vector 4s)

数据接口

添加模拟的四通道曲线数据接口。可通过动态输入或其他模块对此曲线进行采样,以创建随时间变化的浮点值集。

ENiagaraBooleanLogicOps

列举

各模块和动态输入可使用此列举通过以下布尔逻辑来进行测试:

  • 大于

  • 大于或等于

  • 等于

  • 不等于

ENiagaraCoordinateSpace

列举

各模块和动态输入可使用此列举来区分坐标空间:

  • 模拟:若将发射器设为本地,则使用“本地”。否则使用“场景”。

  • 场景:在游戏的场景空间内。

  • 本地:在拥有组件的坐标空间内。

ENiagaraExecutionState

列举

此列举类型由管理系统或发射器执行状态的参数使用,例如 Emitter.ExecutionStateSystem.ExecutionState

ENiagaraExecutionStateSource

列举

表明执行状态设置的源。使用此参数,可延展性可更改状态,但只有在更高优先权的项目未定义此状态时才能更改。

ENiagara ExpansionMode

列举

位置模块可使用此列举来决定扩展起始点位置:

  • 内部

  • 居中

  • 外部

ENiagaraOrientationAxis

列举

多个模块可使用此列举来决定计算时使用的轴:

  • X轴

  • Y轴

  • Z轴

ENiagaraRandomnessMode

列举

此项将设置此发射器使用的随机数生成类型。以下为有效选项:

  • 模拟默认值

  • 确定性

  • 非确定性

浮点(Float)

基元

创建浮点值变量。

Int32

基元

创建整数变量。

线性颜色(Linear Color)

基元

创建RGBA颜色变量,显示为取色器。

矩阵(Matrix)

基元

创建4x4矩阵变量。

网格体三坐标(Mesh Tri Coordinate)

结构体

此项是内含三角指数的简单结构体,重心坐标位于三角形的面上。

Niagara ID

结构体

此项是用于追踪粒子的两部分结构体。该粒子间接表中的索引。利用此项可快速访问该粒子的数据。该粒子在现存粒子中固定具有唯一性,但消亡后会被再次使用。AcquireTag 是获取此ID时的唯一标签。粒子消亡且另一粒子重新使用消亡粒子索引时,利用该标签可对此类粒子进行区分。

四元(Quat)

基元

创建四元数变量,用于代表旋转。

骨架网格体(Skeletal Mesh)

数据接口

此项是数据接口,拥有与骨架网格体的骨骼/插槽和蒙皮几何体进行交互的函数。

生成信息(Spawn Info)

结构体

此项是生成所用的结构体,以指定要创建的粒子 数量、从当前帧开始时间到开始生成之间的 InterpStartDt 或偏移、定义粒子生成时间间隔的 IntervalDt,以及可将生成粒子归属于不同类别的 SpawnGroup

样条(Spline)

数据接口

此项是数据接口,拥有与场景中的USplineComponent进行交互的函数。

静态网格体(Static Mesh)

数据接口

此为数据接口,拥有与GPU上的纹理进行交互的函数。

纹理取样(Texture Sample)

数据接口

此项是数据接口,拥有与GPU上的纹理进行交互的函数。

向量(Vector)

基元

此项将创建三通道浮点值集。

向量2D(Vector 2D)

基元

此项将创建双通道浮点值集。

向量4(Vector 4)

基元

此项将创建四通道浮点值集。

向量域(Vector Field)

数据接口

此项是数据接口,拥有查询向量域的函数。

发射器生命周期模块

参数

说明

自动完成(Auto Complete)

启用此参数后,即可在发射器不活跃且无剩余粒子时自动完成发射器。

停用时完成(Complete On Inactive)

启用此参数后,即可在发射器不活跃时完成发射器。

仅延迟首次循环(Delay First Loop Only)

启用此参数后,将仅对首次发射器循环应用NextLoopDelay值。

各循环重新计算时长(Duration Recalc Each Loop)

启用此参数后,将重新计算每次发射器循环的NextLoopDuration值。

最大循环数(Max Loop Count)

此参数取整数值,0表示持续效果(无循环),大于0的值表示发射器完成前效果动画的循环次数。

下一循环延迟(Next Loop Delay)

此值表示发射器下个循环开始前的延迟。

下一循环时长(Next Loop Duration)

此值表示发射器循环的持续时间。

位置模块

参数

说明

在网格中生成粒子(Spawn Particles in Grid)

基于用户定义的网格分辨率设置来生成粒子。

MAX脚本模块

参数

说明

生成MS顶点动画工具变形目标(Spawn MS Vertex Animation Tools Morph Target)

生成使用顶点动画工具创建的变换目标纹理,并对其进行采样。顶点动画工具将生成代表变换目标混合形状的纹理。此模块为由工具采集的每个顶点生成一个粒子。此模块应与 更新MS顶点动画工具变形目标(Update MS Vertex Animation Tools Morph Target) 模块同时使用。

更新MS顶点动画工具变形目标(Update MS Vertex Animation Tools Morph Target)

获取 生成MS顶点动画工具变形目标(Spawn MS Vertex Animation Tools Morph Target) 模块生成的粒子,并放置于选定的位置。

可延展性模块

参数

说明

Emitter Scalability

此模块负责管理发射器的数个可延展性参数。

设置特定参数

在列出参数中选择 设置特定参数(Set Specific Parameter)。此操作会向发射器更新组添加 设置变量(Set Variable) 模块。

可在其他模块中设置或修改部分参数。而部分参数仅可使用设置变量(Set Variable)模块进行设置。

参数

说明

Emitter.Age

此参数定义此发射器的年龄。

Emitter.CurrentLoopDelay

此参数定义发射器当前循环重复之前的当前延迟量。

Emitter.CurrentLoopDuration

此参数定义当前发射器循环的时长。

Emitter.ExecutionState

此参数将影响发射器状态。有效值选择包括:

  • Active

  • Inactive

  • InactiveClear

  • Complete

Emitter.ExecutionStateSource

此变量链接到ENiagaraExecutionStateSource参数,指出执行状态设置的源。使用此参数,可延展性可更改状态,但只有在更高优先权的项目未定义此状态时才能更改。

Emitter.LocalSpace

此参数将定义粒子位置对应场景原点或拥有Niagara组件的位置。

  • False:粒子位置位于场景空间中,并相对于场景原点。位置为 0,0,0 的粒子将在场景原点处渲染。

  • True:粒子位置位于本地空间中,并相对于拥有Niagara组件的位置。位置为 0,0,0 的粒子将在拥有Niagara组件位置处渲染。

Emitter.LoopCount

此参数定义发射器循环的重复次数。

Emitter.LoopedAge

此参数计算相对于发射器当前循环的发射器年龄。举例而言,若发射器已激活8秒且每5秒循环一次,则发射器的LoopedAge将为 3秒。发射器每次循环时,LoopedAge返回0。

Emitter.NormalizedLoopAge

此参数计算相对于发射器当前循环的发射器年龄,标准化为 01。将NormalizedLoopAge表达为 LoopedAge 除以 CurrentLoopDuration。若发射器已激活8秒且每5秒循环一次,则发射器的LoopedAge将为 3。发射器的NormalizedLoopAge将为 0.6

System.ExecutionState

此变量链接到ENiagaraExecutionState参数,此参数将影响系统状态。可选的有效值包括 ActiveInactiveInactiveClearCompleteDisabledNum

System.ExecutionStateSource

此变量链接到ENiagaraExecutionStateSource参数,指出系统执行状态设置的源。使用此参数,可延展性可更改状态,但只有在更高优先权的项目未定义此状态时才能更改。

生成模块

参数

说明

生成瞬时喷发(Spawn Burst Instantaneous)

此模块将自发地生成粒子喷发。

逐帧生成(Spawn Per Frame)

此模块将在各帧中生成粒子喷发。

逐单位生成(Spawn Per Unit)

此模块基于行程距离(以虚幻单位计)生成粒子。

生成率(Spawn Rate)

此模块以特定速率持续生成粒子。

工具模块

参数

说明

发射器帧计数器(Emitter Frame Counter)

在此模块中启用增量计数器,可设置发射器动画中每帧增量的计数器。

向量域模块

参数

说明

构造向量域的边界框(Construct Bounding Box for Vector Field)

变换边界框边缘网格体的12个实例,使其组成代表某向量域边界框的立方体。此参数也可应用局部平移、旋转和缩放变换。

分配向量域的箭头(Distribute Arrows for Vector Field)

基于向量域在网格中分配点。此参数也可应用局部平移、旋转和缩放变换。

获取向量域属性(Get Vector Field Properties)

从向量域对象中提取相关属性,并计算其他有用属性。此参数也可应用局部平移、旋转和缩放变换。

采样向量域(Sample Vector Field)

对矢量场进行采样,应用逐粒子强度因子和可选衰减因子,该衰减因子将消退向量域对边界框边缘的影响。此参数也可应用局部平移、旋转和缩放变换。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback