Reference API Roblox

Engine API

Website

Related

Reference API Roblox

AnimationTrack

Controls the playback of an animation on an Animator.

This class is not creatable. Instances of this class cannot be created with Instance.new.
Tags: [NotCreatable]

Member index 22

HistoryMember
553Animation: Animation
553IsPlaying: bool
553Length: float
553Looped: bool
553Priority: AnimationPriority
553Speed: float
553TimePosition: float
553WeightCurrent: float
553WeightTarget: float
573AdjustSpeed(speed: float = 1): null
573AdjustWeight(weight: float = 1, fadeTime: float = 0.100000001): null
462GetMarkerReachedSignal(name: string): RBXScriptSignal
665GetTargetInstance(name: string): Instance
665GetTargetNames(): Array
462GetTimeOfKeyframe(keyframeName: string): double
573Play(fadeTime: float = 0.100000001, weight: float = 1, speed: float = 1): null
665SetTargetInstance(name: string, target: Instance): null
573Stop(fadeTime: float = 0.100000001): null
462DidLoop()
550Ended()
462KeyframeReached(keyframeName: string)
462Stopped()
inherited from Instance
553Archivable: bool
670Capabilities: SecurityCapabilities
553Name: string
553Parent: Instance
670Sandboxed: bool
616UniqueId: UniqueId
576AddTag(tag: string): null
573ClearAllChildren(): null
462Clone(): Instance
573Destroy(): null
486FindFirstAncestor(name: string): Instance
486FindFirstAncestorOfClass(className: string): Instance
486FindFirstAncestorWhichIsA(className: string): Instance
486FindFirstChild(name: string, recursive: bool = false): Instance
486FindFirstChildOfClass(className: string): Instance
486FindFirstChildWhichIsA(className: string, recursive: bool = false): Instance
486FindFirstDescendant(name: string): Instance
563GetActor(): Actor
486GetAttribute(attribute: string): Variant
462GetAttributeChangedSignal(attribute: string): RBXScriptSignal
631GetAttributes(): Dictionary
648GetChildren(): Instances
462GetDebugId(scopeLength: int = 4): string
486GetDescendants(): Array
486GetFullName(): string
641GetStyled(name: string): Variant
657GetStyledPropertyChangedSignal(property: string): RBXScriptSignal
576GetTags(): Array
576HasTag(tag: string): bool
486IsAncestorOf(descendant: Instance): bool
486IsDescendantOf(ancestor: Instance): bool
664IsPropertyModified(property: string): bool
573Remove(): null
576RemoveTag(tag: string): null
664ResetPropertyToDefault(property: string): null
573SetAttribute(attribute: string, value: Variant): null
462WaitForChild(childName: string, timeOut: double): Instance
648children(): Instances
553clone(): Instance
573destroy(): null
553findFirstChild(name: string, recursive: bool = false): Instance
648getChildren(): Instances
553isDescendantOf(ancestor: Instance): bool
573remove(): null
462AncestryChanged(child: Instance, parent: Instance)
462AttributeChanged(attribute: string)
462ChildAdded(child: Instance)
462ChildRemoved(child: Instance)
462DescendantAdded(descendant: Instance)
462DescendantRemoving(descendant: Instance)
500Destroying()
657StyledPropertiesChanged()
553childAdded(child: Instance)
inherited from Object
647ClassName: string
647className: string
647GetPropertyChangedSignal(property: string): RBXScriptSignal
647IsA(className: string): bool
650isA(className: string): bool
647Changed(property: string)

Description

Controls the playback of an animation on an Animator. This object cannot be created, instead it is returned by the Animator:LoadAnimation() method.

History 71

Members 22

AdjustSpeed

Parameters (1)Default
speedfloat1
Returns (1)
null

This method changes the AnimationTrack.Speed of an animation. A positive value for speed plays the animation forward, a negative one plays it backwards, and 0 pauses it.

A track's initial speed is set as a parameter in AnimationTrack:Play(). However a track's AnimationTrack.Speed can be changed during playback using this method. When speed is equal to 1, the amount of time an animation takes to complete is equal to AnimationTrack.Length (in seconds).

When is adjusted, then the actual time it will take a track to play can be computed by dividing the length by the speed. AnimationTrack.Speed is a unitless quantity.

This function has a custom internal state. It may behave in a non-standard way.

History 4

Tags: [CustomLuaState]

AdjustWeight

Parameters (2)Default
weightfloat1
fadeTimefloat0.100000001
Returns (1)
null

Changes the weight of an animation, with the optional fadeTime parameter determining how long it takes for AnimationTrack.WeightCurrent to reach AnimationTrack.WeightTarget.

