AnimationPlayer
继承
简要描述
Animation资源的容器和播放器。
描述
动画播放器用于Animation资源的通用播放。它包含动画字典(由名称引用)和自定义过渡之间的混合时间。此外,动画可以在不同的频道中播放和混合。
AnimationPlayer比Tween更适合用于事先知道最终值的动画。例如,归功于编辑器提供的动画工具,使用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)
通过关键帧name
将animation
添加到播放器。
- 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
如果找不到关键帧,则返回带有关键帧name
或null
的Animation。
- 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存储带有关键帧name
的Animation,则返回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_end
为true
,动画将向后播放(相当于调用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.0
和from_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
时间点(以秒为单位)的位置。如果update
为true
,动画也会更新,否则会在处理时更新。跳过当前帧和seconds
之间的事件。
- set_blend_time set_blend_time(anim_from: String, anim_to: String, sec: float)
指定两个动画之间的混合时间(以秒为单位),以其名称为参考。
- stop stop(reset: bool = true)
停止或暂停当前播放的动画。如果reset
为true
,动画位置将重置为0
,播放速度将重置为1.0
。
如果reset
为false
,则将保留current_animation_position成员,并调用play或play_backwards,而无需使用参数或使用与assigned_animation成员相同的动画名称。