A lifetime component that uses the emission and lifetime rules of a
complex emitter instead of phases. Its properties
mirror the emission and lifetime properties of
VfxEmitterDefinitionData; that page gives their
shared meaning, and this page states where they differ. The client creates this component
only when a bin declares one. It does not convert a VfxEmitterDefinitionData into one.
Times below are emitter time, in seconds since the emitter was created.
Emission
In each simulation step the emitter spawns nothing if any of these holds:
IsBurstEmitter is set and the emitter has already spawned.
- Emitter time is below
EmitterTimeOffset.
EmitterLifetime is set and emitter time is past it.
emitter time mod EmitterPeriod is not below EmitterTimeActiveDuringPeriod.
Otherwise the count is built in this order:
- The rate is
EmissionRate plus the FlexEmitterRate contribution. When
EmitterRateByVelocity is not (0, 0), it replaces both, capped by
MaximumRateByVelocity.
- The rate is multiplied by the
importance emission-rate multiplier for the current
EffectsQuality. A negative result counts as 0.
- The count is the rate times the time since the later of the last spawn and the start
of the current period, truncated. One step spawns at most the rate times
0.33 plus
1.
- On the first spawn, a count of
0 becomes 1 unless HasVariableStartTime is set.
With IsBurstEmitter the count is the rate, truncated, and at least 1.
- The primitive of the geometry component can lower
the count to the number of particles that it can still hold.
End of the emitter
Spawning is done when emitter time passes EmitterLifetime, or emitterLinger while
the particle system is stopping. With IsBurstEmitter, spawning is done once the
emitter has spawned. The linger rule of particleLingerType starts when spawning is
done. The emitter is finished when it has spawned, emitter time is past
EmitterLifetime and every particle has expired.