Skip to main content

Particle System

Last Updated Time: 11/13/2023

Overview

A Particle System can simulate and render many small images called particles to produce visual effects. Each particle primitive in the system has properties such as shape, size, color, Alpha(transparency), motion speed and direction, lifetime, etc. The system simulates each particle collectively to produce the complete effect. The particle system is very helpful when it comes to dynamic objects such as flames, smoke, etc.

Particle Editor

The Flexi Engine has a built-in Particle Editor.

Creating Particles

In the Resource Preview window, right-click on the blank space to bring up the menu. Then click Single Particle to create a particle file.

2022-10-21_152541

Opening the Particle Editor

Double-click the newly created particle file to open the Particle Editor.

image-20221028133828849

image-20230309160420072

No.Description
1Menu Bar
2Toolbar
3Preview Window
4Property Panel
5Animation Curve Control Panel

Properties

The Particle Property panel controls the various properties of the particles to get different effects as needed. The most important ones are Particle Property and Scene Settings.

Particle Properties

  • Renderer

Set the Renderer properties of a single facet.

2022-10-21_153665

PropertyDescription
Map FileThe base texture of a single particle facet.
Refraction MapRefraction effect map.
Refraction IntensityIntensity of refraction effect.
Display TypeDisplay types can be selected according to actual use.
Depth BiasDepth offset coefficient when rendering particles.
Billboard ModeSet billboard modes, including Default Vertical Mode (Billboard), Y-axis Rotation Mode (Billboard_Y), Leaf Mode and None.
Axis DeviationSet the axial random coefficient of the particle rotation axis.
Particle Calculation ModeModes for calculating particle effects, including Auto Mode, CPU Mode, GPU Mode and Global Mode.
Particle ColorAdd color to a single particle.
Particle BrightnessParticle brightness (self-illuminated).
Random ColorRandomly read the color on the texture.
Color AnimationParticles have random colors as they move.
Accept Dynamic IlluminationWhether to accept dynamic illumination on particle effects.
Light TypeSimple/Standard.
Transmittance IntensityTransmittance intensity on particles. The larger the value is, the more obvious specular on the particle is; the smaller the value is, the less obvious the specular is.
  • Texture Sheet Animation

Set the properties of the Texture Sheet Animation maps.

image-20230322113648635

PropertyDescription
Sequence Frame AmountThe amount of sequence frames in a texture file.
Start Sequence Frame NumberThe frame index in the texture file where the sequence frame starts.
Sequence Frame Row NumberThe row numbers of sequence frames in a texture file.
Sequence Frame Column NumberThe column numbers of sequence frames in a texture file.
Frame LoopWhether to enable locking at 30fps for rendering.
  • Motion

Set the Motion properties of the particles.

2022-10-21_153810

PropertyDescription
Particle SpeedThe moving speed of particles.
Particle Speed OffsetThe random disturbances of particle speed.
Random DirectionThe direction of random disturbances.
Particle Jitter StrengthThe strength of particles’ random jittering.
Particle Jitter SpeedThe speed of particles’ random jittering.
Gravity InfluenceThe gravity influence on particles.
  • Emission

Set the Emission properties of the particles.

2022-10-25_093423

PropertyDescription
Particle Emission AxialThe direction of the emitted particles.
Repeated EmissionWhether to repeat emission.
The Number Emitted At A TimeThe number of particles emitted at a time.
Emission Interval TimeThe interval time between each emission, only available while setting Repeated Emission as true.
Emission Interval VariateThe random disturbances during per emission interval.
Keep Binding LocationSpecify whether the emitter keeps the position of being bound to the model in the Effect Editor.
Keep Binding DirectionSpecify whether the particle keeps the emission direction in the Effect Editor.
Keep Previous Emission DirectionSpecify whether the emitter keeps the direction of the emitted particles in the Effect Editor.
Scale Not Affect SpeedSpecify whether the emitter keeps the speed of the emitted particles unaffected by scaling.
Keep Binding Emitter DirectionSpecify whether the emitter keeps the emission direction in the Effect Editor.
Emitter ShapeThe emission shape of a particle emitter.
Emit AngleSpecify the angle range of particles emitted by the emitter (only for emitters with Sphere and Cone shapes).
Emit RadiusSpecify the radius range of particles emitted by the emitter (only for emitters with Sphere, Box, Circle shapes).
Emit ThicknessSpecify the thickness of particles emitted by the emitter (only for emitters with Sphere, Cone, Circle shapes).
Emitter Scale XSpecify the scaling of emitted particles in the Direction X.
Emitter Scale YSpecify the scaling of emitted particles in the Direction Y.
Emitter Scale ZSpecify the scaling of emitted particles in the Direction Z.
Emit Rand PosRandom disturbances in the position of particles emitted by the emitter.
Bounding Box Size XSet the display range X for particles in the scene, beyond the bounding box is no longer displayed.
Bounding Box Size YSet the display range Y for particles in the scene, beyond the bounding box is no longer displayed.
Bounding Box Size ZSet the display range Z for particles in the scene, beyond the bounding box is no longer displayed.
  • Bounds