When weight is set in an AnimationTrack it does not change instantaneously but moves from AnimationTrack.WeightCurrent to AnimationTrack.WeightTarget. The time it takes to do this is determined by the fadeTime parameter given when the animation is played, or the weight is adjusted.

The animation weighting system is used to determine how AnimationTracks playing at the same priority are blended together. The default weight is 1, and no movement will be visible on an AnimationTrack with a weight of 0. The pose that is shown at any point in time is determined by the weighted average of all the Poses and the AnimationTrack.WeightCurrent of each AnimationTrack. See below for an example of animation blending in practice. In most cases blending animations is not required and using AnimationTrack.Priority is more suitable.

This function has a custom internal state. It may behave in a non-standard way.

History 4

Tags: [CustomLuaState]

Animation

TypeDefault
Animation

The Animation object that was used to create this AnimationTrack. To create an AnimationTrack, you must load an Animation object onto an Animator using the Animator:LoadAnimation() method.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 5

Tags: [ReadOnly, NotReplicated]

DidLoop

Parameters (0)
No parameters.

This event fires whenever a looped AnimationTrack completes a loop, on the next update.

Currently it may also fire at the exact end of a non looped animation track but this behavior should not be relied upon.

History 2

Ended

Parameters (0)
No parameters.

Fires when the AnimationTrack is completely done moving anything in the world, meaning the animation has finished playing, the "fade out" is finished, and the subject is in a neutral pose.

You can use this to take action when the animation track's subject is back in a neutral pose that's unaffected by the AnimationTrack or to clean up the AnimationTrack.

History 1

GetMarkerReachedSignal

Parameters (1)
namestring
Returns (1)
RBXScriptSignal

This method returns an event similar to the AnimationTrack.KeyframeReached event, except it only fires when a specified KeyframeMarker has been hit in an animation. The difference allows for greater control of when the event will fire.

To learn more about using this method, see here.

See Also

History 2

GetTargetInstance

Parameters (1)
namestring
Returns (1)
Instance

History 1

GetTargetNames

Parameters (0)
No parameters.
Returns (1)
Array

History 1

GetTimeOfKeyframe

Parameters (1)
keyframeNamestring
Returns (1)
double

Returns the time position of the first Keyframe of the given name in an AnimationTrack. If multiple Keyframes share the same name, it will return the earliest one in the animation.

This method will return an error if it is uses with an invalid keyframe name (one that does not exist for example) or if the underlying Animation has not yet loaded. To address this make sure only correct keyframe names are used and the animation has loaded before calling this method.

To check if the animation has loaded, verify that the AnimationTrack.Length is greater than zero.

History 2

IsPlaying

TypeDefault
bool

A read-only property that returns true when the AnimationTrack is playing.

This property can be used to check if an animation is already playing before playing it (as that would cause it to restart). If you want to obtain all playing AnimationTracks on an Animator or a Humanoid, they should use Animator:GetPlayingAnimationTracks()

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

KeyframeReached

Parameters (1)
keyframeNamestring

Fires every time playback of an AnimationTrack reaches a Keyframe that does not have the default name of Keyframe. This event lets you run code at predefined points in an animation (set by Keyframe names).

Keyframe names do not need to be unique. For example, if an animation has three keyframes named Particles, this event will fire each time one of these keyframes is reached.

Keyframe names can be set in the Animation Editor when creating or editing an animation. They cannot however be set by a Script on an existing animation prior to playing it.

History 2

Length

TypeDefault
float

A read-only property that returns the length (in seconds) of an AnimationTrack. This will return 0 until the animation has fully loaded and thus may not be immediately available.

When the AnimationTrack.Speed of an AnimationTrack is equal to 1, the animation will take AnimationTrack.Length (in seconds) to complete.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

Looped

TypeDefault
bool

This property sets whether the animation will repeat after finishing. If it is changed while playing the result will take effect after the animation finishes.

This property defaults to how it was set in the Animation Editor. However, this property can be changed, allowing control over the AnimationTrack while it is running. This property also correctly handles animations played in reverse (negative AnimationTrack.Speed). After the first keyframe is reached, it will restart at the last keyframe.

History 4

Play

Parameters (3)Default
fadeTimefloat0.100000001
weightfloat1
speedfloat1
Returns (1)
null

When AnimationTrack:Play() is called the track's animation will begin playing and the weight of the animation will increase from 0 to the specified weight (defaults to 1) over the specified fadeTime.

The speed the AnimationTrack will play at is determined by the speed parameter (defaults to 1). When the speed is equal to 1 the number of seconds the track will take to complete is equal to the track's AnimationTrack.Length property. For example, a speed of 2 will cause the track to play twice as fast.

