GLTF model providing the skin and animation clips.
Optional configuration. skinIndex selects which skin to
drive (index into model.skins; default 0). For a file with multiple
skins, create one AnimatedModel per skin.
Stable identity for this component, unique within a session. Auto-generated for runtime-created components; the editor overwrites it with a persistent id when projecting a saved document so references survive save / load / undo.
The owning GameObject; assigned by addComponent before onAttach runs.
ReadonlymodelReadonlyskeletonName of the currently playing clip, or null when stopped.
Playback speed multiplier (1.0 = real-time).
Whether playback loops at clip duration.
ReadonlyjointFinal joint matrices (jointCount × 16, column-major) read by the skinned render pass.
ReadonlypreviousSnapshot of jointMatrices from the start of the previous
update. Used by the velocity-buffer motion blur path to compute
per-bone screen-space motion. The snapshot is the previous-frame pose,
not the current one — so feeding it to the velocity shader alongside the
current jointMatrices reproduces the inter-frame skin deformation.
ReadonlyskinWhich skin (index into model.skins) this animator drives.
The simulation clock of the scene this component belongs to. Read inside
update (or any time after the GameObject is added to a scene) for
absolute time, frame count, FPS, and timeScale-aware delta — e.g.
this.time.elapsed, this.time.delta, this.time.frameCount.
this.time.delta equals the dt argument passed to update, so
components can ignore that argument entirely and pull everything from here.
Called once when the component is added to a GameObject. Override to acquire references to siblings/children or initialize resources.
Called once when the component is removed from its GameObject. Override to release resources or unsubscribe from events.
Called every frame by the GameObject's render traversal, after update and any input/controller mutations to the transform. Override to refresh per-frame state that render passes consume (e.g. Camera recomputes its cached view/projection matrices here).
Active render context (provides canvas width/height etc.).
Starts playback of a named clip from time 0.
When fade > 0 and a different clip is already playing, the current clip is
cross-faded out over fade seconds (both clips sampled and blended) instead
of hard-snapping — for smooth gait transitions (e.g. Walk → Run).
Clip name as it appears in the GLTF model. Unknown names stop playback.
Whether playback wraps at clip duration.
Cross-fade duration in seconds (0 = instant snap).
Pauses playback while preserving the current time.
Resumes playback from the current time.
Stops playback, resets time to zero, and snaps the skeleton to its rest pose.
Advances clip time, samples the active clip, and recomputes joint matrices.
Frame delta time in seconds.
Component that plays GLTF skeletal animation clips on a skinned model.
Owns the animated joint matrices consumed by the skinned variant of the world geometry pass. Each frame, AnimatedModel.update samples the current clip into per-joint TRS arrays and rebuilds jointMatrices via the bound Skeleton.