Customize the size of the particle bounding box.

image-20231113150711967

PropertyDescription
Use Fixed Relative Bounding BoxWhether to use fixed relative bounding boxes.
Min Bounding Box XThe X coordinate value of the minimum point.
Min Bounding Box YThe Y coordinate value of the minimum point.
Min Bounding Box ZThe Z coordinate value of the minimum point.
Max Bounding Box XThe X coordinate value of the maximum point.
Max Bounding Box YThe Y coordinate value of the maximum point.
Max Bounding Box ZThe Z coordinate value of the maximum point.
  • Particle System

Set the properties of the Particle System.

image-20230316153521671

PropertyDescription
Vector FieldVector field file, which describes a force field with a range within which particles will be affected by the force field (Please refer to Particles and Vector Fields for details).
Vector Field StrengthVector field strength with its value ranges from 0.0 to10.0.
Play SpeedPlay speed of particle motion.
Particle AmountThe amount of particles emitted at a time.
LifetimeThe lifetime of a particle.
Lifetime DeviationIf it is greater than the Particle Duration, this value is the Particle Duration; if the difference between the Lifetime and the Lifetime Deviation is less than the Trail Time, the Trail Time is the difference between the two.
Particle DurationThe duration time of the particle; it can be longer than the lifetime.
Particle SizeThe initial size of the particle.
Particle Size OffsetRandom disturbances of particle size; the higher the value, the stronger the disturbances.
Aspect RatioSet the aspect ratio of the particle facet; the higher the value, the longer the facet.
Angle DeviationSet the angle deviation of the particle itself.
Particle RotationSet the particle rotation coefficient. When the value is positive, the particle rotates counterclockwise, and when it is negative, the particle rotates clockwise (Note: After the setting is completed, the particle will start to rotate only after keying a frame in the Particle Rotation Curve Editing panel).
Particle Rotation OffsetSet the rotation angle offset of the particle itself.
Particle Rotation Random DirectionSet the random coefficient of particle rotation direction.
Recycle MarkParticles will be emitted towards the center of the emitter after it is enabled.
Delay UnloadDelay deleting particles; particles can be deleted only when their visibility is 0.
Jet ModelLoad the jet model (i.e. rendering a single particle as a model).
  • Wind

Set the Wind properties of the Particle System.

2022-10-25_100222

PropertyDescription
Wind InfluenceSet the wind influence on particles; If the Wind Influence is 0, the Gravity Influence is also 0.
Wind Influence DeviationSet the deviation of the wind influence on particles.
Rise VelocitySet the rise velocity of particles.
  • Collision

Set the Collision properties of the particles in the scene.

2022-10-25_100722

PropertyDescription
Min SizeSet the minimum size of particles.
Landing HeightSet the landing height of particles.
  • Attractor

Set the properties of the Attractor.

image-20230321105642100

PropertyDescription
Attractor SpeedSet the speed attracted by the attractor.
Attractor TypeNone: none; Self: emitter itself; Point: specified attraction point; Line: specified attraction position segment.
Particle Revolution SpeedSet the speed of particles while revolving around the point of attraction.
Particle Revolution Speed OffsetSet the speed offset of particles while revolving around the point of attraction.
  • Trails

Set the properties of the particle Trails.

2022-10-25_101008

PropertyDescription
Generate TrailWhether to generate trails.
Trail TimeSet the time of trails.
Trail Segment NumberSet the number of trail subdivisions.
Trail History AlphaWhether to use the history Alpha value.
Trail History ColorWhether to use the history color value.
Trail History SizeWhether to use the history particle size.
Modify Trail SizeWhether to modify the trail size of the particle.
  • Advanced

