跳到主要内容

AnimationPlayer

继承

Node

简要描述

Animation资源的容器和播放器。

描述

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

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

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

成员

类型属性名默认值
Stringassigned_animation
Stringautoplay""
Stringcurrent_animation""
floatcurrent_animation_length
floatcurrent_animation_position
intmethod_call_mode(#member-method_call_mode)0
boolplayback_active
floatplayback_default_blend_time0.0
intplayback_process_mode1
floatplayback_speed1.0
NodePathroot_nodeNodePath("..")

方法

返回值类型方法名称
intadd_animation(name: String, animation: Animation)
voidadvance(delta: float)
Stringanimation_get_next(anim_from: String) const
voidanimation_set_next(anim_from: String, anim_to: String)
voidclear_caches()
voidclear_queue()
Stringfind_animation(animation: Animation) const
Animationget_animation(name: String) const
PoolStringArrayget_animation_list() const
floatget_blend_time(anim_from: String, anim_to: String) const
floatget_playing_speed() const
PoolStringArrayget_queue()
boolhas_animation(name: String) const
boolis_playing() const
voidplay(name: String = "", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false)
voidplay_backwards(name: String = "", custom_blend: float = -1)
voidqueue(name: String)
voidremove_animation(name: String)
voidrename_animation(name: String, newname: String)
voidseek(seconds: float, update: bool = false)
voidset_blend_time(anim_from: String, anim_to: String, sec: float)
voidstop(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
setterset_assigned_animation(value)
getterget_assigned_animation
  • String autoplay
Default""
setterset_autoplay(value)
getterget_autoplay
  • String current_animation
Default""
setterset_current_animation(value)
getterget_current_animation
  • float current_animation_length
getterget_current_animation_length
  • float current_animation_position
getterget_current_animation_position
  • int method_call_mode
Default0
setterset_method_call_mode(value)
getterget_method_call_mode
  • bool playback_active
setterset_active(value)
getteris_active
  • float playback_default_blend_time
Default0.0
setterset_default_blend_time(value)
getterget_default_blend_time
  • int playback_process_mode
Default1
setterset_animation_process_mode(value)
getterget_animation_process_mode
  • float playback_speed
Default1.0
setterset_speed_scale(value)
getterget_speed_scale
  • NodePath root_node
DefaultNodePath("..")
setterset_root(value)
getterget_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成员相同的动画名称。