Emitter Update Group

This document provides reference information for Emitter Update modules in a Niagara emitter.

Windows
MacOS
Linux

Emitter Update modules occur every time the Emitter ticks on the CPU. Modules in this group should compute values for Particle Spawn or Update parameters in this frame. Modules are executed in order from the top to the bottom of the stack.

  • Beam

  • Create New Parameter

  • Emitter

  • Location

  • MAX Scripts

  • Scalability

  • Set Specific Parameters

  • Spawning

  • Utility

  • Vector Field

Each of these module types has its own section, with tables that list and describe the default options available for that type of module. Keep in mind, you can create custom modules for any part of the Niagara Emitter. The ones listed here are just the ones that are automatically included with UE4.

Beam Module

Parameter

Description

Beam Emitter Setup

This module provides settings for the starting points, end points, and tangents for your beam.

Create New Parameter

When you select Create New Parameter, you select from the parameters listed. This adds a Set Variable module to the Emitter Update group, which allows you to interact with Niagara parameters outside of the usual module graph.

Parameter

Type

Description

Bool

Primitive

This adds a Set Variable module that has a true/false checkbox.

Collision Query

Struct

This adds a collision data interface to the emitter stack. This is usually used in conjunction with collision modules.

Curl Noise

Data Interface

This adds a curl noise data interface to the emitter stack. If you use this in conjunction with curl noise modules, this data interface injects different types of noise into your simulation.

Curve for Colors

Data Interface

This adds a four-channel color curve data interface for the simulation. This curve can be sampled by dynamic inputs or other modules to create a time-varying color.

Curve for Floats

Data Interface

This adds a single-channel curve data interface for the simulation. This curve can be sampled by dynamic inputs or other modules to create a time-varying float value.

Curve for Vector 2Ds

Data Interface

This adds a two-channel curve data interface for the simulation. This curve can be sampled by dynamic inputs or other modules to create a time-varying pair of floats.

Curve for Vector 3s

Data Interface

This adds a three-channel curve data interface for the simulation. This curve can be sampled by dynamic inputs or other modules to create a time-varying set of floats.

Curve for Vector 4s

Data Interface

This adds a four-channel curve data interface for the simulation. This curve can be sampled by dynamic inputs or other modules to create a time-varying set of floats.

ENiagaraBooleanLogicOps

Enum

This is an enumeration used by various modules and dynamic inputs that want to test using boolean logic:

  • Greater Than

  • Greater Than Or Equal To

  • Equal To

  • Not Equal To

ENiagaraCoordinateSpace

Enum

This is an enumeration used by various modules and dynamic inputs to distinguish between coordinate spaces:

  • Simulation: If the emitter is set to local, use local. Otherwise, use World.

  • World: In the world space of the game.

  • Local: In the coordinate space of the owning component.

ENiagaraExecutionState

Enum

This enumeration type is used by parameters that manage system or emitter execution states, such as Emitter.ExecutionState or System.ExecutionState.

ENiagaraExecutionStateSource

Enum

This indicates the source of an execution state setting. It is used to allow scalability to change the state, but only if the state has not been defined by something with higher precedence.

ENiagara ExpansionMode

Enum

This enumeration is used by location modules to determine where the origin point of expansion is:

  • Inside

  • Centered

  • Outside

ENiagaraOrientationAxis

Enum

This is an enumeration used by several modules to determine which axis to do calculations with:

  • X Axis

  • Y Axis

  • Z Axis

ENiagaraRandomnessMode

Enum

This sets the type of random number generation used by this emitter. Valid choices are:

  • Simulation Defaults

  • Deterministic

  • Non-Deterministic

Float

Primitive

This creates a float value variable.

Int32

Primitive

This creates an integer variable.

Linear Color

Primitive

This creates an RGBA color variable, represented as a color picker.

Matrix

Primitive

This creates a 4x4 matrix variable.

Mesh Tri Coordinate

Struct

This is a simple struct containing a triangle index along with a barycentric coordinate on the face of that triangle.

Niagara ID

Struct

This is a two-part struct used to track particles. Index in the indirection table for this particle. It allows fast access to this particle's data. It is always unique among currently living particles, but will be reused after the particle dies. AcquireTag is a unique tag for when this ID was acquired. It allows us to differentiate between particles when one dies and another particle reuses the dead particle's Index.

Quat

Primitive

This creates a quaternion variable, used to represent rotations.

Skeletal Mesh

Data Interface

This is a data interface with functions to interact with a skeletal mesh's bones/sockets and skinned geometry.

Spawn Info

Struct

This is a structure used in spawning to specify the Count of particles to create, InterpStartDt or offset from the current frame begin time to start spawning, IntervalDt defining the time gap between particles being spawned, and SpawnGroup allowing spawned particles to belong to different categories.

Spline

Data Interface

This is a data interface with functions to interact with a USplineComponent in the scene.

Static Mesh

Data Interface

This is a data interface with functions to interact with a texture on the GPU.

Texture Sample

Data Interface

This is a DataInterface with functions to interact with a texture on the GPU.

Vector

Primitive

This creates a three-channel set of floats.

Vector 2D

Primitive

This creates a two-channel set of floats.

Vector 4

Primitive

This creates a four-channel set of floats.

Vector Field

