跳转至

Animation

继承

Resource

简要描述

包含用于对引擎中所有内容进行动画处理的数据。

描述

动画资源包含用于对引擎中所有内容进行动画处理的数据。动画分为多个动画轨道,每个轨道必须链接到一个节点。该节点的状态可以通过向轨迹添加定时键(事件)来改变。

# 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)

动画只是数据容器,必须将其添加到诸如AnimationPlayerAnimationTreePlayer之类的节点才能播放。

成员

类型 属性名 默认值
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])。