GLTF model providing the node graph, weights, and clips.
Optional configuration for the animator's settable fields.
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.
ReadonlymodelName of the currently playing clip, or null when stopped.
Playback speed multiplier (1.0 = real-time).
Whether playback loops at clip duration.
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.
Whether the model has any morph-target weights to drive.
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.
Clip name as it appears in the GLTF model. Unknown names stop playback.
Whether playback wraps at clip duration.
Pauses playback while preserving the current time.
Resumes playback from the current time.
Stops playback and resets nodes + weights to their defaults.
Live morph weights for a node's mesh, or null when it has no targets.
Previous-frame morph weights for a node, or null. For the velocity pass.
Advances clip time, samples node/weights channels, and re-solves world matrices.
Frame delta time in seconds.
Plays the scene-node side of glTF animation: rigid TRS on ordinary (non-joint) nodes and per-mesh morph-target weights.
Works with or without a skeleton — the common morph/node-animation test models are unskinned, so AnimatedModel (which requires a skin) can't drive them. When a model is also skinned, AnimatedModel owns the joint pose and this component owns everything else; the two run in lockstep on the same clip. Skinned meshes ignore their node transform (they pose via joints), so driving joint-node TRS here as well is harmless.
Each frame AnimatedNodes.update resets nodes to their defaults, samples the active clip's node/weights channels, and solves world matrices parents-first. Consumers read AnimatedNodes.worldMatrix (node placement) and AnimatedNodes.weightsFor (morph weights) per draw.