Particle Spawn Group

This page provides reference information for modules in the Particle Spawn group.

Windows
MacOS
Linux

Particle Spawn modules occur once per created particle. Modules in this section set up initial values for each particle. If Use Interpolated Spawning is set, the Particle Update modules run after the Particle Spawn modules. Modules are executed in order from the top to the bottom of the stack.

Each of these module types has its own section, with tables describe how that module functions. Keep in mind, you can create custom modules for any part of a Niagara system or emitter. The ones listed here are just the ones that are automatically included with Unreal Engine.

  • Beam

  • Blend

  • Collision

  • Color

  • Constraints

  • Create New Parameter

  • Curl Noise

  • Debug

  • Events

  • Experimental

  • Forces

  • Kill

  • Lifetime

  • Location

  • Masks

  • Mass

  • Material

  • Math

  • MAX Scripts

  • Mesh

  • Mesh Reproduction

  • Orientation

  • Position

  • Post Solve

  • Ribbons

  • Set Specific Parameters

  • Size

  • Splines

  • State Machines

  • Texture

  • Trace

  • Uncategorized Modules

  • Utility

  • Vector Field

  • Velocity

Beam Modules

Parameter

Description

Beam Width

This module controls the width of the spawned beam and writes that width to the Particles.RibbonWidth parameter. To vary the width along the length of the beam, use a curve indexed into the Particles.RibbonLinkOrder as provided from the default spawn beam module.

Spawn Beam

This module places particles along a bezier spline, or simply along a line between two points. This is useful for sprite facing along a beam-style path, or for using with the ribbon renderer for a classic-style beam. Spawn Beam creates a static beam that does not recalculate the start and endpoints each frame.

Camera Modules

Parameter

Description

Camera Offset

This module offsets the particle along the vector between the particle and the camera.

Color Modules

Parameter

Description

Color

This module directly sets the Particles.Color parameter, with scale factors for the Float3 Color and Scalar Alpha components.

Constraints Modules

Parameter

Description

Constrain to Plane

This experimental module aligns sprites to the surface of an analytical plane.

Create New Parameter

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

Parameter

Type

Description

Bool

Primitive

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

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.

ENiagaraExpansionMode

Enum

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

  • Inside

  • Centered

  • Outside

**ENiagaraLegacyTrailMode

Enum

This enum controls the way that the width scale property affects animation trails. This is only used for Legacy Anim Trail support when converting from Cascade to Niagara.

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.

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.

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.

Forces Modules

Parameter

Description

Acceleration Force

Adds to the Physics.Force parameter, which will translate into acceleration within the solver.

Curl Noise Force

Adds to the Physics.Force parameter using a curl noise field. Samples a medium resolution baked tiling curl noise field by default, but can optionally sample a perlin derived curl function directly at increased cost.

Drag

Applies Drag directly to particle velocity and/or rotational velocity, irrespective of mass. Accumulates into Physics.Drag and Physics.RotationalDrag which are solved in the Solve Forces and Velocity and Solve Rotational Forces and Velocity modules.

Gravity Force

Applies a gravitational force (in cm/s) to the Physics.Force parameter.

Limit Force

Scales the Physics.Force parameter down to the magnitude specified, if it exceeds the Force Limit.

Line Attraction Force

Accumulates a pull toward the closest position on a line segment, and adds it to the Physics.Force parameter.

Linear Force

Adds a force vector (in cm/s) to the Physics.Force parameter in a specific coordinate space.

Mesh Rotation Force

Adds a rotational force as described by the newtons applied on the yaw, pitch and roll axes, and accumulates that value to the Physics.RotationalForce parameter.

Point Attraction Force

Accumulates a pull toward AttractorPosition into the Physics.Force parameter.

Point Force

Adds force from an arbitrary point in space with optional falloff. Uses the vector between the velocity origin and the Particles.Position parameter in order to determine the force vector. If positions have not been initialized (that is, the particle position and velocity origin are on top of each other), the module will inject random velocity. You should place this module after any location modules in the stack, in order to make sure that the particle positions have already been initialized.

Vector Noise Force

This introduces random noise into the Physics.Force parameter.

Vortex Force

Take a velocity around a vortex axis (with an optional additional pull towards the vortex origin) and inject it into the Physics.Force parameter.

Wind Force

Applies a wind force to particles, with an optional air resistance parameter. If the particle is moving faster than the wind speed in the direction of the wind, no additional force is applied.

Initialization Modules

Parameter

Description

Initialize Particle

This module contains several common particle parameters, which you can enable or disable as needed. There are Point Attributes such as Lifetime, Position, Mass and Color; Sprite Attributes such as Sprite Size and Sprite Rotation; and Mesh Attributes such as Mesh Scale. This module should be at the top of the stack in the Particle Spawn group.

Initialize Ribbon

