Overview
Adds a particle source (emitter) to an FX state. It determines where particles appear, how many are emitted, which direction they travel, and their initial speed. For a flame, emit a few particles at a time upward from the bottom; for an explosion, emit them all at once in every direction from the center.
Usage tips
- The character of an effect is largely determined by choosing between
rate(continuous emission for flames or smoke) andburst(all-at-once emission for explosions or impacts). - Connect an image to
maskto emit from a specified shape, such as igniting a character silhouette. The mask defines the emission area, not the appearance of each particle. - Multiple emitters can be chained. Stack two emitters for layered FX such as a flame core plus surrounding sparks.
Related nodes
fx_domain_2d— the upstream foundationfx_force— controls particles after emissionfx_rasterize— controls particle appearance with a stamppath_mask— creates an emission-area mask
Key parameters
| Group | Parameters | Role |
|---|---|---|
| Position | position_x, position_y |
Center of emission |
| Area | shape, radius_x, radius_y |
Emit from a point or a circular area |
| Mask | mask_threshold |
Minimum mask alpha treated as an active emission area |
| Time | start_frame, end_frame |
First and last frames on which particles are emitted |
| Amount | rate, burst |
Amount emitted per frame and amount emitted once at the start |
| Direction | direction_deg, spread_deg |
Base direction and spread angle |
| Initial speed | speed_min, speed_max |
Speed range immediately after emission |
| Lifetime | life_min, life_max |
Number of frames each particle lives |
| Appearance | size_min, size_max, alpha_min, alpha_max |
Particle size and opacity ranges. Final size also depends on size_scale in Fx Rasterize |
| Velocity variation | jitter |
Variation added to each particle's initial X/Y velocity. Use Circle and radius_x/y to spread emission positions |
Read this first
- Fx Emitter 2D does not draw an image.
- It specifies where particles appear, how many are emitted, and which direction they travel.
- Fx Rasterize determines their actual appearance.
- Use
maskto control emission positions with an image.
The role of mask
maskdoes not define the appearance of a particle.- It is an image that defines where particles may be emitted.
- White or opaque pixels permit emission.
- Transparent pixels prevent emission.
mask_thresholdsets the minimum alpha treated as active.- Fully transparent pixels remain blocked even when
mask_threshold = 0.
In short:
- To define emission positions with an image:
FxEmitter2D.mask
- To define the appearance of each particle with an image:
FxRasterize.stamp
When to use it
- To create a single source at the base of a flame
- To place multiple smoke sources
- To emit splashes or sparks primarily as a burst
The most basic setup
FxDomain2D -> FxEmitter2D -> FxRasterize
One emitter is enough to start. For a flame, these settings are easy to understand:
shape = circleposition = 16, 24radius = 2, 1rate = 2burst = 1direction = -90spread = 40speed = 0.5..1.5life = 3..6
Basic lane with a mask
PathMask / PixelCanvas / Image Load
-> FxEmitter2D.mask
This is useful for effects such as:
- emitting smoke from the shape of text,
- emitting sparks from cracks in the ground, or
- emitting splashes only from white areas.
Example: emitter with a mask
{
"shape": "circle",
"position": [16, 24],
"radius": [6, 3],
"mask_threshold": 0.5,
"rate": 3.0,
"burst": 0
}
In this case, the node:
- first generates candidate positions within the circular area,
- emits when a candidate falls on a white part of
mask, and - does not emit when it falls on a transparent part.
Example
Example settings for a 32x32 flame:
{
"name": "Flame Base",
"shape": "circle",
"position": [16, 24],
"radius": [2, 1],
"start_frame": 0,
"end_frame": 7,
"rate": 2.0,
"burst": 1,
"direction_deg": -90.0,
"spread_deg": 40.0,
"speed_min": 0.5,
"speed_max": 1.5,
"life_min": 3.0,
"life_max": 6.0,
"size_min": 1.0,
"size_max": 2.0,
"alpha_min": 0.5,
"alpha_max": 1.0,
"jitter": 0.4
}
Where it helps
- Flames: place one or two emitters near the bottom.
- Smoke: weaken
directionand increaselife. - Splashes: increase
burstand shortenlife.
Changing density and size
- To increase density:
- increase
rate, - increase
burst, - increase
life_maxso more particles remain on screen, or - reduce
radius_x / radius_yorspread_degto pack particles into the same area.
- increase
- To make particles larger:
- increase
size_min / size_max, and - apply an overall multiplier with
FxRasterize.size_scale.
- increase
Examples:
size_min = 1, size_max = 1- Emits only small particles.
size_min = 2, size_max = 4- Varies each particle's size from 2 to 4.
Notes
end_frame = -1means “through the final frame.”- Adding emitters increases the particle count.
- For P11, keep
rate,life, andsizelow before the effect becomes too expensive. - Even with
maskconnected, particles cannot be emitted from fully transparent areas. - With
shape = point, only one point is tested, so no particle is emitted when that point falls outsidemask. - If a
speed,life,size, oralphaminimum exceeds its maximum, evaluation swaps the pair and shows a warning in the Inspector. - If
start_frame/end_framefalls outside the FX domain, or the end precedes the start, evaluation corrects the emission window and shows a warning.