GLTF model providing the skin (and the clips the root nodes sample).
The blend-tree / state-machine root to evaluate each frame.
skinIndex selects which skin to drive (default 0).
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.
Whether this component participates in simulation and rendering. When false,
the GameObject skips its update/updateRender and the scene's
render collectors (mesh renderers, camera, lights, …) ignore it — the
component stays attached and keeps its state, like Unity's Behaviour.enabled
/ Renderer.enabled. Defaults to true.
The owning GameObject; assigned by addComponent before onAttach runs.
True between onAttach and onDetach — i.e. while this component sits on a GameObject that is part of a live Scene. Managed by GameObject. Internal — do not set directly.
ReadonlymodelReadonlyskeletonReadonlyskinWhich skin (index into model.skins) this animator drives.
The root of the blend tree / state machine this animator evaluates.
ReadonlyjointFinal joint matrices (jointCount × 16, column-major) read by the skinned render pass.
ReadonlypreviousPrevious-frame joint matrices, for the velocity-buffer motion-blur path (see AnimatedModel.previousJointMatrices).
ReadonlyglobalPer-joint global (model-space) matrices for the current pose — the bone transforms a BoneAttachment follows. Refreshed each update.
ReadonlyrootRoot-bone travel consumed from the animation this frame, in the model's local
space. When AnimatorOptions.rootMotion is set, the root joint's
horizontal (or full) translation is lifted out of the pose into this vector
each update, leaving the mesh centered — rotate it by the character's
facing and feed it to a CharacterController to drive root-motion locomotion.
Zero when root motion is disabled.
OptionalpreOptional hook run at the very start of each update, before the graph
advances/evaluates — used by a declarative graph to push its parameters into
the blend nodes. See buildAnimatorGraph.
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.
Connect to a Signal with automatic disconnect when this component is removed from its GameObject — the safe default for cross-object listening, so a destroyed component never leaks into (or gets called by) a signal it once observed. Typically called from onAttach:
onAttach(): void {
const health = this.gameObject.getComponent(Health)!;
this.listen(health.died, () => this.playDeathEffect());
}
The signal to connect to.
Listener, forwarded to Signal.connect.
Optionalopts: SignalConnectOptionsSee SignalConnectOptions.
The unsubscribe function, for listeners that also want to disconnect early; calling it is optional and idempotent.
Disconnect every signal connection made through listen. Called by GameObject.removeComponent after onDetach (so it runs even when a subclass overrides onDetach without calling super). Internal — do not call directly.
Called when the component joins a live scene — from addComponent when the
GameObject is already in a scene, otherwise when the GameObject is added to
one. this.gameObject.scene (and scene.engine) is always set here.
Override to acquire references to siblings/children or initialize resources.
Called when the component leaves the scene — removed via GameObject.removeComponent, or its GameObject removed from the scene. Override to release resources or unsubscribe from events.
Called when this component's GameObject begins touching another body, with the GameObject it collided with. Dispatched by the physics system after each world step (only while playing), so handlers may freely mutate the scene. Requires a physics body (RigidBody / CharacterBody) on the object.
The other GameObject involved in the contact.
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.).
Pauses evaluation, freezing the current pose.
Resumes evaluation.
Advances the blend tree's clip times, evaluates it into the current pose, and rebuilds jointMatrices.
Frame delta time in seconds.
Drives a skinned model from an animation blend tree or state machine, the richer counterpart to AnimatedModel's single-clip playback.
Where
AnimatedModelplays one clip (with an optional two-clip cross-fade),Animatorevaluates an arbitrary BlendNode graph — gait blends, a 4-way strafe blend space, additive aim layers, a locomotion state machine — into the per-joint pose each frame. It exposes the same jointMatrices / previousJointMatrices surface, so it is a drop-in source for the skinned geometry pass and velocity-buffer motion blur.Build the node graph against the model's Skeleton (available as
model.skins[skinIndex]), drive its parameters each frame from gameplay, and the component advances + evaluates it in update.