跳转至

AnimationPlayer

继承

Node

简要描述

Animation资源的容器和播放器。

描述

动画播放器用于Animation资源的通用播放。它包含动画字典(由名称引用)和自定义过渡之间的混合时间。此外,动画可以在不同的频道中播放和混合。

AnimationPlayerTween更适合用于事先知道最终值的动画。例如,归功于编辑器提供的动画工具,使用AnimationPlayer节点可以更容易地展现淡入淡出屏幕效果。这个特定的例子也可以用Tween节点来实现,但是它需要通过代码来完成。

在处理时更新动画的目标属性。

成员

类型 属性名 默认值
String assigned_animation
String autoplay ""
String current_animation ""
float current_animation_length
float current_animation_position
int method_call_mode(#member-method_call_mode) 0
bool playback_active
float playback_default_blend_time 0.0
int playback_process_mode 1
float playback_speed 1.0
NodePath root_node NodePath("..")

方法

返回值类型 方法名称
int add_animation(name: String, animation: Animation)
void advance(delta: float)
String animation_get_next(anim_from: String) const
void animation_set_next(anim_from: String, anim_to: String)
void clear_caches()
void clear_queue()
String find_animation(animation: Animation) const
Animation get_animation(name: String) const
PoolStringArray get_animation_list() const
float get_blend_time(anim_from: String, anim_to: String) const
float get_playing_speed() const
PoolStringArray get_queue()
bool has_animation(name: String) const
bool is_playing() const
void play(name: String = "", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false)
void play_backwards(name: String = "", custom_blend: float = -1)
void queue(name: String)
void remove_animation(name: String)
void rename_animation(name: String, newname: String)
void seek(seconds: float, update: bool = false)
void set_blend_time(anim_from: String, anim_to: String, sec: float)
void stop(reset: bool = true)

信号

  • animation_changed

如果当前正在播放的动画发生更改,则此信号将通知此更改。


  • animation_finished

动画播放完毕时通知。


  • animation_started

在动画开始播放时通知。


  • caches_cleared

通知何时自动或通过clear_caches清除了缓存。


枚举

enum AnimationProcessMode: - ANIMATION_PROCESS_PHYSICS = 0

在物理过程中处理动画。这在为物理实体设置动画时很有用。

  • ANIMATION_PROCESS_IDLE = 1

在空闲过程中处理动画。

  • ANIMATION_PROCESS_MANUAL = 2

不处理动画。使用advance手动处理动画。


enum AnimationMethodCallMode: - ANIMATION_METHOD_CALL_DEFERRED = 0

在动画过程中进行批处理方法调用,然后在事件处理后进行调用。这样可以避免在播放时删除节点或修改AnimationPlayer的错误。

  • ANIMATION_METHOD_CALL_IMMEDIATE = 1

在动画中到达时立即进行方法调用。


常量

成员说明

  • String assigned_animation
setter set_assigned_animation(value)
getter get_assigned_animation
  • String autoplay
Default ""
setter set_autoplay(value)
getter get_autoplay
  • String current_animation
Default ""
setter set_current_animation(value)
getter get_current_animation
  • float current_animation_length
getter get_current_animation_length
  • float current_animation_position
getter get_current_animation_position
  • int method_call_mode
Default 0
setter set_method_call_mode(value)
getter get_method_call_mode
  • bool playback_active
setter set_active(value)
getter is_active
  • float playback_default_blend_time
Default 0.0
setter set_default_blend_time(value)
getter get_default_blend_time
  • int playback_process_mode
Default 1
setter set_animation_process_mode(value)
getter get_animation_process_mode
  • float playback_speed
Default 1.0
setter set_speed_scale(value)
getter get_speed_scale
  • NodePath root_node
Default NodePath("..")
setter set_root(value)
getter get_root

方法说明

  • add_animation add_animation(name: String, animation: Animation)

通过关键帧nameanimation添加到播放器。


  • advance advance(delta: float)

切换动画时间轴中的位置并立即更新动画。delta是以秒为时间单位的切换。处理当前帧和delta之间的事件。


  • animation_get_next animation_get_next(anim_from: String) const

返回队列中下一个动画的名称。


  • animation_set_next animation_set_next(anim_from: String, anim_to: String)

anim_from动画完成时触发anim_to动画。


  • clear_caches clear_caches()

AnimationPlayer缓存动画节点。它可能不会注意到节点是否消失;clear_caches强制它再次更新缓存。


  • clear_queue clear_queue()

清除所有队列,未播放的动画。


  • find_animation find_animation(animation: Animation) const

返回animation的名称;如果找不到,则返回一个空字符串。


  • get_animation get_animation(name: String) const

如果找不到关键帧,则返回带有关键帧namenullAnimation


  • get_animation_list get_animation_list() const

返回已存储动画名称的列表。


  • get_blend_time get_blend_time(anim_from: String, anim_to: String) const

获取两个动画之间的混合时间(以秒为单位),以它们的名称为参考。


  • get_playing_speed get_playing_speed() const

获取当前动画的实际播放速度,如果不播放则为0。此速度是调用play方法时指定的playback_speed属性乘以custom_speed参数。


  • get_queue get_queue()

返回当前排队播放的动画名称的列表。


  • has_animation has_animation(name: String) const

如果AnimationPlayer存储带有关键帧nameAnimation,则返回true


  • is_playing is_playing() const

如果播放动画,则返回true


  • play play(name: String = "", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false)

基于关键帧name播放动画。可设置自定义混合时间和速度。如果custom_speed为负数,并且from_endtrue,动画将向后播放(相当于调用play_backwards

AnimationPlayer使用assigned_animation跟踪其当前或最后播放的动画。如果使用相同的动画name调用此方法,或不使用name参数,则指定的动画将在暂停时继续播放,或在停止时重新启动(请参阅stop了解暂停和停止)。如果动画已经播放,那么它将继续播放。

**注意:**下次处理AnimationPlayer时,动画将被更新。如果同时更新了其他变量,则可能更新得太早。要立即执行更新,请调用advance(0)


  • play_backwards play_backwards(name: String = "", custom_blend: float = -1)

反向播放关键帧为name的动画。

此方法是play的简写,其中custom_speed = -1.0from_end = true,因此请参阅其说明以获取更多信息。


  • queue queue(name: String)

当前动画完成后,将动画排队播放。

**注意:**如果当前正在播放循环动画,则除非以某种方式停止了循环动画,否则后面排队的动画将永远不会播放。


  • remove_animation remove_animation(name: String)

基于关键帧name删除动画。


  • rename_animation rename_animation(name: String, newname: String)

将具有关键帧为name的现有动画重命名为newname


  • seek seek(seconds: float, update: bool = false)

寻找动画中seconds时间点(以秒为单位)的位置。如果updatetrue,动画也会更新,否则会在处理时更新。跳过当前帧和seconds之间的事件。


  • set_blend_time set_blend_time(anim_from: String, anim_to: String, sec: float)

指定两个动画之间的混合时间(以秒为单位),以其名称为参考。


  • stop stop(reset: bool = true)

停止或暂停当前播放的动画。如果resettrue,动画位置将重置为0,播放速度将重置为1.0

如果resetfalse,则将保留current_animation_position成员,并调用playplay_backwards,而无需使用参数或使用与assigned_animation成员相同的动画名称。