glTF Animation Channel Target Properties
In the glTF 2.0 specification, animations modify scene elements over time by linking input keyframe data to specific node attributes through animation channels. This article identifies the four core node properties that channel targets can directly animate—translation, rotation, scale, and morph target weights—and details how each property is represented, manipulated, and interpreted within a 3D runtime.
Core Animatable Node Properties
In standard glTF 2.0, an animation channel defines a
target object containing two parameters: node
(the index of the target node) and path (the property to
animate). The specification strictly limits the path string
on a standard node to four possible values:
1. Translation
("translation")
- Data Type:
VEC3(Floating-point array of length 3:[x, y, z]) - Description: Represents the local 3D position of the node relative to its parent. Animating translation moves the node along the local X, Y, and Z axes.
2. Rotation ("rotation")
- Data Type:
VEC4(Floating-point array of length 4:[x, y, z, w]) - Description: Represents the local orientation of
the node stored as a unit quaternion in the format
[x, y, z, w], wherewis the scalar component. Quaternion interpolation (SLERP or normalized linear interpolation) ensures smooth, gimbal-lock-free rotational changes.
3. Scale ("scale")
- Data Type:
VEC3(Floating-point array of length 3:[x, y, z]) - Description: Represents local scaling factors along
the local X, Y, and Z axes. A value of
[1.0, 1.0, 1.0]indicates no scaling. Non-uniform scaling is supported, though uniform scaling is recommended for performance and skinning stability.
4. Morph Target Weights
("weights")
- Data Type:
SCALARsequence (Floating-point array) - Description: Controls the influence of morph
targets defined on the mesh instantiated by the target node. Unlike
translation, rotation, and scale (collectively known as TRS properties),
the output size per keyframe matches the total number of morph targets
present on the node's mesh. Each value typically ranges from
0.0(no influence) to1.0(full influence), driving shape key blend shapes.
Interpolation Methods
For all four animatable properties, the animation sampler defines how values are computed between keyframes using one of three standard interpolation algorithms:
LINEAR: Linear interpolation between adjacent keyframes (spherical linear interpolation for rotations).STEP: Discrete steps where the value remains unchanged until the next keyframe timestamp.CUBICSPLINE: Smooth cubic spline interpolation, which requires each keyframe to supply in-tangent, value, and out-tangent vectors.
Expanding
Beyond Core Properties: KHR_animation_pointer
Standard glTF restricts animation channels to the four node
properties listed above. However, models utilizing the
KHR_animation_pointer extension can target arbitrary glTF
object properties directly via JSON Pointers. With this extension,
animation channels can directly drive non-TRS properties, such as camera
parameters (field of view, focal length), material properties (base
color factor, roughness, emissive strength), and light parameters.