Expand description
Process-wide command queue for runtime animation control (crossfades,
graph parameter writes, graph state queries). Mirrors the shape of
crate::debug::runtime_spawn, but separate so the AnimationSystem can
drain its own commands without contending with GraphicsSystem’s decal /
particle queue.
The debug WebSocket server (binary-only, off the engine thread) pushes
commands here; the editor’s per-frame debug drive drains them via
AnimationSystem::apply_runtime_commands every frame – including while a
menu pauses playback, so a blocked WS client always gets its reply. Each
command carries a reply channel the drain fulfils synchronously.
Structs§
- Crossfade
Request - One queued crossfade request.
targetis theSkinnedMeshasset id the command applies to;weightsmust match the clip count registered for that target.duration_secs == 0snaps to the new weights on the next frame. Rejected when the target is graph-driven (useSetParam). - Graph
State Report - Snapshot of a graph target’s live state, answered synchronously to the
anim-statedebug command. Parameter values are as of the last completed animation step (a pendingSetParamshows up after the next step). - SetParam
Request - One queued graph parameter write.
targetis theSkinnedMeshwhose graph declares the parameter; the value lands in the target’sAnimationParamscomponent on the next animation step.
Enums§
- Anim
Command - One runtime command pushed onto
enqueueby the debug WS server and drained byAnimationSystem::apply_runtime_commands.
Functions§
- enqueue
- Push a command onto the animation runtime queue. The caller blocks on its own reply receiver to get the result. A poisoned mutex is recovered and used regardless (an unrelated panic must not silently drop commands).