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

Constructors

    public AnimationPlayer()

Signals

    "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" ()

Notifies when the caches have been cleared, either automatically, or manually via ClearCaches().

Properties

    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.

    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).

    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 AnimationMethodCallMode MethodCallMode { get; set; }

The call mode to use for Call Method tracks.

    public bool PlaybackActive { get; set; }

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

    public float PlaybackDefaultBlendTime { get; set; }

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

    public AnimationProcessMode PlaybackProcessMode { get; set; }

The process notification in which to update animations.

    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.

    public NodePath RootNode { get; set; }

The node from which node path references will travel.

Methods

    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; ClearCaches() 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 an 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.

    [Obsolete("GetAnimationProcessMode is deprecated. Use the PlaybackProcessMode property instead.")]
    public AnimationProcessMode GetAnimationProcessMode()

Getter for PlaybackProcessMode

    [Obsolete("GetAssignedAnimation is deprecated. Use the AssignedAnimation property instead.")]
    public string GetAssignedAnimation()

Getter for AssignedAnimation

    [Obsolete("GetAutoplay is deprecated. Use the Autoplay property instead.")]
    public string GetAutoplay()

Getter for Autoplay

    public float GetBlendTime(string animFrom, string animTo)

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

    [Obsolete("GetCurrentAnimation is deprecated. Use the CurrentAnimation property instead.")]
    public string GetCurrentAnimation()

Getter for CurrentAnimation

    [Obsolete("GetCurrentAnimationLength is deprecated. Use the CurrentAnimationLength property instead.")]
    public float GetCurrentAnimationLength()

Getter for CurrentAnimationLength

    [Obsolete("GetCurrentAnimationPosition is deprecated. Use the CurrentAnimationPosition property instead.")]
    public float GetCurrentAnimationPosition()

Getter for CurrentAnimationPosition

    [Obsolete("GetDefaultBlendTime is deprecated. Use the PlaybackDefaultBlendTime property instead.")]
    public float GetDefaultBlendTime()

Getter for PlaybackDefaultBlendTime

    [Obsolete("GetMethodCallMode is deprecated. Use the MethodCallMode property instead.")]
    public AnimationMethodCallMode GetMethodCallMode()

Getter for MethodCallMode

    public float GetPlayingSpeed()

Gets 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()

Returns a list of the animation names that are currently queued to play.

    [Obsolete("GetRoot is deprecated. Use the RootNode property instead.")]
    public NodePath GetRoot()

Getter for RootNode

    [Obsolete("GetSpeedScale is deprecated. Use the PlaybackSpeed property instead.")]
    public float GetSpeedScale()

Getter for PlaybackSpeed

    public bool HasAnimation(string name)

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

    [Obsolete("IsActive is deprecated. Use the PlaybackActive property instead.")]
    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)

Plays the animation with key name. Custom speed and blend times can be set. If customSpeed is negative and fromEnd is true, the animation will play backwards.

If the animation has been paused by Stop(bool), it will be resumed. Calling Play(string, float, float, bool) without arguments will also resume the animation.

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

Plays 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)

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

Note: If a looped animation is currently playing, the queued animation will never play unless the looped animation is stopped somehow.

    public void RemoveAnimation(string name)

Removes the animation with key name.

    public void RenameAnimation(string name, string newname)

Renames an existing animation with key name to newname.

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

Seeks 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.

    [Obsolete("SetActive is deprecated. Use the PlaybackActive property instead.")]
    public void SetActive(bool active)

Setter for PlaybackActive

    [Obsolete("SetAnimationProcessMode is deprecated. Use the PlaybackProcessMode property instead.")]
    public void SetAnimationProcessMode(AnimationProcessMode mode)

Setter for PlaybackProcessMode

    [Obsolete("SetAssignedAnimation is deprecated. Use the AssignedAnimation property instead.")]
    public void SetAssignedAnimation(string anim)

Setter for AssignedAnimation

    [Obsolete("SetAutoplay is deprecated. Use the Autoplay property instead.")]
    public void SetAutoplay(string name)

Setter for Autoplay

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

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

    [Obsolete("SetCurrentAnimation is deprecated. Use the CurrentAnimation property instead.")]
    public void SetCurrentAnimation(string anim)

Setter for CurrentAnimation

    [Obsolete("SetDefaultBlendTime is deprecated. Use the PlaybackDefaultBlendTime property instead.")]
    public void SetDefaultBlendTime(float sec)

Setter for PlaybackDefaultBlendTime

    [Obsolete("SetMethodCallMode is deprecated. Use the MethodCallMode property instead.")]
    public void SetMethodCallMode(AnimationMethodCallMode mode)

Setter for MethodCallMode

    [Obsolete("SetRoot is deprecated. Use the RootNode property instead.")]
    public void SetRoot(NodePath path)

Setter for RootNode

    [Obsolete("SetSpeedScale is deprecated. Use the PlaybackSpeed property instead.")]
    public void SetSpeedScale(float speed)

Setter for PlaybackSpeed

    public void Stop(bool reset = true)

Stops 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(string, float, float, bool) without arguments or play("same_as_before") will resume the animation. Works the same for the PlayBackwards(string, float).

Inner Types

AnimationMethodCallMode

Name Value Description
Deferred 0 Batch method calls during the animation process, then do the calls after events are processed. This avoids bugs involving deleting nodes or modifying the AnimationPlayer while playing.
Immediate 1 Make method calls immediately when reached in the animation.

AnimationProcessMode

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 [method advance] to process the animation manually.
Tags: