class_animation.rst 56 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551
  1. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  2. .. DO NOT EDIT THIS FILE, but the Animation.xml source instead.
  3. .. The source is found in doc/classes or modules/<name>/doc_classes.
  4. .. _class_Animation:
  5. Animation
  6. =========
  7. **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`Reference<class_Reference>` **<** :ref:`Object<class_Object>`
  8. **Category:** Core
  9. Brief Description
  10. -----------------
  11. Contains data used to animate everything in the engine.
  12. Properties
  13. ----------
  14. +---------------------------+---------------------------------------+
  15. | :ref:`float<class_float>` | :ref:`length<class_Animation_length>` |
  16. +---------------------------+---------------------------------------+
  17. | :ref:`bool<class_bool>` | :ref:`loop<class_Animation_loop>` |
  18. +---------------------------+---------------------------------------+
  19. | :ref:`float<class_float>` | :ref:`step<class_Animation_step>` |
  20. +---------------------------+---------------------------------------+
  21. Methods
  22. -------
  23. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  24. | :ref:`int<class_int>` | :ref:`add_track<class_Animation_add_track>` **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)** |
  25. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  26. | :ref:`String<class_String>` | :ref:`animation_track_get_key_animation<class_Animation_animation_track_get_key_animation>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  27. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  28. | :ref:`int<class_int>` | :ref:`animation_track_insert_key<class_Animation_animation_track_insert_key>` **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time, :ref:`String<class_String>` animation **)** |
  29. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  30. | void | :ref:`animation_track_set_key_animation<class_Animation_animation_track_set_key_animation>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`String<class_String>` animation **)** |
  31. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  32. | :ref:`float<class_float>` | :ref:`audio_track_get_key_end_offset<class_Animation_audio_track_get_key_end_offset>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  33. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  34. | :ref:`float<class_float>` | :ref:`audio_track_get_key_start_offset<class_Animation_audio_track_get_key_start_offset>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  35. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  36. | :ref:`Resource<class_Resource>` | :ref:`audio_track_get_key_stream<class_Animation_audio_track_get_key_stream>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  37. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  38. | :ref:`int<class_int>` | :ref:`audio_track_insert_key<class_Animation_audio_track_insert_key>` **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)** |
  39. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  40. | void | :ref:`audio_track_set_key_end_offset<class_Animation_audio_track_set_key_end_offset>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)** |
  41. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  42. | void | :ref:`audio_track_set_key_start_offset<class_Animation_audio_track_set_key_start_offset>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)** |
  43. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  44. | void | :ref:`audio_track_set_key_stream<class_Animation_audio_track_set_key_stream>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)** |
  45. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  46. | :ref:`Vector2<class_Vector2>` | :ref:`bezier_track_get_key_in_handle<class_Animation_bezier_track_get_key_in_handle>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  47. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  48. | :ref:`Vector2<class_Vector2>` | :ref:`bezier_track_get_key_out_handle<class_Animation_bezier_track_get_key_out_handle>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  49. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  50. | :ref:`float<class_float>` | :ref:`bezier_track_get_key_value<class_Animation_bezier_track_get_key_value>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  51. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  52. | :ref:`int<class_int>` | :ref:`bezier_track_insert_key<class_Animation_bezier_track_insert_key>` **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2( 0, 0 ), :ref:`Vector2<class_Vector2>` out_handle=Vector2( 0, 0 ) **)** |
  53. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  54. | :ref:`float<class_float>` | :ref:`bezier_track_interpolate<class_Animation_bezier_track_interpolate>` **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time **)** const |
  55. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  56. | void | :ref:`bezier_track_set_key_in_handle<class_Animation_bezier_track_set_key_in_handle>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle **)** |
  57. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  58. | void | :ref:`bezier_track_set_key_out_handle<class_Animation_bezier_track_set_key_out_handle>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle **)** |
  59. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  60. | void | :ref:`bezier_track_set_key_value<class_Animation_bezier_track_set_key_value>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)** |
  61. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  62. | void | :ref:`clear<class_Animation_clear>` **(** **)** |
  63. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  64. | void | :ref:`copy_track<class_Animation_copy_track>` **(** :ref:`int<class_int>` track, :ref:`Animation<class_Animation>` to_animation **)** |
  65. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  66. | :ref:`int<class_int>` | :ref:`find_track<class_Animation_find_track>` **(** :ref:`NodePath<class_NodePath>` path **)** const |
  67. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  68. | :ref:`int<class_int>` | :ref:`get_track_count<class_Animation_get_track_count>` **(** **)** const |
  69. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  70. | :ref:`PoolIntArray<class_PoolIntArray>` | :ref:`method_track_get_key_indices<class_Animation_method_track_get_key_indices>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** const |
  71. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  72. | :ref:`String<class_String>` | :ref:`method_track_get_name<class_Animation_method_track_get_name>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  73. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  74. | :ref:`Array<class_Array>` | :ref:`method_track_get_params<class_Animation_method_track_get_params>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  75. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  76. | void | :ref:`remove_track<class_Animation_remove_track>` **(** :ref:`int<class_int>` idx **)** |
  77. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  78. | :ref:`int<class_int>` | :ref:`track_find_key<class_Animation_track_find_key>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** const |
  79. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  80. | :ref:`bool<class_bool>` | :ref:`track_get_interpolation_loop_wrap<class_Animation_track_get_interpolation_loop_wrap>` **(** :ref:`int<class_int>` idx **)** const |
  81. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  82. | :ref:`InterpolationType<enum_Animation_InterpolationType>` | :ref:`track_get_interpolation_type<class_Animation_track_get_interpolation_type>` **(** :ref:`int<class_int>` idx **)** const |
  83. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  84. | :ref:`int<class_int>` | :ref:`track_get_key_count<class_Animation_track_get_key_count>` **(** :ref:`int<class_int>` idx **)** const |
  85. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  86. | :ref:`float<class_float>` | :ref:`track_get_key_time<class_Animation_track_get_key_time>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  87. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  88. | :ref:`float<class_float>` | :ref:`track_get_key_transition<class_Animation_track_get_key_transition>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  89. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  90. | :ref:`Variant<class_Variant>` | :ref:`track_get_key_value<class_Animation_track_get_key_value>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const |
  91. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  92. | :ref:`NodePath<class_NodePath>` | :ref:`track_get_path<class_Animation_track_get_path>` **(** :ref:`int<class_int>` idx **)** const |
  93. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  94. | :ref:`TrackType<enum_Animation_TrackType>` | :ref:`track_get_type<class_Animation_track_get_type>` **(** :ref:`int<class_int>` idx **)** const |
  95. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  96. | void | :ref:`track_insert_key<class_Animation_track_insert_key>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)** |
  97. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  98. | :ref:`bool<class_bool>` | :ref:`track_is_enabled<class_Animation_track_is_enabled>` **(** :ref:`int<class_int>` idx **)** const |
  99. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  100. | :ref:`bool<class_bool>` | :ref:`track_is_imported<class_Animation_track_is_imported>` **(** :ref:`int<class_int>` idx **)** const |
  101. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  102. | void | :ref:`track_move_down<class_Animation_track_move_down>` **(** :ref:`int<class_int>` idx **)** |
  103. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  104. | void | :ref:`track_move_up<class_Animation_track_move_up>` **(** :ref:`int<class_int>` idx **)** |
  105. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  106. | void | :ref:`track_remove_key<class_Animation_track_remove_key>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** |
  107. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  108. | void | :ref:`track_remove_key_at_position<class_Animation_track_remove_key_at_position>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` position **)** |
  109. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  110. | void | :ref:`track_set_enabled<class_Animation_track_set_enabled>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enabled **)** |
  111. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  112. | void | :ref:`track_set_imported<class_Animation_track_set_imported>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` imported **)** |
  113. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  114. | void | :ref:`track_set_interpolation_loop_wrap<class_Animation_track_set_interpolation_loop_wrap>` **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` interpolation **)** |
  115. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  116. | void | :ref:`track_set_interpolation_type<class_Animation_track_set_interpolation_type>` **(** :ref:`int<class_int>` idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)** |
  117. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  118. | void | :ref:`track_set_key_transition<class_Animation_track_set_key_transition>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)** |
  119. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  120. | void | :ref:`track_set_key_value<class_Animation_track_set_key_value>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)** |
  121. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  122. | void | :ref:`track_set_path<class_Animation_track_set_path>` **(** :ref:`int<class_int>` idx, :ref:`NodePath<class_NodePath>` path **)** |
  123. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  124. | void | :ref:`track_swap<class_Animation_track_swap>` **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` with_idx **)** |
  125. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  126. | :ref:`int<class_int>` | :ref:`transform_track_insert_key<class_Animation_transform_track_insert_key>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` location, :ref:`Quat<class_Quat>` rotation, :ref:`Vector3<class_Vector3>` scale **)** |
  127. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  128. | :ref:`Array<class_Array>` | :ref:`transform_track_interpolate<class_Animation_transform_track_interpolate>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time_sec **)** const |
  129. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  130. | :ref:`PoolIntArray<class_PoolIntArray>` | :ref:`value_track_get_key_indices<class_Animation_value_track_get_key_indices>` **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** const |
  131. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  132. | :ref:`UpdateMode<enum_Animation_UpdateMode>` | :ref:`value_track_get_update_mode<class_Animation_value_track_get_update_mode>` **(** :ref:`int<class_int>` idx **)** const |
  133. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  134. | void | :ref:`value_track_set_update_mode<class_Animation_value_track_set_update_mode>` **(** :ref:`int<class_int>` idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)** |
  135. +-------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  136. Enumerations
  137. ------------
  138. .. _enum_Animation_UpdateMode:
  139. enum **UpdateMode**:
  140. - **UPDATE_CONTINUOUS** = **0** --- Update between keyframes.
  141. - **UPDATE_DISCRETE** = **1** --- Update at the keyframes and hold the value.
  142. - **UPDATE_TRIGGER** = **2** --- Update at the keyframes.
  143. - **UPDATE_CAPTURE** = **3**
  144. .. _enum_Animation_InterpolationType:
  145. enum **InterpolationType**:
  146. - **INTERPOLATION_NEAREST** = **0** --- No interpolation (nearest value).
  147. - **INTERPOLATION_LINEAR** = **1** --- Linear interpolation.
  148. - **INTERPOLATION_CUBIC** = **2** --- Cubic interpolation.
  149. .. _enum_Animation_TrackType:
  150. enum **TrackType**:
  151. - **TYPE_VALUE** = **0** --- Value tracks set values in node properties, but only those which can be Interpolated.
  152. - **TYPE_TRANSFORM** = **1** --- Transform tracks are used to change node local transforms or skeleton pose bones. Transitions are Interpolated.
  153. - **TYPE_METHOD** = **2** --- Method tracks call functions with given arguments per key.
  154. - **TYPE_BEZIER** = **3**
  155. - **TYPE_AUDIO** = **4**
  156. - **TYPE_ANIMATION** = **5**
  157. Description
  158. -----------
  159. An Animation resource contains data used to animate everything in the engine. Animations are divided into tracks, and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track.
  160. ::
  161. # This creates an animation that makes the node "Enemy" move to the right by
  162. # 100 pixels in 1 second.
  163. var animation = Animation.new()
  164. var track_index = animation.add_track(Animation.TYPE_VALUE)
  165. animation.track_set_path(track_index, "Enemy:position.x")
  166. animation.track_insert_key(track_index, 0.0, 0)
  167. animation.track_insert_key(track_index, 0.5, 100)
  168. Animations are just data containers, and must be added to nodes such as an :ref:`AnimationPlayer<class_AnimationPlayer>` or :ref:`AnimationTreePlayer<class_AnimationTreePlayer>` to be played back.
  169. Tutorials
  170. ---------
  171. - :doc:`../tutorials/animation/index`
  172. Property Descriptions
  173. ---------------------
  174. .. _class_Animation_length:
  175. - :ref:`float<class_float>` **length**
  176. +----------+-------------------+
  177. | *Setter* | set_length(value) |
  178. +----------+-------------------+
  179. | *Getter* | get_length() |
  180. +----------+-------------------+
  181. The total length of the animation (in seconds). Note that length is not delimited by the last key, as this one may be before or after the end to ensure correct interpolation and looping.
  182. .. _class_Animation_loop:
  183. - :ref:`bool<class_bool>` **loop**
  184. +----------+-----------------+
  185. | *Setter* | set_loop(value) |
  186. +----------+-----------------+
  187. | *Getter* | has_loop() |
  188. +----------+-----------------+
  189. A flag indicating that the animation must loop. This is uses for correct interpolation of animation cycles, and for hinting the player that it must restart the animation.
  190. .. _class_Animation_step:
  191. - :ref:`float<class_float>` **step**
  192. +----------+-----------------+
  193. | *Setter* | set_step(value) |
  194. +----------+-----------------+
  195. | *Getter* | get_step() |
  196. +----------+-----------------+
  197. The animation step value.
  198. Method Descriptions
  199. -------------------
  200. .. _class_Animation_add_track:
  201. - :ref:`int<class_int>` **add_track** **(** :ref:`TrackType<enum_Animation_TrackType>` type, :ref:`int<class_int>` at_position=-1 **)**
  202. Add a track to the Animation. The track type must be specified as any of the values in the TYPE\_\* enumeration.
  203. .. _class_Animation_animation_track_get_key_animation:
  204. - :ref:`String<class_String>` **animation_track_get_key_animation** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  205. .. _class_Animation_animation_track_insert_key:
  206. - :ref:`int<class_int>` **animation_track_insert_key** **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time, :ref:`String<class_String>` animation **)**
  207. .. _class_Animation_animation_track_set_key_animation:
  208. - void **animation_track_set_key_animation** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`String<class_String>` animation **)**
  209. .. _class_Animation_audio_track_get_key_end_offset:
  210. - :ref:`float<class_float>` **audio_track_get_key_end_offset** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  211. .. _class_Animation_audio_track_get_key_start_offset:
  212. - :ref:`float<class_float>` **audio_track_get_key_start_offset** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  213. .. _class_Animation_audio_track_get_key_stream:
  214. - :ref:`Resource<class_Resource>` **audio_track_get_key_stream** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  215. .. _class_Animation_audio_track_insert_key:
  216. - :ref:`int<class_int>` **audio_track_insert_key** **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time, :ref:`Resource<class_Resource>` stream, :ref:`float<class_float>` start_offset=0, :ref:`float<class_float>` end_offset=0 **)**
  217. .. _class_Animation_audio_track_set_key_end_offset:
  218. - void **audio_track_set_key_end_offset** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**
  219. .. _class_Animation_audio_track_set_key_start_offset:
  220. - void **audio_track_set_key_start_offset** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` offset **)**
  221. .. _class_Animation_audio_track_set_key_stream:
  222. - void **audio_track_set_key_stream** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`Resource<class_Resource>` stream **)**
  223. .. _class_Animation_bezier_track_get_key_in_handle:
  224. - :ref:`Vector2<class_Vector2>` **bezier_track_get_key_in_handle** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  225. .. _class_Animation_bezier_track_get_key_out_handle:
  226. - :ref:`Vector2<class_Vector2>` **bezier_track_get_key_out_handle** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  227. .. _class_Animation_bezier_track_get_key_value:
  228. - :ref:`float<class_float>` **bezier_track_get_key_value** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  229. .. _class_Animation_bezier_track_insert_key:
  230. - :ref:`int<class_int>` **bezier_track_insert_key** **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time, :ref:`float<class_float>` value, :ref:`Vector2<class_Vector2>` in_handle=Vector2( 0, 0 ), :ref:`Vector2<class_Vector2>` out_handle=Vector2( 0, 0 ) **)**
  231. .. _class_Animation_bezier_track_interpolate:
  232. - :ref:`float<class_float>` **bezier_track_interpolate** **(** :ref:`int<class_int>` track, :ref:`float<class_float>` time **)** const
  233. .. _class_Animation_bezier_track_set_key_in_handle:
  234. - void **bezier_track_set_key_in_handle** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` in_handle **)**
  235. .. _class_Animation_bezier_track_set_key_out_handle:
  236. - void **bezier_track_set_key_out_handle** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`Vector2<class_Vector2>` out_handle **)**
  237. .. _class_Animation_bezier_track_set_key_value:
  238. - void **bezier_track_set_key_value** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` value **)**
  239. .. _class_Animation_clear:
  240. - void **clear** **(** **)**
  241. Clear the animation (clear all tracks and reset all).
  242. .. _class_Animation_copy_track:
  243. - void **copy_track** **(** :ref:`int<class_int>` track, :ref:`Animation<class_Animation>` to_animation **)**
  244. Adds a new track that is a copy of the given track from ``to_animation``.
  245. .. _class_Animation_find_track:
  246. - :ref:`int<class_int>` **find_track** **(** :ref:`NodePath<class_NodePath>` path **)** const
  247. Return the index of the specified track. If the track is not found, return -1.
  248. .. _class_Animation_get_track_count:
  249. - :ref:`int<class_int>` **get_track_count** **(** **)** const
  250. Return the amount of tracks in the animation.
  251. .. _class_Animation_method_track_get_key_indices:
  252. - :ref:`PoolIntArray<class_PoolIntArray>` **method_track_get_key_indices** **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** const
  253. Return all the key indices of a method track, given a position and delta time.
  254. .. _class_Animation_method_track_get_name:
  255. - :ref:`String<class_String>` **method_track_get_name** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  256. Return the method name of a method track.
  257. .. _class_Animation_method_track_get_params:
  258. - :ref:`Array<class_Array>` **method_track_get_params** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  259. Return the arguments values to be called on a method track for a given key in a given track.
  260. .. _class_Animation_remove_track:
  261. - void **remove_track** **(** :ref:`int<class_int>` idx **)**
  262. Remove a track by specifying the track index.
  263. .. _class_Animation_track_find_key:
  264. - :ref:`int<class_int>` **track_find_key** **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time, :ref:`bool<class_bool>` exact=false **)** const
  265. Find the key index by time in a given track. Optionally, only find it if the exact time is given.
  266. .. _class_Animation_track_get_interpolation_loop_wrap:
  267. - :ref:`bool<class_bool>` **track_get_interpolation_loop_wrap** **(** :ref:`int<class_int>` idx **)** const
  268. Returns ``true`` if the track at ``idx`` wraps the interpolation loop. Default value: ``true``.
  269. .. _class_Animation_track_get_interpolation_type:
  270. - :ref:`InterpolationType<enum_Animation_InterpolationType>` **track_get_interpolation_type** **(** :ref:`int<class_int>` idx **)** const
  271. Return the interpolation type of a given track, from the INTERPOLATION\_\* enum.
  272. .. _class_Animation_track_get_key_count:
  273. - :ref:`int<class_int>` **track_get_key_count** **(** :ref:`int<class_int>` idx **)** const
  274. Return the amount of keys in a given track.
  275. .. _class_Animation_track_get_key_time:
  276. - :ref:`float<class_float>` **track_get_key_time** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  277. Return the time at which the key is located.
  278. .. _class_Animation_track_get_key_transition:
  279. - :ref:`float<class_float>` **track_get_key_transition** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  280. Return the transition curve (easing) for a specific key (see built-in math function "ease").
  281. .. _class_Animation_track_get_key_value:
  282. - :ref:`Variant<class_Variant>` **track_get_key_value** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)** const
  283. Return the value of a given key in a given track.
  284. .. _class_Animation_track_get_path:
  285. - :ref:`NodePath<class_NodePath>` **track_get_path** **(** :ref:`int<class_int>` idx **)** const
  286. Get the path of a track. for more information on the path format, see :ref:`track_set_path<class_Animation_track_set_path>`
  287. .. _class_Animation_track_get_type:
  288. - :ref:`TrackType<enum_Animation_TrackType>` **track_get_type** **(** :ref:`int<class_int>` idx **)** const
  289. Get the type of a track.
  290. .. _class_Animation_track_insert_key:
  291. - void **track_insert_key** **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time, :ref:`Variant<class_Variant>` key, :ref:`float<class_float>` transition=1 **)**
  292. Insert a generic key in a given track.
  293. .. _class_Animation_track_is_enabled:
  294. - :ref:`bool<class_bool>` **track_is_enabled** **(** :ref:`int<class_int>` idx **)** const
  295. Returns ``true`` if the track at index ``idx`` is enabled.
  296. .. _class_Animation_track_is_imported:
  297. - :ref:`bool<class_bool>` **track_is_imported** **(** :ref:`int<class_int>` idx **)** const
  298. Return true if the given track is imported. Else, return false.
  299. .. _class_Animation_track_move_down:
  300. - void **track_move_down** **(** :ref:`int<class_int>` idx **)**
  301. Move a track down.
  302. .. _class_Animation_track_move_up:
  303. - void **track_move_up** **(** :ref:`int<class_int>` idx **)**
  304. Move a track up.
  305. .. _class_Animation_track_remove_key:
  306. - void **track_remove_key** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx **)**
  307. Remove a key by index in a given track.
  308. .. _class_Animation_track_remove_key_at_position:
  309. - void **track_remove_key_at_position** **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` position **)**
  310. Remove a key by position (seconds) in a given track.
  311. .. _class_Animation_track_set_enabled:
  312. - void **track_set_enabled** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` enabled **)**
  313. Enables/disables the given track. Tracks are enabled by default.
  314. .. _class_Animation_track_set_imported:
  315. - void **track_set_imported** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` imported **)**
  316. Set the given track as imported or not.
  317. .. _class_Animation_track_set_interpolation_loop_wrap:
  318. - void **track_set_interpolation_loop_wrap** **(** :ref:`int<class_int>` idx, :ref:`bool<class_bool>` interpolation **)**
  319. If ``true`` the track at ``idx`` wraps the interpolation loop.
  320. .. _class_Animation_track_set_interpolation_type:
  321. - void **track_set_interpolation_type** **(** :ref:`int<class_int>` idx, :ref:`InterpolationType<enum_Animation_InterpolationType>` interpolation **)**
  322. Set the interpolation type of a given track, from the INTERPOLATION\_\* enum.
  323. .. _class_Animation_track_set_key_transition:
  324. - void **track_set_key_transition** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key_idx, :ref:`float<class_float>` transition **)**
  325. Set the transition curve (easing) for a specific key (see built-in math function "ease").
  326. .. _class_Animation_track_set_key_value:
  327. - void **track_set_key_value** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` key, :ref:`Variant<class_Variant>` value **)**
  328. Set the value of an existing key.
  329. .. _class_Animation_track_set_path:
  330. - void **track_set_path** **(** :ref:`int<class_int>` idx, :ref:`NodePath<class_NodePath>` path **)**
  331. Set the path of a track. Paths must be valid scene-tree paths to a node, and must be specified starting from the parent node of the node that will reproduce the animation. Tracks that control properties or bones must append their name after the path, separated by ":".
  332. **Example:** "character/skeleton:ankle" or "character/mesh:transform/local".
  333. .. _class_Animation_track_swap:
  334. - void **track_swap** **(** :ref:`int<class_int>` idx, :ref:`int<class_int>` with_idx **)**
  335. .. _class_Animation_transform_track_insert_key:
  336. - :ref:`int<class_int>` **transform_track_insert_key** **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time, :ref:`Vector3<class_Vector3>` location, :ref:`Quat<class_Quat>` rotation, :ref:`Vector3<class_Vector3>` scale **)**
  337. Insert a transform key for a transform track.
  338. .. _class_Animation_transform_track_interpolate:
  339. - :ref:`Array<class_Array>` **transform_track_interpolate** **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time_sec **)** const
  340. Return the interpolated value of a transform track at a given time (in seconds). An array consisting of 3 elements: position (:ref:`Vector3<class_Vector3>`), rotation (:ref:`Quat<class_Quat>`) and scale (:ref:`Vector3<class_Vector3>`).
  341. .. _class_Animation_value_track_get_key_indices:
  342. - :ref:`PoolIntArray<class_PoolIntArray>` **value_track_get_key_indices** **(** :ref:`int<class_int>` idx, :ref:`float<class_float>` time_sec, :ref:`float<class_float>` delta **)** const
  343. Return all the key indices of a value track, given a position and delta time.
  344. .. _class_Animation_value_track_get_update_mode:
  345. - :ref:`UpdateMode<enum_Animation_UpdateMode>` **value_track_get_update_mode** **(** :ref:`int<class_int>` idx **)** const
  346. Return the update mode of a value track.
  347. .. _class_Animation_value_track_set_update_mode:
  348. - void **value_track_set_update_mode** **(** :ref:`int<class_int>` idx, :ref:`UpdateMode<enum_Animation_UpdateMode>` mode **)**
  349. Set the update mode (UPDATE\_\*) of a value track.