Container and player of Animation resources.
    public class AnimationPlayer : Node

An animation player is used for general purpose playback of Animation resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in different channels.

Inheritance Chain


    public AnimationPlayer()


    "animation_changed" (String old_name, String new_name)

If the currently being played animation changes, this signal will notify of such change.

    "animation_finished" (String anim_name)

Notifies when an animation finished playing.

    "animation_started" (String anim_name)

Notifies when an animation starts playing.

    "caches_cleared" ()


    public string AssignedAnimation { get; set; }

If playing, the current animation; otherwise, the animation last played. When set, would change the animation, but would not play it unless currently playing. See also CurrentAnimation.

    public string Autoplay { get; set; }

The name of the animation to play when the scene loads. Default value: "".

    public string CurrentAnimation { get; set; }

The name of the current animation, “” if not playing anything. When being set, does not restart the animation. See also Play(string, float, float, bool). Default value: "".

    public float CurrentAnimationLength { get; }

The length (in seconds) of the currently being played animation.

    public float CurrentAnimationPosition { get; }

The position (in seconds) of the currently playing animation.

    public bool PlaybackActive { get; set; }

If true, updates animations in response to process-related notifications. Default value: true.

    public float PlaybackDefaultBlendTime { get; set; }

The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision. Default value: 0.

    public AnimationProcessMode PlaybackProcessMode { get; set; }

The process notification in which to update animations. Default value: ANIMATION_PROCESS_IDLE.

    public float PlaybackSpeed { get; set; }

The speed scaling ratio. For instance, if this value is 1 then the animation plays at normal speed. If it’s 0.5 then it plays at half speed. If it’s 2 then it plays at double speed. Default value: 1.

    public NodePath RootNode { get; set; }

The node from which node path references will travel. Default value: "..".


    public Error AddAnimation(string name, Animation animation)

Adds animation to the player accessible with the key name.

    public void Advance(float delta)

Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and delta are handled.

    public string AnimationGetNext(string animFrom)

Returns the name of the next animation in the queue.

    public void AnimationSetNext(string animFrom, string animTo)

Triggers the animTo animation when the animFrom animation completes.

    public void ClearCaches()

AnimationPlayer caches animated nodes. It may not notice if a node disappears, so clear_caches forces it to update the cache again.

    public void ClearQueue()

Clears all queued, unplayed animations.

    public string FindAnimation(Animation animation)

Returns the name of animation or empty string if not found.

    public Animation GetAnimation(string name)

Returns the Animation with key name or null if not found.

    public string[] GetAnimationList()

Returns the list of stored animation names.

    public AnimationProcessMode GetAnimationProcessMode()

Getter for PlaybackProcessMode

    public string GetAssignedAnimation()

Getter for AssignedAnimation

    public string GetAutoplay()

Getter for Autoplay

    public float GetBlendTime(string animFrom, string animTo)

Get the blend time (in seconds) between two animations, referenced by their names.

    public string GetCurrentAnimation()

Getter for CurrentAnimation

    public float GetCurrentAnimationLength()

Getter for CurrentAnimationLength

    public float GetCurrentAnimationPosition()

Getter for CurrentAnimationPosition

    public float GetDefaultBlendTime()

Getter for PlaybackDefaultBlendTime

    public float GetPlayingSpeed()

Get the actual playing speed of current animation or 0 if not playing. This speed is the playback_speed property multiplied by custom_speed argument specified when calling the play method.

    public string[] GetQueue()

    public NodePath GetRoot()

Getter for RootNode

    public float GetSpeedScale()

Getter for PlaybackSpeed

    public bool HasAnimation(string name)

Returns true if the AnimationPlayer stores an Animation with key name.

    public bool IsActive()

Getter for PlaybackActive

    public bool IsPlaying()

Returns true if playing an animation.

    public void Play(string name = "", float customBlend = -1f, float customSpeed = 1f, bool fromEnd = false)

Play the animation with key name. Custom speed and blend times can be set. If custom speed is negative (-1), ‘from_end’ being true can play the animation backwards.

If the animation has been paused by stop(true) it will be resumed. Calling play() without arguments will also resume the animation.

    public void PlayBackwards(string name = "", float customBlend = -1f)

Play the animation with key name in reverse.

If the animation has been paused by stop(true) it will be resumed backwards. Calling play_backwards() without arguments will also resume the animation backwards.

    public void Queue(string name)

Queue an animation for playback once the current one is done.

    public void RemoveAnimation(string name)

Remove the animation with key name.

    public void RenameAnimation(string name, string newname)

Rename an existing animation with key name to newname.

    public void Seek(float seconds, bool update = false)

Seek the animation to the seconds point in time (in seconds). If update is true, the animation updates too, otherwise it updates at process time. Events between the current frame and seconds are skipped.

    public void SetActive(bool active)

Setter for PlaybackActive

    public void SetAnimationProcessMode(AnimationProcessMode mode)

Setter for PlaybackProcessMode

    public void SetAssignedAnimation(string anim)

Setter for AssignedAnimation

    public void SetAutoplay(string name)

Setter for Autoplay

    public void SetBlendTime(string animFrom, string animTo, float sec)

Specify a blend time (in seconds) between two animations, referenced by their names.

    public void SetCurrentAnimation(string anim)

Setter for CurrentAnimation

    public void SetDefaultBlendTime(float sec)

Setter for PlaybackDefaultBlendTime

    public void SetRoot(NodePath path)

Setter for RootNode

    public void SetSpeedScale(float speed)

Setter for PlaybackSpeed

    public void Stop(bool reset = true)

Stop the currently playing animation. If reset is true, the animation position is reset to 0 and the playback speed is reset to 1.0.

If reset is false, then calling play() without arguments or play("same_as_before") will resume the animation. Works the same for the play_backwards() method.

Inner Types


Name Value Description
Physics 0 Process animation during the physics process. This is especially useful when animating physics bodies.
Idle 1 Process animation during the idle process.
Manual 2 Do not process animation. Use the ‘advance’ method to process the animation manually.