Although particle effects provide a wide range of Feature implementations that can be used to make all kinds of effects, their true power is only achieved when Modifiers are used to dynamically alter the effect behavior.
Many properties implemented by particle effect Features can contain a stack of Modifiers.
Modifiers menu options
On this page, some of the Modifiers are marked as function-based. These Modifiers have an additional set of properties called Domains. When enabled, these domains can display additional fields, depending on the Modifier itself and the domain type. For more information about the Function-based Modifiers and domains, please refer to the Function-based Modifiers Common Settings section below.
Modifiers can be assigned to many properties in the Inspector panel. To access the Modifiers list, click the dropdown button found next to a property that supports Modifiers. When assigned, each Modifier manipulates the corresponding value in a specific way.
With this option, users can modify the original property based on an effect's Attribute.
This Modifier is an alternative way of using Attributes. 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. |
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 Pro | Scale value used when on PlayStation 4 Pro. |
This option allows users to combine properties that are modified with a Domain; however, it doesn't apply any additional modification. In this Modifier, only the function-based properties are used. Please refer to Function-based Modifiers Common Settings for more information.
Uses a potential field based on Perlin noise to randomize the input property.
Property | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
Owner | See below. | ||||||||
Domain Scale | See below. | ||||||||
Domain Bias | See below. | ||||||||
Mode | Defines the noise mode:
| ||||||||
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 | 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. Only available when Mode is set to Pulse. |
Use Domain Scale and Domain Bias to change the frequency and phase of noise. 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
This 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 |
---|---|
Owner | See below. |
Domain Scale | See below. |
Domain Bias | See below. |
Wave | Defines the noise modes (see below for examples):
|
Amplitude, Bias | Lets users add the waveform settings. |
Inverse | When enabled, this option inverts the waveform. |
Use Domain Scale and Domain Bias to change the frequency and phase of a wave.
Cosine is the same as Sine with a 0.25 phase.
Sin | Saw | Pulse |
Wave equations samples
A waveform setting sample
Provides a fast way to add simple variations to the particle behavior.
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. |
Unlike Curve, the Double Curve Modifier uses two Bezier curves, 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 |
---|---|
Owner | See below. |
Domain Scale | See below. |
Domain Bias | See below. |
Double Curve | Uses a double Bezier curve to provide additional variance. See Particle Editor for more information about Curve Editor. |
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 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 |
---|---|
Owner | See below. |
Domain Scale | See below. |
Domain Bias | See below. |
Curve | Uses a single curve to modify the values. See Particle Editor for more information about Curve Editor. |
This option allows child particles to inherit their parent's Field output.
Property | Description |
---|---|
Spawn Only | When a particle is born, it inherits the parent component's Field output. |
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 Modifiers, but also other aspects of the particle. All of these Modifiers have a common set of properties.
The easiest way to differentiate a regular Modifier from a function-based Modifier is that in the case of a function-based Modifier, a new dropdown box appears in the user interface allowing users to select the Domain.
Properties | Description |
---|---|
Domain | Following options are available on the Function-based Modifiers dropdown menu:
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. Available when Domain is set to Attribute. |
Field | Allows users to select/choose which field to read from. This property is available when Domain is set to Field.
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 Modifiers. 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. |
Owner | Specifies from where the Domain or the Field option should be taken from:
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 | 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. |
Currently, Modifiers have a very limited support in the current GPU pipeline. At the moment, the only Modifier that can be used is the Curve Modifier, and it can only be used when Owner is set to Self.