Set the Advanced properties of the particles.

2022-10-25_101202

PropertyDescription
RoughnessSet the roughness of the particle facet.
MetallicSet the metallic of the particle facet.
Normal MapSet the normal map of the particle facet.

Scene Settings

image-20221028172952346

PropertyDescription
IlluminationSun parameters.
EnvironmentEnvironment global illumination parameters.
CameraCamera parameters.
WindGlobal wind parameters.
SSDO EffectAmbient occlusion parameters.
Anti-aliasingAnti-aliasing effect.
BloomBloom effect.

Animation Curves

The change forms of particle effects in the dynamic process can be controlled in the Animation Curve Control panel.

image-20221111174722261

Basic Editing

Select a particle effect on the left side of the Animation Curve Control panel to enter its Curve Editing panel. Double-click on the blank space in the curve editing area to add a new keyframe.

image-20230322131457762

Delete keyframes. Select the keyframe as needed and then press the Delete key to delete it. Multiple keyframes can be selected to delete at a time. Or click the Delete button in the panel, and select the keyframes as needed in the pop-up Delete Key window (with the Time of each keyframe representing itself). Then click the OK button.

image-20221111175504957

Move keyframes. Select the keyframe as needed and hold down the left mouse button to move it.

drag

Modify keyframes. The Time and Value of all current keyframes which can be modified directly by entering numbers in their input boxes are displayed above the curve editing area.

image-20221111175817485

Click the Parameter button to bring up the Keyframe Parameter window, which shows information about all keyframes on the current curve.

image-20221111175919642

Particle Visibility

The change of the particle visibility during its lifetime can be set in Particle Visibility.

Click Particle Visibility on the left side of the Animation Curve Control panel to open the Particle Visibility Curve Editing panel. A default linear curve will appear in this area.

image-20221118154953046

There are two keyframes on the current curve with the Time and Value of each being displayed above the panel. The value of the curve ranges from 1 to 0, where a value of 1 means that the particle is fully visible, and a value of 0 means that the particle is invisible.

image-20221111180109962

Particle Size

The change of the particle size during its lifetime can be set in Particle Size.

Click Particle Size on the left side of the Animation Curve Control panel to open the Particle Size Curve Editing panel. A default linear curve will appear in this area.

image-20221118155122180

There are two keyframes on the current curve with the Time and Value of each being displayed above the panel. The value of the curve ranges from 0 to 1, where a value of 0 represents the minimum size of the current particle during its lifetime, and a value of 1 represents its maximum size during the lifetime (i.e. the property Particle Size). For a particle whose size is changing dynamically, the size at different periods during its lifetime is equal to the Particle Size in the particle properties multiplied by the corresponding Value.

image-20221111180244733

Particle Speed

The change of the particle speed during its lifetime can be set in Particle Speed.

Click Particle Speed on the left side of the Animation Curve Control panel to open the Particle Speed Curve Editing panel. A default linear curve will appear in this area.

image-20221118155233798

There are two keyframes on the current curve with the Time and Value of each being displayed above the panel. The value of the curve ranges from 0 to 0.02, where a value of 0 represents the slowest speed of the current particle during its lifetime (i.e. particle rest), and a value of 0.02 represents its fastest speed during the lifetime. For a particle whose speed is changing dynamically, the speed at different periods during its lifetime is equal to the Particle Speed in the particle properties multiplied by the corresponding Value.

image-20221111180404035

Particle Rotation

The change of the particle rotation degree during its lifetime can be set in Particle Rotation.

Click Particle Rotation on the left side of the Animation Curve Control panel to open the Particle Rotation Curve Editing panel. Initially, there is no dynamic change in the particle rotation degree.

image-20221118155335161

The Particle Rotation property in the Particle Property panel needs to be set before editing the particle rotation curve. For a particle whose rotation degree is changing dynamically, the rotation degree at different periods during its lifetime is equal to the Particle Rotation in the particle properties multiplied by the corresponding Value.

image-20221104145324470

rotation

Rise Velocity

The change of the particle rise velocity during its lifetime can be set in Rise Velocity.

Click Rise Velocity on the left side of the Animation Curve Control panel to open the Rise Velocity Curve Editing panel. Initially, there is no dynamic change in the particle rise velocity.

image-20221118155601501