Data Interface

This is a DataInterface with functions to query a vector field.

Emitter Life Cycle Module

Parameter

Description

Auto Complete

Enable this to automatically complete the emitter if it is inactive and has no remaining particles.

Complete On Inactive

Enable this to complete the emitter when it becomes inactive.

Delay First Loop Only

Enabling this will apply the NextLoopDelay value only for the first emitter loop.

Duration Recalc Each Loop

Enabling this will recalculate the NextLoopDuration value for each emitter loop.

Max Loop Count

This takes an integer value, where 0 represents a continuous effect (no loop) and any number above 0 indicates how many times the effect animation will loop before the emitter completes.

Next Loop Delay

This value indicates a delay in when the emitter's next loop begins.

Next Loop Duration

This value indicates how long the emitter's loop lasts.

Location Module

Parameter

Description

Spawn Particles in Grid

This spawns particles based on user-defined grid resolution settings.

MAX Scripts Module

Parameter

Description

Spawn MS Vertex Animation Tools Morph Target

This spawns and samples Morph Target textures that were created with the Vertex Animation Tool. The Vertex Animation Tool generates textures that represent Morph Target blend shapes. This module spawns one particle for every vertex that was captured by the tool. This module is meant to be used with the Update MS Vertex Animation Tools Morph Target module.

Update MS Vertex Animation Tools Morph Target

This takes the particles spawned by the Spawn MS Vertex Animation Tools Morph Target module, and places them at a location you choose.

Scalability Module

Parameter

Description

Emitter Scalability

This module manages several scalability parameters for the emitter.

Set Specific Parameters

When you select Set Specific Parameter, you select from the parameters listed. This adds a Set Variable module to the Emitter Update group.

Some of these parameters can be set or modified in other modules. Others are only set using a Set Variable module.

Parameter

Description

Emitter.Age

This parameter defines the age of this emitter.

Emitter.CurrentLoopDelay

This parameter defines the current amount of delay before the emitter's current loop repeats.

Emitter.CurrentLoopDuration

This parameter defines the duration of the current emitter loop.

Emitter.ExecutionState

This affects the state of the emitter. Valid value choices are:

  • Active

  • Inactive

  • InactiveClear

  • Complete

Emitter.ExecutionStateSource

This variable is linked to the ENiagaraExecutionStateSource parameter, which indicates the source of an execution state setting. It is used to allow scalability to change the state, but only if the state has not been defined by something with higher precedence.

Emitter.LocalSpace

This parameter defines whether the position of particles is respective to the world origin or the owning Niagara Component's location.

  • False: Particle position is in WorldSpace and will be relative to the World origin. A particle with position 0,0,0 will render at the World origin.

  • True: Particle position is in LocalSpace and will be relative to the owning Niagara Component's location. A particle with position 0,0,0 will render at the owning Niagara Component's location.

Emitter.LoopCount

This parameter defines how many times the emitter's loop repeats.

Emitter.LoopedAge

This parameter calculates the age of the Emitter relative to its current loop. For example, if an Emitter has been active for 8 seconds and it loops every 5 seconds, the Emitter's LoopedAge will be 3 seconds. LoopedAge returns to 0 every time an Emitter loops.

Emitter.NormalizedLoopAge

This parameter calculates the age of the Emitter relative to its current loop, normalized from 0 to 1. NormalizedLoopAge is expressed as LoopedAge divided by CurrentLoopDuration. If an Emitter has been active for 8 seconds and it loops every 5 seconds, the Emitter's LoopedAge will be 3. The Emitter's NormalizedLoopAge will be 0.6.

System.ExecutionState

This variable is linked to the ENiagaraExecutionState parameter, which affects the state of the system. Valid value choices are Active, Inactive, InactiveClear, Complete, Disabled, and Num.

System.ExecutionStateSource

This variable is linked to the ENiagaraExecutionStateSource parameter, which indicates the source of a system's execution state setting. It is used to allow scalability to change the state, but only if the state has not been defined by something with higher precedence.

Spawning Modules

Parameter

Description

Spawn Burst Instantaneous

This module spawns a burst of particles spontaneously.

Spawn Per Frame

This module spawns a burst of particles in each frame.

Spawn Per Unit

This module spawns particles based on distance traveled in Unreal units.

Spawn Rate

This module spawns particles continuously at a particular rate.

Utility Module

Parameter

Description

Emitter Frame Counter

Enabling Increment Counter in this module sets up a counter which increments with each frame in the emitter's animation.

Vector Field Modules

Parameter

Description

Construct Bounding Box for Vector Field

Transforms twelve instances of the Bounding Box Edge Mesh in such a way that they form a cube representing the bounding box of some vector field. Optionally, this applies a local translation, rotation and scale transformation.

Distribute Arrows for Vector Field

Distributes points in a grid based on a vector field. Optionally, this applies a local translation, rotation and scale transformation.

Get Vector Field Properties

Extracts relevant properties from a vector field object, and calculates some additional useful properties. Optionally, this applies a local translation, rotation and scale transformation.

Sample Vector Field

Samples a vector field, applying a per-particle intensity factor and an optional falloff factor that fades the influence of the vector field towards the edges of the bounding box. Optionally, this applies a local translation, rotation and scale transformation.

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