Add transient effects as short-lived, self-owning entities triggered by application events, not as
permanent scene fixtures.
Reuse before authoring. Adapt the closest official particle example with
, prefer the
Engine's built-in particle component over a hand-written system, and discover any shipped trail or
effect script with
.
Copy particle curve construction from the installed example exactly.
takes one key array
per channel, such as
new CurveSet([0, x0, 1, x1], [0, y0, 1, y1], [0, z0, 1, z1])
; do not flatten three channels into one array. A malformed curve can type-check and then fail
inside the particle texture upload. Create one emitter, render a frame, and require empty runtime
and console diagnostics before reusing the helper for smoke, spray, or splashes.
For a polished wake, smoke, or spray requirement, do not stop at scaled planes, crossed billboards,
or generic render primitives. Use the built-in particle component for smoke and spray; reserve a
custom mesh and material for a continuously sampled wake ribbon. Verify tint and blending against
the actual scene lighting and surface.
Trigger each effect through real gameplay input and confirm with a screenshot captured at its peak,
not a saved filepath. Confirm the effect is visible from the gameplay camera and from a grazing
angle, that emitters are gone after their lifetime (query the entity count), and that nothing leaves
a black quad or a hard edge over the surface.
Choose the authoring surface with the
skill; create effects through its entity and
component primitives and own their lifecycle in the surface that spawned them.