UnityEQ VAT Lab
VFX Graph capture contract
EQVAT can bake VFX Graph sprite particles only when the graph exposes a CPU-visible
capture stream. Unity VFX Graph particles live on the GPU, so the baker cannot
read arbitrary rendered particles from a .vfx asset by itself.
Use an EQVATVFXGraphCaptureSource component beside the VisualEffect
component and set Capture Mode to OutputEvents.
Required attributes
Section titled “Required attributes”Each captured output event must carry these attributes:
| Attribute | Type | Purpose |
|---|---|---|
eqvat_id | UInt or Int | Stable logical particle id. The same particle must keep the same id across frames. |
position | Vector3 | Particle position in the selected sample space. |
color | Vector4 or Vector3 | Sprite color. Vector3 becomes RGB with alpha 1. |
size | Vector2 or Float | Sprite width/height. Float becomes uniform size. |
alive | Float or Bool | Render gate. Float values above 0 or Bool true mark the sprite alive. |
The default names above match the default fields on
EQVATVFXGraphCaptureSource. You can rename the fields on the component if the
graph uses different attribute names, but all five concepts are required for
production bakes.
Authoring checklist
Section titled “Authoring checklist”- Add or select the VFX Graph system that owns the particle state you want to bake.
- Add an output event path that fires once per particle per captured frame.
- Write the stable id into
eqvat_id. Do not use event order as identity for production; order can change when the graph changes. - Write particle
position,color,size, andaliveinto the event attributes. - Add
EQVATVFXGraphCaptureSourceto the same GameObject or a nearby bridge object. - Assign the
VisualEffect, set the output event filter if you use a named event, and setParticle Capacityhigh enough for the maximum live count. - Use the Baker tab’s
VFXGraphSpritemode with the capture source component, not the.vfxasset directly.
Failure signals
Section titled “Failure signals”If no samples are captured, check:
- The
VisualEffectfield references the intended component. - The
VisualEffecthas aVisualEffectAsset. - The optional output event name filter matches the graph event name.
- The graph emits during the requested frame range and frame rate.
- The graph writes
eqvat_id,position,color,size, andalive. Particle Capacityis not below the intended live particle count.
If samples are captured but an attribute is missing, the baker fails with a message naming the missing attribute and the number of affected samples.
Opens our feedback form in a new tab with the tool name pre-filled.