跳到主要内容

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之类的节点才能播放。

成员

类型属性名默认值
floatlength1.0
boolloopfalse
floatstep0.1

方法

返回值类型方法名称
intadd_track(type: int, at_position: int = -1)
Stringanimation_track_get_key_animation(track_idx: int, key_idx: int) const
intanimation_track_insert_key(track_idx: int, time: float, animation: String)
voidanimation_track_set_key_animation(track_idx: int, key_idx: int, animation: String)
floataudio_track_get_key_end_offset(track_idx: int, key_idx: int) const
floataudio_track_get_key_start_offset(track_idx: int, key_idx: int) const
Resourceaudio_track_get_key_stream(track_idx: int, key_idx: int) const
intaudio_track_insert_key(track_idx: int, time: float, stream: Resource, start_offset: float = 0, end_offset: float = 0)
voidaudio_track_set_key_end_offset(track_idx: int, key_idx: int, offset: float)
voidaudio_track_set_key_start_offset(track_idx: int, key_idx: int, offset: float)
voidaudio_track_set_key_stream(track_idx: int, key_idx: int, stream: Resource)
Vector2bezier_track_get_key_in_handle(track_idx: int, key_idx: int) const
Vector2bezier_track_get_key_out_handle(track_idx: int, key_idx: int) const
floatbezier_track_get_key_value(track_idx: int, key_idx: int) const
intbezier_track_insert_key(track_idx: int, time: float, value: float, in_handle: Vector2 = Vector2( 0, 0 ), out_handle: Vector2 = Vector2( 0, 0 ))
floatbezier_track_interpolate(track_idx: int, time: float) const
voidbezier_track_set_key_in_handle(track_idx: int, key_idx: int, in_handle: Vector2)
voidbezier_track_set_key_out_handle(track_idx: int, key_idx: int, out_handle: Vector2)
voidbezier_track_set_key_value(track_idx: int, key_idx: int, value: float)
voidclear()
voidcopy_track(track_idx: int, to_animation: Animation)
intfind_track(path: NodePath) const
intget_track_count() const
PoolIntArraymethod_track_get_key_indices(#method-method_track_get_key_indices)(track_idx: int, time_sec: float, delta: float) const
Stringmethod_track_get_name(#method-method_track_get_name)(track_idx: int, key_idx: int) const
Arraymethod_track_get_params(#method-method_track_get_params)(track_idx: int, key_idx: int) const
voidremove_track(track_idx: int)
inttrack_find_key(track_idx: int, time: float, exact: bool = false) const
booltrack_get_interpolation_loop_wrap(track_idx: int) const
inttrack_get_interpolation_type(track_idx: int) const
inttrack_get_key_count(track_idx: int) const
floattrack_get_key_time(track_idx: int, key_idx: int) const
floattrack_get_key_transition(track_idx: int, key_idx: int) const
Varianttrack_get_key_value(track_idx: int, key_idx: int) const
NodePathtrack_get_path(track_idx: int) const
inttrack_get_type(track_idx: int) const
voidtrack_insert_key(track_idx: int, time: float, key: Variant, transition: float = 1)
booltrack_is_enabled(track_idx: int) const
booltrack_is_imported(track_idx: int) const
voidtrack_move_down(track_idx: int)
voidtrack_move_to(track_idx: int, to_idx: int)
voidtrack_move_up(track_idx: int)
voidtrack_remove_key(track_idx: int, key_idx: int)
voidtrack_remove_key_at_position(track_idx: int, position: float)
voidtrack_set_enabled(track_idx: int, enabled: bool)
voidtrack_set_imported(track_idx: int, imported: bool)
voidtrack_set_interpolation_loop_wrap(track_idx: int, interpolation: bool)
voidtrack_set_interpolation_type(track_idx: int, interpolation: int)
voidtrack_set_key_time(track_idx: int, key_idx: int, time: float)
voidtrack_set_key_transition(track_idx: int, key_idx: int, transition: float)
voidtrack_set_key_value(track_idx: int, key: int, value: Variant)
voidtrack_set_path(track_idx: int, path: NodePath)
voidtrack_swap(track_idx: int, with_idx: int)
inttransform_track_insert_key(track_idx: int, time: float, location: Vector3, rotation: Quat, scale: Vector3)
Arraytransform_track_interpolate(track_idx: int, time_sec: float) const
PoolIntArrayvalue_track_get_key_indices(track_idx: int, time_sec: float, delta: float) const
intvalue_track_get_update_mode(track_idx: int) const
voidvalue_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
Default1.0
setterset_length(value)
getterget_length
  • bool loop
Defaultfalse
setterset_loop(value)
getterhas_loop
  • float step
Default0.1
setterset_step(value)
getterget_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])。