📄 threejs/Core/Animation/KeyframeTrack

File: KeyframeTrack.md | Updated: 11/15/2025


title: KeyframeTrack category: Core layout: docs

KeyframeTrack

Represents s a timed sequence of keyframes, which are composed of lists of times and related values, and which are used to animate a specific property of an object.

Constructor

new KeyframeTrack( name : string, times : Array.<number>, values : Array.<(number|string|boolean)>, interpolation : InterpolateLinear | InterpolateDiscrete | InterpolateSmooth )

Constructs a new keyframe track.

name | The keyframe track's name.
---|---
times | A list of keyframe times.
values | A list of keyframe values.
interpolation | The interpolation type.

Properties

.DefaultInterpolation : InterpolateLinear | InterpolateDiscrete | InterpolateSmooth

The default interpolation type of this keyframe track.

Default is InterpolateLinear.

.TimeBufferType : TypedArray | Array

The time buffer type of this keyframe track.

Default is Float32Array.constructor.

.ValueBufferType : TypedArray | Array

The value buffer type of this keyframe track.

Default is Float32Array.constructor.

.ValueTypeName : String

The value type name.

Default is ''.

.name : string

The track's name can refer to morph targets or bones or possibly other values within an animated object. See PropertyBinding#parseTrackName for the forms of strings that can be parsed for property binding.

.times : Float32Array

The keyframe times.

.values : Float32Array

The keyframe values.

Methods

.InterpolantFactoryMethodDiscrete( result : TypedArray ) : DiscreteInterpolant

Factory method for creating a new discrete interpolant.

result | The result buffer.
---|---

Returns: The new interpolant.

.InterpolantFactoryMethodLinear( result : TypedArray ) : LinearInterpolant

Factory method for creating a new linear interpolant.

result | The result buffer.
---|---

Returns: The new interpolant.

.InterpolantFactoryMethodSmooth( result : TypedArray ) : CubicInterpolant

Factory method for creating a new smooth interpolant.

result | The result buffer.
---|---

Returns: The new interpolant.

.clone() : KeyframeTrack

Returns a new keyframe track with copied values from this instance.

Returns: A clone of this instance.

.getInterpolation() : InterpolateLinear | InterpolateDiscrete | InterpolateSmooth

Returns the current interpolation type.

Returns: The interpolation type.

.getValueSize() : number

Returns the value size.

Returns: The value size.

.optimize() : AnimationClip

Optimizes this keyframe track by removing equivalent sequential keys (which are common in morph target sequences).

Returns: A reference to this animation clip.

.scale( timeScale : number ) : KeyframeTrack

Scale all keyframe times by a factor (useful for frame - seconds conversions).

timeScale | The time scale.
---|---

Returns: A reference to this keyframe track.

.setInterpolation( interpolation : InterpolateLinear | InterpolateDiscrete | InterpolateSmooth ) : KeyframeTrack

Defines the interpolation factor method for this keyframe track.

interpolation | The interpolation type.
---|---

Returns: A reference to this keyframe track.

.shift( timeOffset : number ) : KeyframeTrack

Moves all keyframes either forward or backward in time.

timeOffset | The offset to move the time values.
---|---

Returns: A reference to this keyframe track.

.trim( startTime : number, endTime : number ) : KeyframeTrack

Removes keyframes before and after animation without changing any values within the defined time range.

Note: The method does not shift around keys to the start of the track time, because for interpolated keys this will change their values

startTime | The start time.
---|---
endTime | The end time.

Returns: A reference to this keyframe track.

.validate() : boolean

Performs minimal validation on the keyframe track. Returns true if the values are valid.

Returns: Whether the keyframes are valid or not.

Static Methods

.toJSON( track : KeyframeTrack ) : Object

Converts the keyframe track to JSON.

track | The keyframe track to serialize.
---|---

Returns: The serialized keyframe track as JSON.

Source

src/animation/KeyframeTrack.js