The weight and speed of the animation can also be changed after the animation has begun playing by using the AnimationTrack:AdjustWeight() and AnimationTrack:AdjustSpeed() methods.

If you want to start the animation at a specific point using AnimationTrack.TimePosition, it's important the animation is played before this is done.

This function has a custom internal state. It may behave in a non-standard way.

History 4

Tags: [CustomLuaState]

Priority

TypeDefault
AnimationPriority

This property sets the priority of an AnimationTrack. Depending on what this is set to, playing multiple animations at once will look to this property to figure out which Keyframe poses should be played over one another. It uses AnimationPriority which has 7 priority levels:

  1. Action4 (highest priority)
  2. Action3
  3. Action2
  4. Action
  5. Movement
  6. Idle
  7. Core (lowest priority)

Properly set animation priorities, either through the Animation Editor or through this property, allow multiple animations to be played without them clashing. Where two playing animations direct the target to move the same limb in different ways, the AnimationTrack with the highest priority will show. If both animations have the same priority, the weights of the tracks will be used to combine the animations.

History 4

SetTargetInstance

Parameters (2)
namestring
targetInstance
Returns (1)
null

History 1

Speed

TypeDefault
float

This read-only property gives the current playback speed of the AnimationTrack. When equal to 1, the amount of time an animation takes to complete is equal to AnimationTrack.Length, in seconds.

If the speed is adjusted through AnimationTrack:AdjustSpeed(), the actual time it will take a track to play can be computed by dividing the length by the speed. Speed is a unitless quantity.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

Stop

Parameters (1)Default
fadeTimefloat0.100000001
Returns (1)
null

Stops the AnimationTrack. Once called, the weight of the animation will move towards zero over a length of time specified by the optional fadeTime parameter. For example, if Stop() is called with a fadeTime of 2, it will take two seconds for the weight of the track to reach zero and its effects completely end. Please note this will be the case regardless of the initial weight of the animation.

It is not recommended to use a fadeTime of 0 in an attempt to override this effect and end the animation immediately for Motor6Ds that have their Motor.MaxVelocity set to zero, as this causes the joints to freeze in place. If it must end immediately, ensure the Motor.MaxVelocity of Motor6Ds in your rig are high enough for them to snap properly.

This function has a custom internal state. It may behave in a non-standard way.

History 4

Tags: [CustomLuaState]

Stopped

Parameters (0)
No parameters.

Fires whenever the AnimationTrack finishes playing.

This event has a number of uses. It can be used to wait until an AnimationTrack has stopped before continuing (for example, if chaining a series of animations to play after each other). It can also be used to clean up any Instances created during the animation playback.

History 4

TimePosition

TypeDefault
float

Returns the position in time in seconds that an AnimationTrack is through playing its source animation. Can be set to make the track jump to a specific moment in the animation, but the AnimationTrack must be playing to do so. It can also be used in combination with AnimationTrack:AdjustSpeed() to freeze the animation at a desired point by setting speed to 0.

This property is not replicated. Its interface does not cross the network boundary.

History 4

Tags: [NotReplicated]

WeightCurrent

TypeDefault
float

When weight is set in an AnimationTrack it does not change instantaneously but moves from AnimationTrack.WeightCurrent to AnimationTrack.WeightTarget. The time it takes to do this is determined by the fadeTime parameter given when the animation is played, or the weight is adjusted.

AnimationTrack.WeightCurrent can be checked against AnimationTrack.WeightTarget to see if the desired weight has been reached. Note that these values should not be checked for equality with the == operator, as both of these values are floats. To see if AnimationTrack.WeightCurrent has reached the target weight, it is recommended to see if the distance between those values is sufficiently small.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

WeightTarget

TypeDefault
float

This read-only property gives the current weight of the AnimationTrack. It has a default value of 1 and is set when AnimationTrack:Play(), AnimationTrack:Stop() or AnimationTrack:AdjustWeight() is called. When weight is set in an AnimationTrack it does not change instantaneously but moves from AnimationTrack.WeightCurrent to AnimationTrack.WeightTarget. The time it takes to do this is determined by the fadeTime parameter given when the animation is played, or the weight is adjusted.

AnimationTrack.WeightCurrent can be checked against AnimationTrack.WeightTarget to see if the desired weight has been reached. Note that these values should not be checked for equality with the == operator, as both of these values are floats. To see if AnimationTrack.WeightCurrent has reached the target weight, it is recommended to see if the distance between those values is sufficiently small.

This property is not replicated. Its interface does not cross the network boundary.
This property is read-only. Its value can be read, but it cannot be modified.

History 4

Tags: [ReadOnly, NotReplicated]

Settings

Appearance
Visibility