Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Overview

Modifiers are one of the most important features supported by the Particle Effect System in CRYENGINE. Although Particle Effects Although particle effects provide a wide range of feature Feature implementations that can be used to make all kinds of effects, their true power is only achieved when modifiers Modifiers are used to dynamically alter the effect behavior.

Many properties implemented by particle effect Features can contain a stack of Modifiers.

Info
Each Modifier takes that property value and then manipulates it in a specific way and sends the modified value to the next element in the stack. Some of these combine the output value of the previous Modifier with their own input by multiplying them.


Modifiers menu options

Note

On this page, some of the Modifiers are marked as Functionas function-based Modifiers. These modifiers Modifiers have an additional parameters set of properties called the Domains. When enabled, these options domains can display additional fields, depending on the modification Modifier itself and the Domain typedomain type. For more information about the Function-based Modifiers and Domainsdomains, please refer to the Function-based Modifier's Modifiers Common Settings section below.

Modifiers

Many properties implemented by particle effect features can contain a stack of modifiers. Each modifier takes that property value and then manipulates it in a specific way and sends the modified value to the next element in the stack. Some of these modifiers combine the output value of the previous modifier with their own input by multiplying them.Modifiers can be assigned to many properties in the Inspector panel. To access the Modifiers list, click the Image Added dropdown button found next to a property that supports Modifiers. When assigned, each Modifier manipulates the corresponding value in a specific way.

Tip
Depending on the property in question and the settings of the
modifier
Modifier, its logic can be applied on each
component
Component.
For
For example, each
modifier
Modifier logic can be used on a newly spawned particle or each particle in every frame.
The following list outlines the modifiers that are available in a component:

Attribute

With this option, users can modify the original property based on an effect's attributeAttribute.

This modifier Modifier is an alternative way of using attributesAttributes. Another way would be to use Linear (Function-based Modifier) with source option set to Attribute.

Property

Description

Attribute Name

Defines the name of the Attribute to read from. If the attribute does not exist in this emitter, the Domain input will get a value of 1 instead.

Scale and Bias

Allows the Attribute to be scaled and biased. Usually useful when the input is not in the 0 to 1 range.

Spawn Only

Specifies if the attribute is to be applied only when a particle is first born or if it should always affect all living particles.

Config Spec

This option allows users to modify the original property based on the platform type or the particle quality settings. The best outcome can be achieved when it is used to scale other feature properties higher or lower for performance scalability.

Property

Description

Low

Scale value used when on Low Spec PC.

Medium

Scale value used when on Medium Spec PC.

High

Scale value used when on High Spec PC.

Very High

Scale value used when on Very High Spec PC.

XBox One

Scale value used when on XBox One.

XBox One X

Scale value used when on XBox One X.

PlayStation 4

Scale value used when on PlayStation 4.

PlayStation 4 ProScale value used when on PlayStation 4 Pro.

Anchor
linear
linear
Linear (Function-based Modifier)

This option allows users to combine properties that are modified with a Domain; however, it doesn't apply any additional modification. In this modifierModifier, only the function-based properties are used. Please refer to Function-based Modifiers Common Settings for more information.

PropertyDescription
OwnerSee below.
Domain ScaleSee below.
Domain BiasSee below.

Noise (Function-based Modifier)

This modifier uses Uses a potential field based on Perlin noise to randomize the input property.

Note
Unlike the Random
modifier
 Modifier, which tends to get fuzzy or diffuse, the Noise
modifier
 Modifier adds smooth variations to the particles.


Properties
Defines the Domain input to sample the Perlin noise field. For more information, see the Function-based Modifiers Common Settings section

Property

Description

Time Source

Owner

See below.

Domain ScaleSee below.
Domain BiasSee below.

Mode

Defines the noise mode:

OptionDescription
Smooth
-
Simple Perlin Noise field.
Fractal
-
Adds additional roughness to the Perlin
Noise
noise field.
Pulse
-
Uses the noise field to pulse between 0 and 1. Useful to add flickering effects.


Amount

