File: AnimationClip.md | Updated: 11/15/2025
A reusable set of keyframe tracks which represent an animation.
Constructs a new animation clip.
Note: Instead of instantiating an AnimationClip directly with the constructor, you can use the static interface of this class for creating clips. In most cases though, animation clips will automatically be created by loaders when importing animated 3D assets.
name | The clip's name. Default is ''.
---|---
duration | The clip's duration in seconds. If a negative value is passed, the duration will be calculated from the passed keyframes. Default is -1.
tracks | An array of keyframe tracks.
blendMode | Defines how the animation is blended/combined when two or more animations are simultaneously played. Default is NormalAnimationBlendMode.
Defines how the animation is blended/combined when two or more animations are simultaneously played.
The clip's duration in seconds.
The clip's name.
An array of keyframe tracks.
An object that can be used to store custom data about the animation clip. It should not hold references to functions as these will not be cloned.
The UUID of the animation clip.
Returns a new animation clip with copied values from this instance.
Returns: A clone of this instance.
Optimizes each track by removing equivalent sequential keys (which are common in morph target sequences).
Returns: A reference to this animation clip.
Sets the duration of this clip to the duration of its longest keyframe track.
Returns: A reference to this animation clip.
Serializes this animation clip into JSON.
Returns: The JSON object.
Trims all tracks to the clip's duration.
Returns: A reference to this animation clip.
Performs minimal validation on each track in the clip. Returns true if all tracks are valid.
Returns: Whether the clip's keyframes are valid or not.
Returns an array of new AnimationClips created from the morph target sequences of a geometry, trying to sort morph target names into animation-group-based patterns like "Walk_001, Walk_002, Run_001, Run_002...".
See MD2Loader#parse as an example for how the method should be used.
morphTargets | A sequence of morph targets.
---|---
fps | The Frames-Per-Second value.
noLoop | Whether the clip should be no loop or not.
Returns: An array of new animation clips.
Returns a new animation clip from the passed morph targets array of a geometry, taking a name and the number of frames per second.
Note: The fps parameter is required, but the animation speed can be overridden via AnimationAction#setDuration.
name | The name of the animation clip.
---|---
morphTargetSequence | A sequence of morph targets.
fps | The Frames-Per-Second value.
noLoop | Whether the clip should be no loop or not.
Returns: The new animation clip.
Searches for an animation clip by name, taking as its first parameter either an array of clips, or a mesh or geometry that contains an array named "animations" property.
objectOrClipArray | The array or object to search through.
---|---
name | The name to search for.
Returns: The found animation clip. Returns null if no clip has been found.
Factory method for creating an animation clip from the given JSON.
json | The serialized animation clip.
---|---
Returns: The new animation clip.
Parses the animation.hierarchy format and returns a new animation clip.
animation | A serialized animation clip as JSON.
---|---
bones | An array of bones.
Deprecated: since r175.
Returns: The new animation clip.
Serializes the given animation clip into JSON.
clip | The animation clip to serialize.
---|---
Returns: The JSON object.