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], where w is 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: SCALAR sequence (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) to 1.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.