Indicates the amount of variation that will be added to the particle. If the amount is greater than 1, then it can provide a positive and a negative variation at the same time.

Pulse Width

Only available when the Pulse noise mode is active.

Given value specifies the balance between the frequency of pulse being turned on or off. For example, a value of 0.5 allows the pulse to be turned on and off in an even frequency; values greater than 0.5 result in the pulse being turned off more often than it's turned on.

Info
Only available when Mode is set to Pulse.



Info

Use Domain Scale and Domain Bias to change the frequency and phase of noise. If the scale However, if the Domain Scale value is too high, Noise starts to behave closer to pure randomness and fuzziness; as a result, diffuse might start to arise.


Smooth

Fractal

Pulse

Sample of Noise modes for a particle

Wave (Function-based Modifier)

This modifier Modifier is used to provide different types of periodic values. Its options are based on trigonometric mathematics and are useful to add regular behaviors as opposed to variance.

 

Properties

Description

Time Source

Lets users select a Domain to sample the wave trigonometric equations. For more information, see the Function-based Modifiers Common Settings section below.

OwnerSee below.
Domain ScaleSee below.
Domain BiasSee below.

Wave

Defines the noise modes (see below for examples):

  • Sin
  • Saw
  • Pulse

Amplitude, Bias

Lets users add the Waveform waveform settings.

Inverse

When enabled, this option inverts the waveform.


Info

Use Domain Scale and Scale and Domain Bias to change the frequency and phase of a wave.


Info

Cosine is the same as Sine with a 0.25 phase.


Sin

Saw

Pulse

Wave equations samples


A waveform setting sample

Random

This option can only be applied to the new particles. It provides Provides a fast way to add simple variations to the particle behavior.

Note
This Modifier can only affect newly spawned particles.


Properties

Description

Amount

Specifies the amount of variation that will be added to the particle. If the amount is greater than 1, it can provide positive and negative variations at the same time.

Double Curve (Function-based Modifier)

Unlike the Curve modifier, the Double Curve modifier Modifier uses two Bezier curves. The Domain input , in this Modifier, the Domain is used to sample both curves at the same time, while the Random field of the particle is used to interpolate between the lower and the upper Bezier curves.

This is useful in providing additional variance to the particle behavior.

Properties

Description

OwnerSee below.
Domain ScaleSee below.
Domain BiasSee below.

Double Curve

Uses a double Bezier curve to provide additional variance. See Particle Editor for more information about Curve Editor.

Curve (Function-based Modifier)

This option uses the Domain input Uses the domain input to sample a Bezier curve. In particles, Bezier curves have an unlimited number of points; however, each point has to be in the range from 0 to 1 in  on the X axis and there are no enforced limits on the Y axis. For performance reasons, Bezier points support slopes, but not the slope weight.

Properties

Description

OwnerSee below.
Domain ScaleSee below.
Domain BiasSee below.

Curve

Uses a single curve to modify the values. See Particle Editor for more information about Curve Editor.

Inherit

This option allows child particles to inherit their parent's Field output.

PropertyDescription

Spawn Only

When a particle is born, it inherits the parent component's Field output.

Anchor

TBMCS

FBMCS

TBMCS

FBMCS
Function-based Modifiers Common Settings

Many of the Particle Effect Modifiers are function-based. This allows the Modifier to accept not only the input from the property value modified by previous modifiersModifiers, but also other aspects of the particle. All of these modifiers Modifiers have a common set of properties.

The easiest way to differentiate a regular modifier Modifier from a function-based modifier Modifier is that in the case of a function-based modifierModifier, a new dropdown box appears in the user interface allowing users to select the Domain.

Properties

Description

Domain

Anchor
domain
domain