The Wind property in the Particle Property panel needs to be set before editing the rise velocity curve. For a particle whose rise velocity is changing dynamically, the rise velocity at different periods during its lifetime is equal to the Rise Velocity in the particle properties multiplied by the corresponding Value.

image-20221114111840131

RiseVelocity

Particle Jitter Speed

The change of the particle jitter speed during its lifetime can be set in Particle Jitter Speed.

Click Particle Jitter Speed on the left side of the Animation Curve Control panel to open the Particle Jitter Speed Curve Editing panel. Initially, there is no dynamic change in the particle jitter speed.

image-20221118155701800

The Particle Jitter Speed and Particle Jitter Strength properties in the Particle Property panel need to be set before editing the particle jitter speed curve. For a particle whose jitter speed is changing dynamically, the jitter speed at different periods during its lifetime is equal to the Particle Jitter Speed in the particle properties multiplied by the corresponding Value.

image-20221114110529017

jitter

Attractor Speed

The change of the particle attractor speed during its lifetime can be set in Attractor Speed.

Click Attractor Speed on the left side of the Animation Curve Control panel to open the Attractor Speed Curve Editing panel. Initially, there is no dynamic change in the particle attractor speed.

image-20230321094946831

The Attractor Speed and Attractor Type properties under the Attractor option in the Particle Property panel need to be set before editing the particle attractor speed curve. For a particle whose attractor speed is changing dynamically, the attractor speed at different periods during its lifetime is equal to the Attractor Speed in the particle properties multiplied by the corresponding Value.

image-20230321104713007

AttractorSpeed

Changing Colors

Click Color in the Animation Curve Control panel to open the Color Keyframe panel, in which the dynamic change effect of particle color during its lifetime can be set. The left side of the Color Bar represents the start of the particle's life, while the right side represents the end.

image-20230414092234938

Click on the blank space below the Color Bar to add color keyframes at different locations. Select a keyframe and click the Delete button, or hold down a keyframe and drag it around to delete it (Note: Up to eight keyframes).

AddAndDeleteKeyframe

Select a keyframe, after which the color and location of it can be modified in Color and Location respectively. Select and drag the keyframe left and right to change the location. Double-click it directly to modify its color in the pop-up Color Picker window.

Color

Particles and Vector Fields

In calculus and physics, Vector Field is a mapping that assigns each point in space to a vector. Vector Fields in physics include wind fields, gravitational fields, electromagnetic fields, water flow fields and etc. The suffix of the file describing the Vector Field is .fga, which is generally produced by a third-party DCC software, and the Flexi Engine provides an import feature. If you want to use the Vector Field related feature, the Particle Calculation Mode of the particle system must be set to GPU mode.

Mode

FGA Files

The FGA file mainly describes the vector size of each voxel in a cuboid in 3D space.

The first line of the file specifies the dimension size of the Vector Field, which consists of three numbers representing the dimensions of the X, Y, and Z axes of the Vector Field respectively with the dimension sizes recorded as X, Y, and Z. In general, X = Y = Z, and is a multiple of 2.

The three numbers in the second line indicate the coordinates of the bottommost vertex of the Vector Field cuboid boundary in world space.

The three numbers in the third line represent the world coordinates of the diagonal vertex of the point determined by the numbers in the second line. A cuboid in 3D space can be uniquely determined by the coordinates.

Next comes the actual content of the Vector Field, consisting of X × Y × Z lines, which represent the vector magnitude determined by each voxel in the coordinate system of this Vector Field (As in the file below, there are 16 × 16 × 16 + 3 = 4099 lines in total).

FGA

Drag FGA files exported by DCC software to the Resource Preview window in the Editor.

image-20230322113212670

Imported:

image-20230322113335443

Set the Particle Calculation Mode under the Render option to GPU in the Particle Property panel of the Particle Editor.

image-20230321151638545

Then select an FGA file in the Vector Field under the Particle System option.

image-20230317131943831

If you want to adjust the strength of the vector field, you can adjust it in Vector Field Strength whose adjustable range is 0.0~10.0.

image-20230317132001502

Adjust Particle Amount, Lifetime, Particle Duration under the Particle System option, and The Number Emitted At A Time under the Emit option to appropriate values. Particle jitter and gravity effects can be added by adjusting Particle Jitter Strength, Particle Jitter Speed, and Gravity Influence under the Motion option.

image-20230522151036554

The following picture shows the result of Vector Field, Particle Jitter, Gravity and other properties working together (compatible with each other).

VectorFields