This module contains several common parameters for ribbons. It has the same Point Attributes as the Initialize Particles module, and additionally has Ribbon Attributes such as Ribbon Width and Ribbon Twist. This module should be at the top of the stack in the Particle Spawn group.

Location Modules

Parameter

Description

Box Location

This spawns particles in a rectangular box shape.

Cone Location

This spawns particles in a cone shape.

Cylinder Location

This spawns particles in a cylinder shape, with lathe-style controls to modify the profile of the cylinder.

Grid Location

This spawns particles in an even distribution on a grid.

Jitter Position

This jitters a spawned particle in a random direction, on a delay timer.

Rotate Around Point

This module will find a position on a forward vector-aligned circle around a user-defined center point. The radius and position along the circle can be modified over time.

Skeletal Mesh Skeleton Location

This spawns particles from the skeleton (bones or sockets) of a skeletal mesh.

Skeletal Mesh Surface Location

This spawns particles from the surface of a skeletal mesh.

Sphere Location

This spawns particles in a spherical shape, with options for hemisphere shaping and density.

Static Mesh Location

This spawns particles from the surface of a static mesh.

System Location

This spawns particles from the system's location.

Torus Location

This spawns particles in a torus shape.

Mass Modules

Parameter

Description

Calculate Mass and Rotational Inertia by Volume

This parameter calculates the mass and rotational inertia based on the particle's bounds and a density value. The density is measured in kilograms per cubic meter.

Calculate Size and Rotational Inertia by Mass

Calculates the particle's scale and rotational inertia based on user-driven mass and density values. The density is measured in kilograms per cubic meters.

Materials Modules

Parameter

Description

Dynamic Material Parameters

These write to the Dynamic Parameter Vertex Interpolator node in the Material Editor. To use Indices 1-3, change the Parameter Index on the node itself in the Material Editor to the corresponding number. This allows the use of up to four unique dynamic parameter nodes in a given material.

Math/Blend Modules

Parameter

Description

Calculate Line Plane Int

This module finds the distance to a plane given a trace origin, vector and plane description. If the line and the plane are aligned, the line intersection vector produces NANs. To avoid referencing this value, make sure to appropriately reference the output bool Line Intersects.

Cone Mask

This module defines a cone in 3D space and checks if the position input lies inside the cone. If the position lies inside the cone, it returns 1; otherwise it returns 0.

Lerp Particle Attributes

This module enables linear interpolation (lerp) of all default particle parameters. You can select the specific parameter to interpolate each default particle parameter against, and also the interpolation factor for each default particle parameter.

Recreate Camera Projection

This module recreates the camera-relative world position of a scene capture 2D's pixel. The projector transform fields allow one to reposition and rotate the projected positions.

Slerp Vector

This module performs a spherical linear interpolation (slerp) operation from point A to point B using Alpha, and then scales the resulting vector.

Temporal Lerp Float

This module performs a slow linear interpolation (lerp) according to the user's specified Current Value over time. The convergence rate is specified through the Rate of Change input.

Temporal Lerp Vector

This module performs a slow linear interpolation (lerp) according to the user's specified Current Value over time. The convergence rate is specified through the Rate of Change input.

Mesh Modules

Parameter

Description

Initialize Mesh Reproduction Sprite

This module first chooses a random location on a skeletal mesh. Then, using the chosen triangle, it calculates an ideal particle size, UV scale, sprite alignment, and so on. To properly align a particle to a mesh surface, one should set the sprite's Render Alignment to Custom Alignment, and set the Facing Mode to Custom Facing. Then set the Custom Facing Vector Mask to 1, 1, 1.

If the mesh does not animate, you can check the box for Overwrite Intrinsic Variables to set all of the particle system's intrinsic parameters. If you want the Facing Mode to update during the effect, do not check the Overwrite Intrinsic Variables box. Instead, add the Update Mesh Reproduction Sprite module to the Particle Update group. Within your material, use Niagara_MeshReproductionSpriteUVs to sample the mesh's UVs.

Both the Initialize Mesh Reproduction Sprite module and the Update Mesh Reproduction Sprite module assume that the skeletal mesh UVs are square, and not compressed on one axis.

Sample Skeletal Mesh Skeleton

This module samples the bone or socket positions of a skeletal mesh, and then writes those sampled values to particle parameters. These particle parameters can then be used later in the stack.

Sample Skeletal Mesh Surface

This module samples the surface of a skeletal mesh, and then writes those sampled values to particle parameters. Those particle parameters can then be used later in the stack.

Sample Static Mesh

This module samples a static mesh, and then writes those sampled values to particle parameters. Those particle parameters can then be used later in the stack.

Update Mesh Reproduction Sprite