Following options are available on the Function-based Modifiers dropdown menu:

  • Age - This is the normalized time of the current particle; meaning this value will always be between 0 and 1. When a particle is initially created, Self time starts at 0 and as the particle ages, this value will progressively move toward 1 until the particle dies.
  • Spawn Fraction - When particles are spawned using the Spawn feature, a Spawn Fraction field is added to each particle property. The first particle spawned gets order value 0 and the last spawned particle gets order value 1.
  • Spawn Id - When this Domain is selected, a new field called Id Modulus appears. Spawn Id specifies how many times a particle is distributed along the domain before wrapping. Just like Spawn Fraction, it generates domain values between 0 and 1, increasing with particle count. The only difference is that Spawn Fraction works only with emitters with a finite particle count and goes from 0 to 1 only once, whereas Spawn Id works with finite or infinite particle counts and goes from 0 to 1 multiple times, wrapping after Modulus entries.
  • Speed - Specifies the speed of the particle in meters per second.
  • Field - Particles can have other fields besides Size or Opacity. This mode allows users to select/choose any of the fields for a given particle. For more information about fields, please see Field in the Particle Effect Features section.
  • Attribute - Reads the value from any Attributes of the emitter. This is one of the most important Domain options since it allows attributes to actually control different aspects of the effect.
  • Level Time - Specifies the time of the current level in seconds.
  • View Angle - This option corresponds to the relative angle to the camera for particles which have 3D angles. For more information about angles, please see the Angles in the Particle Effect Features section.
    When a particle faces the camera, it emits an output value of 1. When the particle is perfectly flat relative to the camera, then it emits an output value of 0. This option is best used in conjunction with the Field: Opacity feature option to avoid certain types of visual artifacts with free facing particles. For more information about opacity, please see the Field sectionon the Particle Effect Features page.
  • Camera Distance - Specifies the distance of the particle relative to the camera.
  • Random - Will always output a random value between 0 and 1. Can be used to create more sophisticated random variation effects than the Random modifierModifier.
Info

For immortal particles or properties that are not applied to particles during runtime, those values will always be 0.


Attribute Name

The name of the attribute to read from. If the attribute does not exist in this emitter, the Domain value will be 1.

Info
Available when Domain is set to Attribute.


Anchor
field
field
Field

Allows users to select/choose which field to read from. This property is available when Domain is set to Field.

  • Angle2D - Current particle's rotation angle (see Angles for more detail).
  • Spin2D - Current particle's spin rate (see Angles for more detail).
  • Alpha - Specifies particle's opacity (see Field for more detail).
  • Collide Speed - Particle's collision data (see Motion for more detail).
  • Size - Specifies particle's size in meters (see Field for more detail).
  • Gravity - Specifies particle's gravity multiplier (see Motion for more detail).
  • Drag - Specifies particle's drag (see Motion for more detail).
  • Life Time - Specifies the lifetime of a particle in seconds; set it to 0 for immortal particles (see Life for more detail).
  • Random - Each particle can get a random number from 0 to 1. Use this to add variance to the behavior of each particle.
Note

There is a difference between the Random Domain, and the Random property which is available if the Field Domain is selected. The Random Domain will always output a different number and is fully stochastic. Field Random, on other hand, corresponds to a particle's own random number and can be used to have consistent behavior between modifiersModifiers. This can be used for example to have varying but consistent size and opacity or to have all children particles share the same randomness as their parent.
Image RemovedImage Added
Domain Field menu options


Owner

Anchor
owner
owner

Specifies from where the Domain or the Field option should be taken from:

  • Self - Takes the necessary information from the particle itself.
  • Parent - Takes the necessary information from the parent particle.
Info

When the owner is a parent, but the particle's parent is already dead, the Domain value will always be 1. The exception to this rule is the Speed feature, which will be set to 0 instead.


Domain Scale and Domain Bias

Anchor
dsdb
dsdb

Allows the Domain input to be scaled and biased. Usually useful when the input might not be in the 0 to 1 range, such as Speed or Attribute.

Spawn Only

In some cases it is desirable to choose if the Modifier is to be applied for every particle every frame or if the Modifier should only be applied once when the particle is born.

GPU Support

Currently, modifiers Modifiers have a very limited support in the current GPU pipeline. At the moment, the only modifier Modifier that can be used is the Curve modifier Modifier, and it can only be used when Owner is set to Self.

On This Page

Table of Contents
maxLevel4
minLevel2