Animation
Inherits: Resource < Reference < Object
包含用于对引擎中所有内容进行动画处理的数据。
描述
Animation 资源包含对引擎中的内容进行动画所需的数据。动画被划分为轨道,每个轨道必须与一个节点相连。通过向轨道添加时间键(事件),节点的状态可以随时间改变。
# 这将创建一个动画,使节点“Enemy”向右移动
# 在 0.5 秒内移动 100 像素。
var animation = Animation.new()
var track_index = animation.add_track(Animation.TYPE_VALUE)
animation.track_set_path(track_index, "Enemy:position:x")
animation.track_insert_key(track_index, 0.0, 0)
animation.track_insert_key(track_index, 0.5, 100)
动画只是数据容器,必须添加到 AnimationPlayer 或 AnimationTreePlayer 等节点上才能播放。动画轨道有不同的类型,每个都有自己的一套专用方法。参阅 TrackType 查看可用类型。
教程
属性
| ||
| ||
|
方法
animation_track_get_key_animation ( int track_idx, int key_idx ) const | |
animation_track_insert_key ( int track_idx, float time, String animation ) | |
void | animation_track_set_key_animation ( int track_idx, int key_idx, String animation ) |
audio_track_get_key_end_offset ( int track_idx, int key_idx ) const | |
audio_track_get_key_start_offset ( int track_idx, int key_idx ) const | |
audio_track_get_key_stream ( int track_idx, int key_idx ) const | |
audio_track_insert_key ( int track_idx, float time, Resource stream, float start_offset=0, float end_offset=0 ) | |
void | audio_track_set_key_end_offset ( int track_idx, int key_idx, float offset ) |
void | audio_track_set_key_start_offset ( int track_idx, int key_idx, float offset ) |
void | audio_track_set_key_stream ( int track_idx, int key_idx, Resource stream ) |
bezier_track_get_key_in_handle ( int track_idx, int key_idx ) const | |
bezier_track_get_key_out_handle ( int track_idx, int key_idx ) const | |
bezier_track_get_key_value ( int track_idx, int key_idx ) const | |
bezier_track_insert_key ( int track_idx, float time, float value, Vector2 in_handle=Vector2( 0, 0 ), Vector2 out_handle=Vector2( 0, 0 ) ) | |
bezier_track_interpolate ( int track_idx, float time ) const | |
void | bezier_track_set_key_in_handle ( int track_idx, int key_idx, Vector2 in_handle ) |
void | bezier_track_set_key_out_handle ( int track_idx, int key_idx, Vector2 out_handle ) |
void | bezier_track_set_key_value ( int track_idx, int key_idx, float value ) |
void | clear ( ) |
void | copy_track ( int track_idx, Animation to_animation ) |
find_track ( NodePath path ) const | |
get_track_count ( ) const | |
method_track_get_key_indices ( int track_idx, float time_sec, float delta ) const | |
method_track_get_name ( int track_idx, int key_idx ) const | |
method_track_get_params ( int track_idx, int key_idx ) const | |
void | remove_track ( int track_idx ) |
track_find_key ( int track_idx, float time, bool exact=false ) const | |
track_get_interpolation_loop_wrap ( int track_idx ) const | |
track_get_interpolation_type ( int track_idx ) const | |
track_get_key_count ( int track_idx ) const | |
track_get_key_time ( int track_idx, int key_idx ) const | |
track_get_key_transition ( int track_idx, int key_idx ) const | |
track_get_key_value ( int track_idx, int key_idx ) const | |
track_get_path ( int track_idx ) const | |
track_get_type ( int track_idx ) const | |
void | track_insert_key ( int track_idx, float time, Variant key, float transition=1 ) |
track_is_enabled ( int track_idx ) const | |
track_is_imported ( int track_idx ) const | |
void | track_move_down ( int track_idx ) |
void | track_move_to ( int track_idx, int to_idx ) |
void | track_move_up ( int track_idx ) |
void | track_remove_key ( int track_idx, int key_idx ) |
void | track_remove_key_at_position ( int track_idx, float position ) |
void | track_set_enabled ( int track_idx, bool enabled ) |
void | track_set_imported ( int track_idx, bool imported ) |
void | track_set_interpolation_loop_wrap ( int track_idx, bool interpolation ) |
void | track_set_interpolation_type ( int track_idx, InterpolationType interpolation ) |
void | track_set_key_time ( int track_idx, int key_idx, float time ) |
void | track_set_key_transition ( int track_idx, int key_idx, float transition ) |
void | track_set_key_value ( int track_idx, int key, Variant value ) |
void | track_set_path ( int track_idx, NodePath path ) |
void | track_swap ( int track_idx, int with_idx ) |
transform_track_insert_key ( int track_idx, float time, Vector3 location, Quat rotation, Vector3 scale ) | |
transform_track_interpolate ( int track_idx, float time_sec ) const | |
value_track_get_key_indices ( int track_idx, float time_sec, float delta ) const | |
value_track_get_update_mode ( int track_idx ) const | |
value_track_interpolate ( int track_idx, float time_sec ) const | |
void | value_track_set_update_mode ( int track_idx, UpdateMode mode ) |
信号
- tracks_changed ( )
当轨道列表发生变化时发出,例如轨道被添加、移动或改变路径。
枚举
enum TrackType:
TYPE_VALUE = 0 —- 值跟踪节点属性中的设置值,但只跟踪那些可以插值的值。
TYPE_TRANSFORM = 1 —- 变换轨迹用于改变节点局部变换或骨架姿势骨架。转变是插值的。
TYPE_METHOD = 2 —- 方法跟踪每个键给定参数的调用函数。
TYPE_BEZIER = 3 —- Bezier轨迹用于使用自定义曲线对数值进行插值。它们也可以用来对向量和颜色的子属性进行动画处理(例如Color的alpha值)。
TYPE_AUDIO = 4 —- 音频轨道可以用来通过任意类型的 AudioStreamPlayer 播放音频流。该流可以在动画中进行修剪和预览。
TYPE_ANIMATION = 5 —- 动画曲目在其他 AnimationPlayer 节点中播放动画。
enum InterpolationType:
INTERPOLATION_NEAREST = 0 —- 无内插(最近值)。
INTERPOLATION_LINEAR = 1 —- 线性插值.
INTERPOLATION_CUBIC = 2 —- 三次插值.
enum UpdateMode:
UPDATE_CONTINUOUS = 0 —- 在关键帧之间更新。
UPDATE_DISCRETE = 1 —- 在关键帧更新并保持数值。
UPDATE_TRIGGER = 2 —- 在关键帧更新。
UPDATE_CAPTURE = 3 —- 与线性插值相同,但如果第一个键不是在0秒时,也会从当前值进行插值(即在运行时动态插值)。
属性说明
- float length
Default |
|
Setter | set_length(value) |
Getter | get_length() |
动画的总长度(单位:秒)。
注意:长度不以最后一个键为界,因为这个键可能在结束前或结束后,以确保正确的插值和循环。
- bool loop
Default |
|
Setter | set_loop(value) |
Getter | has_loop() |
指示动画必须循环的标志。这用于动画循环正确插值,以及提示播放器须重新启动动画。
- float step
Default |
|
Setter | set_step(value) |
Getter | get_step() |
动画步长值。
方法说明
向动画添加轨道。
返回由 key_idx
标识的键处的动画名称。 track_idx
必须是动画轨道的索引。
在给定的time
(以秒为单位)中插入值animation
的键。 track_idx
必须是动画轨道的索引。
将 key_idx
所标识的键设置为 animation
的值。track_idx
必须是动画轨道的索引。
返回由 key_idx
标识的键的结束偏移量。track_idx
必须是音频轨道的索引。
结束偏移是音频流末尾截断的秒数。
返回由 key_idx
标识的键的起始偏移量。track_idx
必须是音频轨道的索引。
起始偏移量是音频流开头截断的秒数。
返回由 key_idx
标识的键的音频流。track_idx
必须是音频轨道的索引。
- int audio_track_insert_key ( int track_idx, float time, Resource stream, float start_offset=0, float end_offset=0 )
在 time
秒处插入音频轨道关键帧。track_idx
必须是音频轨道的索引。
stream
是要播放的 AudioStream 资源。start_offset
是在音频流的开头截断的秒数,而 end_offset
则是在结尾的截断。
将由 key_idx
标识的关键帧的结束偏移设置为值 offset
。参数 track_idx
必须是音频轨道的索引。
将由 key_idx
确定的关键帧的起始偏移量设置为 offset
。参数 track_idx
必须是音频轨道的索引。
将 key_idx
所标识的键流设置为stream
值。track_idx
必须是一个音频轨道的索引。
返回由 key_idx
识别的键的输入句柄, track_idx
必须是 Bezier轨道的索引。
返回由 key_idx
识别的键的输出句柄, track_idx
必须是 Bezier轨道的索引。
返回由 key_idx
识别的键的值, track_idx
必须是 Bezier轨道的索引。
- int bezier_track_insert_key ( int track_idx, float time, float value, Vector2 in_handle=Vector2( 0, 0 ), Vector2 out_handle=Vector2( 0, 0 ) )
在给定的时间
插入一个贝塞尔轨道键,单位为秒。track_idx
必须是 Bezier轨道的索引。
in_handle
是添加的Bezier曲线点的左侧权重,out_handle
是右侧权重,而value
是这个点的实际值。
返回给定 time
处的插值(以秒为单位)。 track_idx
必须是 Bezier轨道的索引。
将 key_idx
所标识的键的 in handle 设置为 in_handle
值。track_idx
必须是 Bezier轨道的索引。
将由 key_idx
确定的关键帧的输出柄设置为 out_handle
。参数 track_idx
必须是贝塞尔曲线轨道的索引。
将 key_idx
所标识的键值设置为给定值。track_idx
必须是 Bezier轨道的索引。
- void clear ( )
清除动画(清除所有轨道并重置所有)。
从to_animation
中添加一个新的轨道,它是给定轨道的副本。
返回指定轨迹的索引。如果没有找到,返回-1。
- int get_track_count ( ) const
返回动画中的曲目量。
- PoolIntArray method_track_get_key_indices ( int track_idx, float time_sec, float delta ) const
返回给定位置和delta时间的方法轨迹的所有关键指数。
返回一个方法轨迹的方法名。
返回给定轨道中给定键的方法轨道上要调用的参数值。
- void remove_track ( int track_idx )
通过指定轨迹索引来删除一个轨迹。
按时间查找给定轨迹中的关键索引。也可选择只在给定准确时间的情况下查找。
如果 idx
处的轨迹包住了内插循环,则返回 true
。新的轨迹默认会包住内插循环。
- InterpolationType track_get_interpolation_type ( int track_idx ) const
返回给定轨迹的插值类型。
返回指定轨道中的键数。
返回钥匙所在的时间。
返回特定键的过渡曲线(缓动)(参阅内置数学函数@GDScript.ease)。
返回给定轨道中给定键的值。
获取轨迹的路径。有关路径格式的详细信息,请参阅track_set_path。
获取轨道的类型。
在指定的轨道中插入一个通用键。
如果启用了索引idx
处的轨迹,则返回true
。
如果给定的轨迹被导入,返回true
。否则,返回false
。
- void track_move_down ( int track_idx )
将轨道下移。
将轨道 idx
的索引位置改为 to_idx
中定义的位置。
- void track_move_up ( int track_idx )
将轨道上移。
在指定的轨道上按索引删除一个键。
按位置(秒)删除指定轨道中的键。
启用/禁用指定的轨道。曲目默认为启用。
将指定的轨道设置为导入或不导入。
如果true
,则idx
处的轨迹包住插值循环。
- void track_set_interpolation_type ( int track_idx, InterpolationType interpolation )
设置指定轨道的内插类型。
设置现有键的时间。
设置特定键的过渡曲线(缓动)(参阅内置数学函数@GDScript.ease)。
设置现有键的值。
设置轨道的路径。路径必须是指向节点场景树的有效路径,必须从将要实现动画的节点的父节点开始指定。控件属性或骨骼的轨道必须在路径后面加上它们的名字,用":"
分隔。
例如,"character/skeleton:ankle"
或"character/mesh:transform/local"
。
将轨道 idx
的索引位置与轨道 with_idx
的索引位置互换。
- int transform_track_insert_key ( int track_idx, float time, Vector3 location, Quat rotation, Vector3 scale )
为变换轨道插入变换键。
返回给定时间内变换轨迹的插值(以秒为单位)。由3个元素组成的数组:position(位置)(Vector3)、rotation(旋转)(Quat)、 scale(缩放)(Vector3)。
- PoolIntArray value_track_get_key_indices ( int track_idx, float time_sec, float delta ) const
返回给定位置和delta时间的价值轨迹的所有关键指数。
- UpdateMode value_track_get_update_mode ( int track_idx ) const
返回值跟踪的更新模式。
返回给定时间处(以秒为单位)的插值。track_idx
必须是一个值轨道的索引。
- void value_track_set_update_mode ( int track_idx, UpdateMode mode )
设置值跟踪的更新模式(参阅UpdateMode)。