This module is used along with the Initialize Mesh Reproduction Sprite module. To recreate the effect in the Niagara level of Content Examples, follow these steps:

  1. Place the Initialize Mesh Reproduction Sprite module in the Particle Spawn group.

  2. Place the Update Mesh Reproduction Sprite module into the Particle Update group.

  3. In the Sprite Renderer, set Alignment to Custom Alignment; set Facing Mode to Custom Facing Vector; set Custom Facing Vector Mask to 1, 1, 1.

  4. In your Material, use Niagara Mesh Reproduction Sprite UVs to sample the mesh's UVs.

  5. If Module.OverwriteIntrinsicVariables is set to False, make sure that this module's output variables drive the particle's attributes (such as position, alignment and so on).

Orientation Modules

Parameter

Description

Align Sprite to Mesh Orientation

This module aligns sprites to a mesh particle's orientation. This enables you to use the Mesh Rotation and Rotational Velocity modules to control a sprite's alignment in relation to the world. Make sure that the Alignment and Facing Mode settings in the Sprite Renderer are set to Custom Alignment and Custom Facing. Set your Custom Facing Vector Mask to 1, 1, 1.

Initial Mesh Orientation

This module aligns a mesh to a vector, or rotates it in place using a rotational vector.

Orient Mesh to Vector

This module aligns a mesh to an input vector.

Physics Modules

Parameter

Description

Add Rotational Velocity

This module adds to the Rotational Velocity value in a user-defined space.

Find Kinetic and Potential Energy

This module returns the following:

  1. A particle's kinetic energy, based on the particle's velocity.

  2. A particle's potential energy, which is the sum of all force modules that write to Physics.PotentialEnergy.

  3. The sum of 1 and 2.

Ribbon Modules

Parameter

Description

Ribbon Width

This controls the width of the spawned ribbon, and writes to Particles.RibbonWidth.

Set Specific Parameters

When you select Set Specific Parameter, you select from the parameters listed. This adds a Set Variable module to the Particle Spawn section.

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

Parameter

Description

DataInstance.Alive

This parameter is used to determine whether or not this particle instance is still valid, or if it can be deleted.

Particles.Age

This defines the age of a particle.

Particles.CameraOffset

This sets the Camera Offset for a particle. The Camera Offset determines the distance between the particle and the camera.

Particles.Color

This directly sets the color of the particle.

Particles.DynamicMaterialParameter

This is a four-float vector used to send data to the renderer.

Particles.DynamicMaterialParameter1

This is a four-float vector used to send data to the renderer.

Particles.DynamicMaterialParameter2

This is a four-float vector used to send data to the renderer.

Particles.DynamicMaterialParameter3

This is a four-float vector used to send data to the renderer.

Particles.ID

This is an engine-managed attribute that provides a persistent ID to each spawned particle.

Particles.Initial.SpriteSize

This sets the initial size of a sprite used by a particle.

Particles.Lifetime

This is the lifetime of a spawned particle in seconds.

Particles.LightRadius

This parameter determines the radius of emitted light when you are using a Light Renderer.

Particles.Mass

This parameter determines the mass of a spawned particle.

Particles.MaterialRandom

This parameter is used to drive the Particle Random node in the Material Editor. When this is not set, any Particle Randoms will get 0.0.

Particles.MeshOrientation

This determines the axis-angle rotation that is applied to a spawned mesh particle.

Particles.NormalizedAge

This is the value of Particles.Age (in seconds) divided by the value of Particles.Lifetime (in seconds). This is useful for animation, because the value generated is between 0 and 1.

Particles.Position

This sets the position of a spawned particle.

Particles.PreviousVelocity

This is used with the Solve Forces And Velocity module to calculate a particle's position in response to force and velocity. Previous velocity is needed to solve for acceleration.

Particles.RibbonFacing

This sets the facing vector of the ribbon at the ribbon particle's position, or the side vector that the ribbon's width is extended along, depending on which Facing Mode is selected.

Particles.RibbonID

This assigns a Ribbon ID to a ribbon particle. Particles with the same Ribbon ID are connected into a ribbon.

Particles.RibbonLinkOrder

This sets an explicit order for linking particles within a ribbon. Particles with the same Ribbon ID are connected into a ribbon in incrementing order according to this value.

Particles.RibbonTwist

This sets the amount of twist a ribbon particle has, in degrees.

Particles.RibbonWidth

This sets the width of a ribbon particle, in UE4 units.

Particles.Scale

This sets the XYZ scale of a non-sprite particle.

Particles.SpriteAlignment

This makes the texture point toward the sprite's selected alignment axis. When using this parameter, the Sprite Renderer's Alignment must be set to Custom Alignment.

Particles.SpriteFacing

This makes the surface of the sprite face towards a custom vector. To use this parameter, the Sprite Renderer's Facing Mode must be set to Custom Facing Vector, and values must be provided in the Sprite Renderer's Custom Facing Vector Mask setting.

Particles.SpriteRotation

This sets the screen-aligned roll of the particle, in degrees.

