Animation
继承
简要描述
包含用于对引擎中所有内容进行动画处理的数据。
描述
动画资源包含用于对引擎中所有内容进行动画处理的数据。动画分为多个动画轨道,每个轨道必须链接到一个节点。该节点的状态可以通过向轨迹添加定时键(事件)来改变。
# This creates an animation that makes the node "Enemy" move to the right by
# 100 pixels in 1 second.
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之类的节点才能播放。
成员
类型 | 属性名 | 默认值 |
---|---|---|
float | length | 1.0 |
bool | loop | false |
float | step | 0.1 |
方法
返回值类型 | 方法名称 |
---|---|
int | add_track(type: int, at_position: int = -1) |
String | animation_track_get_key_animation(track_idx: int, key_idx: int) const |
int | animation_track_insert_key(track_idx: int, time: float, animation: String) |
void | animation_track_set_key_animation(track_idx: int, key_idx: int, animation: String) |
float | audio_track_get_key_end_offset(track_idx: int, key_idx: int) const |
float | audio_track_get_key_start_offset(track_idx: int, key_idx: int) const |
Resource | audio_track_get_key_stream(track_idx: int, key_idx: int) const |
int | audio_track_insert_key(track_idx: int, time: float, stream: Resource, start_offset: float = 0, end_offset: float = 0) |
void | audio_track_set_key_end_offset(track_idx: int, key_idx: int, offset: float) |
void | audio_track_set_key_start_offset(track_idx: int, key_idx: int, offset: float) |
void | audio_track_set_key_stream(track_idx: int, key_idx: int, stream: Resource) |
Vector2 | bezier_track_get_key_in_handle(track_idx: int, key_idx: int) const |
Vector2 | bezier_track_get_key_out_handle(track_idx: int, key_idx: int) const |
float | bezier_track_get_key_value(track_idx: int, key_idx: int) const |
int | bezier_track_insert_key(track_idx: int, time: float, value: float, in_handle: Vector2 = Vector2( 0, 0 ), out_handle: Vector2 = Vector2( 0, 0 )) |
float | bezier_track_interpolate(track_idx: int, time: float) const |
void | bezier_track_set_key_in_handle(track_idx: int, key_idx: int, in_handle: Vector2) |
void | bezier_track_set_key_out_handle(track_idx: int, key_idx: int, out_handle: Vector2) |
void | bezier_track_set_key_value(track_idx: int, key_idx: int, value: float) |
void | clear() |
void | copy_track(track_idx: int, to_animation: Animation) |
int | find_track(path: NodePath) const |
int | get_track_count() const |
PoolIntArray | method_track_get_key_indices(#method-method_track_get_key_indices)(track_idx: int, time_sec: float, delta: float) const |
String | method_track_get_name(#method-method_track_get_name)(track_idx: int, key_idx: int) const |
Array | method_track_get_params(#method-method_track_get_params)(track_idx: int, key_idx: int) const |
void | remove_track(track_idx: int) |
int | track_find_key(track_idx: int, time: float, exact: bool = false) const |
bool | track_get_interpolation_loop_wrap(track_idx: int) const |
int | track_get_interpolation_type(track_idx: int) const |
int | track_get_key_count(track_idx: int) const |
float | track_get_key_time(track_idx: int, key_idx: int) const |
float | track_get_key_transition(track_idx: int, key_idx: int) const |
Variant | track_get_key_value(track_idx: int, key_idx: int) const |
NodePath | track_get_path(track_idx: int) const |
int | track_get_type(track_idx: int) const |
void | track_insert_key(track_idx: int, time: float, key: Variant, transition: float = 1) |
bool | track_is_enabled(track_idx: int) const |
bool | track_is_imported(track_idx: int) const |
void | track_move_down(track_idx: int) |
void | track_move_to(track_idx: int, to_idx: int) |
void | track_move_up(track_idx: int) |
void | track_remove_key(track_idx: int, key_idx: int) |
void | track_remove_key_at_position(track_idx: int, position: float) |
void | track_set_enabled(track_idx: int, enabled: bool) |
void | track_set_imported(track_idx: int, imported: bool) |
void | track_set_interpolation_loop_wrap(track_idx: int, interpolation: bool) |
void | track_set_interpolation_type(track_idx: int, interpolation: int) |
void | track_set_key_time(track_idx: int, key_idx: int, time: float) |
void | track_set_key_transition(track_idx: int, key_idx: int, transition: float) |
void | track_set_key_value(track_idx: int, key: int, value: Variant) |
void | track_set_path(track_idx: int, path: NodePath) |
void | track_swap(track_idx: int, with_idx: int) |
int | transform_track_insert_key(track_idx: int, time: float, location: Vector3, rotation: Quat, scale: Vector3) |
Array | transform_track_interpolate(track_idx: int, time_sec: float) const |
PoolIntArray | value_track_get_key_indices(track_idx: int, time_sec: float, delta: float) const |
int | value_track_get_update_mode(track_idx: int) const |
void | value_track_set_update_mode(track_idx: int, mode: int) |
信号
- **tracks_changed**
枚举
enum TrackType:
- **TYPE_VALUE = 0**
值跟踪节点属性中的设置值,但仅是可以插值的值。
- **TYPE_TRANSFORM = 1**
用于更改节点局部变换或骨骼位姿的变换轨道。该过渡通过插值实现。
- **TYPE_METHOD = 2**
该方法跟踪具有给定参数的每个关键帧的调用函数。
- **TYPE_BEZIER = 3**
- **TYPE_AUDIO = 4**
- **TYPE_ANIMATION = 5**
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**
常量
成员说明
- float length
Default | 1.0 |
---|---|
setter | set_length(value) |
getter | get_length |
- bool loop
Default | false |
---|---|
setter | set_loop(value) |
getter | has_loop |
- float step
Default | 0.1 |
---|---|
setter | set_step(value) |
getter | get_step |
方法说明
- add_track add_track(type: int, at_position: int = -1)
向动画添加轨道。
- animation_track_get_key_animation animation_track_get_key_animation(track_idx: int, key_idx: int) const
- animation_track_insert_key animation_track_insert_key(track_idx: int, time: float, animation: String)
- animation_track_set_key_animation animation_track_set_key_animation(track_idx: int, key_idx: int, animation: String)
- audio_track_get_key_end_offset audio_track_get_key_end_offset(track_idx: int, key_idx: int) const
- audio_track_get_key_start_offset audio_track_get_key_start_offset(track_idx: int, key_idx: int) const
- audio_track_get_key_stream audio_track_get_key_stream(track_idx: int, key_idx: int) const
- audio_track_insert_key audio_track_insert_key(track_idx: int, time: float, stream: Resource, start_offset: float = 0, end_offset: float = 0)
- audio_track_set_key_end_offset audio_track_set_key_end_offset(track_idx: int, key_idx: int, offset: float)
- audio_track_set_key_start_offset audio_track_set_key_start_offset(track_idx: int, key_idx: int, offset: float)
- audio_track_set_key_stream audio_track_set_key_stream(track_idx: int, key_idx: int, stream: Resource)
- bezier_track_get_key_in_handle bezier_track_get_key_in_handle(track_idx: int, key_idx: int) const
- bezier_track_get_key_out_handle bezier_track_get_key_out_handle(track_idx: int, key_idx: int) const
- bezier_track_get_key_value bezier_track_get_key_value(track_idx: int, key_idx: int) const
- bezier_track_insert_key bezier_track_insert_key(track_idx: int, time: float, value: float, in_handle: Vector2 = Vector2( 0, 0 ), out_handle: Vector2 = Vector2( 0, 0 ))
- bezier_track_interpolate bezier_track_interpolate(track_idx: int, time: float) const
- bezier_track_set_key_in_handle bezier_track_set_key_in_handle(track_idx: int, key_idx: int, in_handle: Vector2)
- bezier_track_set_key_out_handle bezier_track_set_key_out_handle(track_idx: int, key_idx: int, out_handle: Vector2)
- bezier_track_set_key_value bezier_track_set_key_value(track_idx: int, key_idx: int, value: float)
- clear clear()
清除动画(清除所有轨道并全部重置)。
- copy_track copy_track(track_idx: int, to_animation: Animation)
添加一个新轨道,该轨道是to_animation
中给定轨道的拷贝副本。
- find_track find_track(path: NodePath) const
返回指定轨道的索引。若未找到该轨道,返回-1。
- get_track_count get_track_count() const
返回动画中的轨道数量。
- method_track_get_key_indices method_track_get_key_indices(track_idx: int, time_sec: float, delta: float) const
返回给定位置和变化时间的方法轨迹的所有关键索引。
- method_track_get_name method_track_get_name(track_idx: int, key_idx: int) const
返回方法轨道的方法名称。
- method_track_get_params method_track_get_params(track_idx: int, key_idx: int) const
返回在给定轨道中给定键的方法轨道上要调用的参数值。
- remove_track remove_track(track_idx: int)
通过指定轨道索引来删除轨道。
- track_find_key track_find_key(track_idx: int, time: float, exact: bool = false) const
在给定轨道中按时间查找关键索引。或者,只有在给出确切时间的情况下才能找到它。
- track_get_interpolation_loop_wrap track_get_interpolation_loop_wrap(track_idx: int) const
如果idx
处的轨道包含内插循环,则返回true
。默认情况下,新轨迹包含插值循环。
- track_get_interpolation_type track_get_interpolation_type(track_idx: int) const
返回给定轨道的插值类型。
- track_get_key_count track_get_key_count(track_idx: int) const
返回给定轨道中的关键点数量。
- track_get_key_time track_get_key_time(track_idx: int, key_idx: int) const
返回关键帧所在的时间。
- track_get_key_transition track_get_key_transition(track_idx: int, key_idx: int) const
返回特定帧的过渡曲线(松弛)(请参阅内置数学函数@IVRScript.ease)。
- track_get_key_value track_get_key_value(track_idx: int, key_idx: int) const
返回给定轨道中给定键的值。
- track_get_path track_get_path(track_idx: int) const
获取轨道的路径。有关路径格式的详细信息,请参阅track_set_path。
- track_get_type track_get_type(track_idx: int) const
获取轨道的类型。
- track_insert_key track_insert_key(track_idx: int, time: float, key: Variant, transition: float = 1)
在给定轨道中插入通用帧。
- track_is_enabled track_is_enabled(track_idx: int) const
如果启用了索引为idx
的轨道,则返回true
。
- track_is_imported track_is_imported(track_idx: int) const
如果导入了给定的轨道,则返回true
。否则返回false
。
- track_move_down track_move_down(track_idx: int)
向下移动轨道。
- track_move_to track_move_to(track_idx: int, to_idx: int)
将轨道idx
的索引位置更改为to_idx
中定义的索引位置。
- track_move_up track_move_up(track_idx: int)
向上移动轨道。
- track_remove_key track_remove_key(track_idx: int, key_idx: int)
按索引删除给定轨道中的关键帧。
- track_remove_key_at_position track_remove_key_at_position(track_idx: int, position: float)
按给定轨道中的位置(秒)移除关键帧。
- track_set_enabled track_set_enabled(track_idx: int, enabled: bool)
启用/禁用给定的轨道。
- track_set_imported track_set_imported(track_idx: int, imported: bool)
将给定的轨道设置为是否导入。
- track_set_interpolation_loop_wrap track_set_interpolation_loop_wrap(track_idx: int, interpolation: bool)
如果true
,则idx
处的轨道将包含插值循环。
- track_set_interpolation_type track_set_interpolation_type(track_idx: int, interpolation: int)
设置给定轨迹的插值类型。
- track_set_key_time track_set_key_time(track_idx: int, key_idx: int, time: float)
设置现有帧的时间。
- track_set_key_transition track_set_key_transition(track_idx: int, key_idx: int, transition: float)
设置特定帧的过渡曲线(松弛)(请参阅内置数学函数@IVRScript.ease)。
- track_set_key_value track_set_key_value(track_idx: int, key: int, value: Variant)
设置现有帧的值。
- track_set_path track_set_path(track_idx: int, path: NodePath)
设置轨道的路径。路径必须是指向节点的有效场景树路径,并且必须从要再现动画节点的父节点开始指定。控制属性或骨骼的轨道必须在路径后附加名称,并用":"
分隔
例如,"character/skeleton:ankle"
或"character/mesh:transform/local"
。
- track_swap track_swap(track_idx: int, with_idx: int)
将轨道idx
的索引位置与轨道with_idx
交换。
- transform_track_insert_key transform_track_insert_key(track_idx: int, time: float, location: Vector3, rotation: Quat, scale: Vector3)
为变换轨道插入变换关键帧。
- transform_track_interpolate transform_track_interpolate(track_idx: int, time_sec: float) const
返回给定时间(以秒为单位)的变换轨道的插值。一个数组包含了三个元素:位置([Vector3]),旋转(Quat)以及尺度([Vector3])。
- value_track_get_key_indices value_track_get_key_indices(track_idx: int, time_sec: float, delta: float) const
给定位置和增量时间,返回值轨道的所有关键索引。
- value_track_get_update_mode value_track_get_update_mode(track_idx: int) const
返回值轨道的更新模式。
- value_track_set_update_mode value_track_set_update_mode(track_idx: int, mode: int)
设置值轨道的更新模式(请参见[UpdateMode])。