GLTF model providing clips + the shared material instances.
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 KHR_animation_pointer channels.
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. Unknown names stop playback.
Pauses playback while preserving the current time.
Resumes playback from the current time.
Stops playback and resets time to zero.
Advances clip time and applies the active clip's pointer channels.
Frame delta time in seconds.
Plays KHR_animation_pointer channels — animation that drives non-transform properties via JSON pointers. Currently applies the material subset (emissive / base color / metallic / roughness / alpha-cutoff / transmission / ior / clearcoat); light / camera / node pointers are parsed-but-skipped.
Materials are shared per glTF material index (the loader caches them on GltfModel.materials), so animating one updates every primitive using it. Each frame AnimatedProperties.update samples the active clip's pointer channels and writes the values onto the materials (marking them dirty so the render pass re-uploads the uniform).