Particles.SpriteSize

This determines the size of the sprite particle's quad.

Particles.SubImageIndex

This sets a value which ranges from 0 to a value equal to the number of entries in the table of SubUV images.

Particles.UniqueID

This is an engine-managed attribute that serves as a unique ID for each spawned particle. The ID is incremented for each new particle spawned.

Particles.UVScale

This is used to multiply the generated UVs for Sprite Renderers.

Particles.Velocity

This determines the velocity of a particle in centimeters per second (cm/s).

Splines Modules

Parameter

Description

Sample Bezier Spline

This module samples a user-defined bezier spline, and then returns the sampled spline's position, tangent, normal and binormal. Values are output to the following parameters:

  • Particles.SampleBezierSpline.SplinePosition

  • Particles.SampleBezierSpline.SplineTangent

  • Particles.SampleBezierSpline.SplineNormal

  • Particles.SampleBezierSpline.SplineBinormal

Texture Modules

Parameter

Description

Sample Pseudo Volume Texture

This module samples the color of a pseudo volume texture, based on UVW coordinates.

Sample Rasterized Mesh Distance Field

This module samples the color of a pseudo volume texture, based on UVW coordinates.

Sample Texture

This samples a texture at a specific UV location, and returns the color of that part of the texture.

This module is only supported in GPU simulations.

Sub UV Texture Sample

This module samples a single texture pixel in a row-by-column fashion. This module takes a phase 0-1 and finds the row by column index from it, then samples a pixel in a texture with that UV index.

World Aligned Texture Sample

This module samples a texture's color based on particle position, much like a world-aligned texture does in the Material Editor.

Utility Modules

Parameter

Description

Do Once

This module keeps track of whether its trigger condition has ever been true in a previous frame. If not, Particles.Module.Execute returns true. If the trigger condition has returned true in a previous frame, Particles.Module.Execute returns false.

Generate Grid Ribbon IDs

You can use this module to produce the output particle parameters used to produce a 3D grid with 3 ribbon emitters. In the Ribbon Renderer, replace RibbonID with Particles.RibbonID1, Particles.RibbonID2, and Particles.RibbonID3. Set the Ribbon Link Order to 1, 2 and 3. For a 2D grid, do the above, but with only 2 ribbon emitters.

Increment Over Time

This module increases a value each frame. The counter variable increments using the tick delta value and multiplying it by a user-specified rate.

Update MS Vertex Animation Tools Morph Targets

This module reads morph target texture data, and outputs positions and normal vectors for a given pixel-per-particle index. Pipe the module's world space normal output into the asset's material, with tangent space normals disabled within the material in order to reproduce the mesh's surface.

For more information on generating morph target textures, see Vertex Animation Tool .

This module can directly set a particle's position. If you use it this way, do not use another module that directly sets a particle's position.

Vector Field Modules

Parameter

Description

Apply Vector Field

This module takes the vector samples by a vector field sampler, and applies it as a force or velocity.

Construct Bounding Box for Vector Field

This module transforms 12 instances of the Bounding Box Edge mesh, so that they form a cube. This cube represents the bounding box of a vector field. This can optionally apply a local translate, rotate or scale transformation.

Distribute Arrows for Vector Field

This module distributes points in a grid, based on a vector field.

Get Vector Field Properties

This module extracts relevant properties from a vector field object, and calculates some additional useful properties.

Sample Vector Field

This module 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. This can optionally apply a local translate, rotate or scale transformation.

Velocity Modules

Parameter

Description

Add Velocity

This module assigns a velocity to spawned particles. You can add various dynamic inputs to modify the values you enter in this module.

Add Velocity from Point

This module adds velocity from an arbitrary point in space, with optional falloff. It uses the vector between the velocity origin and the particle's position to determine the velocity vector. If particle positions have not been initialized (causing the particle position and velocity origin to be too close together), the module will inject random velocity. For the most accurate results, place this module below any location modules in the stack. This ensures that particle positions have been initialized.

Add Velocity in Cone

This module adds velocity to the Particles.Velocity parameter in a cone shape, with parameters for cone angle, and for velocity distribution along the cone axis.

Align Velocity to Random Axis

This module takes a velocity vector and maintains its magnitude, while picking a random axis to align it to, with an optional time interval between updates (in seconds).

Inherit Velocity

This module adds inherited velocity from another source. This defaults to the position of the system that owns the current emitter.

Scale Velocity

This module multiplies Particles.Velocity by a separate vector in a specific coordinate space.

Static Mesh Velocity

This module adds velocity based on the normals from a static mesh, as well as adding the inherited velocity of a static mesh.

Vortex Velocity

This module calculates an angular velocity around a vortex axis, and injects it into the Particles.Velocity parameter. This is added to the initial velocity the particle has when spawned.

Select Skin
Light
Dark
Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss

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