class_animationplayer.rst 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474
  1. :github_url: hide
  2. .. Generated automatically by doc/tools/makerst.py in Godot's source tree.
  3. .. DO NOT EDIT THIS FILE, but the AnimationPlayer.xml source instead.
  4. .. The source is found in doc/classes or modules/<name>/doc_classes.
  5. .. _class_AnimationPlayer:
  6. AnimationPlayer
  7. ===============
  8. **Inherits:** :ref:`Node<class_Node>` **<** :ref:`Object<class_Object>`
  9. **Category:** Core
  10. Brief Description
  11. -----------------
  12. Container and player of :ref:`Animation<class_Animation>` resources.
  13. Properties
  14. ----------
  15. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  16. | :ref:`String<class_String>` | :ref:`assigned_animation<class_AnimationPlayer_property_assigned_animation>` |
  17. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  18. | :ref:`String<class_String>` | :ref:`autoplay<class_AnimationPlayer_property_autoplay>` |
  19. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  20. | :ref:`String<class_String>` | :ref:`current_animation<class_AnimationPlayer_property_current_animation>` |
  21. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  22. | :ref:`float<class_float>` | :ref:`current_animation_length<class_AnimationPlayer_property_current_animation_length>` |
  23. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  24. | :ref:`float<class_float>` | :ref:`current_animation_position<class_AnimationPlayer_property_current_animation_position>` |
  25. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  26. | :ref:`bool<class_bool>` | :ref:`playback_active<class_AnimationPlayer_property_playback_active>` |
  27. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  28. | :ref:`float<class_float>` | :ref:`playback_default_blend_time<class_AnimationPlayer_property_playback_default_blend_time>` |
  29. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  30. | :ref:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` | :ref:`playback_process_mode<class_AnimationPlayer_property_playback_process_mode>` |
  31. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  32. | :ref:`float<class_float>` | :ref:`playback_speed<class_AnimationPlayer_property_playback_speed>` |
  33. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  34. | :ref:`NodePath<class_NodePath>` | :ref:`root_node<class_AnimationPlayer_property_root_node>` |
  35. +------------------------------------------------------------------------+------------------------------------------------------------------------------------------------+
  36. Methods
  37. -------
  38. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`Error<enum_@GlobalScope_Error>` | :ref:`add_animation<class_AnimationPlayer_method_add_animation>` **(** :ref:`String<class_String>` name, :ref:`Animation<class_Animation>` animation **)** |
  40. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | void | :ref:`advance<class_AnimationPlayer_method_advance>` **(** :ref:`float<class_float>` delta **)** |
  42. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | :ref:`String<class_String>` | :ref:`animation_get_next<class_AnimationPlayer_method_animation_get_next>` **(** :ref:`String<class_String>` anim_from **)** const |
  44. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | void | :ref:`animation_set_next<class_AnimationPlayer_method_animation_set_next>` **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)** |
  46. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | void | :ref:`clear_caches<class_AnimationPlayer_method_clear_caches>` **(** **)** |
  48. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | void | :ref:`clear_queue<class_AnimationPlayer_method_clear_queue>` **(** **)** |
  50. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | :ref:`String<class_String>` | :ref:`find_animation<class_AnimationPlayer_method_find_animation>` **(** :ref:`Animation<class_Animation>` animation **)** const |
  52. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`Animation<class_Animation>` | :ref:`get_animation<class_AnimationPlayer_method_get_animation>` **(** :ref:`String<class_String>` name **)** const |
  54. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_animation_list<class_AnimationPlayer_method_get_animation_list>` **(** **)** const |
  56. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | :ref:`float<class_float>` | :ref:`get_blend_time<class_AnimationPlayer_method_get_blend_time>` **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)** const |
  58. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | :ref:`float<class_float>` | :ref:`get_playing_speed<class_AnimationPlayer_method_get_playing_speed>` **(** **)** const |
  60. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | :ref:`PoolStringArray<class_PoolStringArray>` | :ref:`get_queue<class_AnimationPlayer_method_get_queue>` **(** **)** |
  62. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | :ref:`bool<class_bool>` | :ref:`has_animation<class_AnimationPlayer_method_has_animation>` **(** :ref:`String<class_String>` name **)** const |
  64. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | :ref:`bool<class_bool>` | :ref:`is_playing<class_AnimationPlayer_method_is_playing>` **(** **)** const |
  66. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | void | :ref:`play<class_AnimationPlayer_method_play>` **(** :ref:`String<class_String>` name="", :ref:`float<class_float>` custom_blend=-1, :ref:`float<class_float>` custom_speed=1.0, :ref:`bool<class_bool>` from_end=false **)** |
  68. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | void | :ref:`play_backwards<class_AnimationPlayer_method_play_backwards>` **(** :ref:`String<class_String>` name="", :ref:`float<class_float>` custom_blend=-1 **)** |
  70. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. | void | :ref:`queue<class_AnimationPlayer_method_queue>` **(** :ref:`String<class_String>` name **)** |
  72. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  73. | void | :ref:`remove_animation<class_AnimationPlayer_method_remove_animation>` **(** :ref:`String<class_String>` name **)** |
  74. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  75. | void | :ref:`rename_animation<class_AnimationPlayer_method_rename_animation>` **(** :ref:`String<class_String>` name, :ref:`String<class_String>` newname **)** |
  76. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  77. | void | :ref:`seek<class_AnimationPlayer_method_seek>` **(** :ref:`float<class_float>` seconds, :ref:`bool<class_bool>` update=false **)** |
  78. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  79. | void | :ref:`set_blend_time<class_AnimationPlayer_method_set_blend_time>` **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to, :ref:`float<class_float>` sec **)** |
  80. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  81. | void | :ref:`stop<class_AnimationPlayer_method_stop>` **(** :ref:`bool<class_bool>` reset=true **)** |
  82. +-----------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  83. Signals
  84. -------
  85. .. _class_AnimationPlayer_signal_animation_changed:
  86. - **animation_changed** **(** :ref:`String<class_String>` old_name, :ref:`String<class_String>` new_name **)**
  87. If the currently being played animation changes, this signal will notify of such change.
  88. ----
  89. .. _class_AnimationPlayer_signal_animation_finished:
  90. - **animation_finished** **(** :ref:`String<class_String>` anim_name **)**
  91. Notifies when an animation finished playing.
  92. ----
  93. .. _class_AnimationPlayer_signal_animation_started:
  94. - **animation_started** **(** :ref:`String<class_String>` anim_name **)**
  95. Notifies when an animation starts playing.
  96. ----
  97. .. _class_AnimationPlayer_signal_caches_cleared:
  98. - **caches_cleared** **(** **)**
  99. Enumerations
  100. ------------
  101. .. _enum_AnimationPlayer_AnimationProcessMode:
  102. .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_PHYSICS:
  103. .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_IDLE:
  104. .. _class_AnimationPlayer_constant_ANIMATION_PROCESS_MANUAL:
  105. enum **AnimationProcessMode**:
  106. - **ANIMATION_PROCESS_PHYSICS** = **0** --- Process animation during the physics process. This is especially useful when animating physics bodies.
  107. - **ANIMATION_PROCESS_IDLE** = **1** --- Process animation during the idle process.
  108. - **ANIMATION_PROCESS_MANUAL** = **2** --- Do not process animation. Use the 'advance' method to process the animation manually.
  109. Description
  110. -----------
  111. An animation player is used for general purpose playback of :ref:`Animation<class_Animation>` resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in different channels.
  112. Tutorials
  113. ---------
  114. - :doc:`../getting_started/step_by_step/animations`
  115. - :doc:`../tutorials/animation/index`
  116. Property Descriptions
  117. ---------------------
  118. .. _class_AnimationPlayer_property_assigned_animation:
  119. - :ref:`String<class_String>` **assigned_animation**
  120. +----------+-------------------------------+
  121. | *Setter* | set_assigned_animation(value) |
  122. +----------+-------------------------------+
  123. | *Getter* | get_assigned_animation() |
  124. +----------+-------------------------------+
  125. If playing, the current animation; otherwise, the animation last played. When set, would change the animation, but would not play it unless currently playing. See also :ref:`current_animation<class_AnimationPlayer_property_current_animation>`.
  126. ----
  127. .. _class_AnimationPlayer_property_autoplay:
  128. - :ref:`String<class_String>` **autoplay**
  129. +----------+---------------------+
  130. | *Setter* | set_autoplay(value) |
  131. +----------+---------------------+
  132. | *Getter* | get_autoplay() |
  133. +----------+---------------------+
  134. The name of the animation to play when the scene loads. Default value: ``""``.
  135. ----
  136. .. _class_AnimationPlayer_property_current_animation:
  137. - :ref:`String<class_String>` **current_animation**
  138. +----------+------------------------------+
  139. | *Setter* | set_current_animation(value) |
  140. +----------+------------------------------+
  141. | *Getter* | get_current_animation() |
  142. +----------+------------------------------+
  143. The name of the current animation, "" if not playing anything. When being set, does not restart the animation. See also :ref:`play<class_AnimationPlayer_method_play>`. Default value: ``""``.
  144. ----
  145. .. _class_AnimationPlayer_property_current_animation_length:
  146. - :ref:`float<class_float>` **current_animation_length**
  147. +----------+--------------------------------+
  148. | *Getter* | get_current_animation_length() |
  149. +----------+--------------------------------+
  150. The length (in seconds) of the currently being played animation.
  151. ----
  152. .. _class_AnimationPlayer_property_current_animation_position:
  153. - :ref:`float<class_float>` **current_animation_position**
  154. +----------+----------------------------------+
  155. | *Getter* | get_current_animation_position() |
  156. +----------+----------------------------------+
  157. The position (in seconds) of the currently playing animation.
  158. ----
  159. .. _class_AnimationPlayer_property_playback_active:
  160. - :ref:`bool<class_bool>` **playback_active**
  161. +----------+-------------------+
  162. | *Setter* | set_active(value) |
  163. +----------+-------------------+
  164. | *Getter* | is_active() |
  165. +----------+-------------------+
  166. If ``true``, updates animations in response to process-related notifications. Default value: ``true``.
  167. ----
  168. .. _class_AnimationPlayer_property_playback_default_blend_time:
  169. - :ref:`float<class_float>` **playback_default_blend_time**
  170. +----------+-------------------------------+
  171. | *Setter* | set_default_blend_time(value) |
  172. +----------+-------------------------------+
  173. | *Getter* | get_default_blend_time() |
  174. +----------+-------------------------------+
  175. The default time in which to blend animations. Ranges from 0 to 4096 with 0.01 precision. Default value: ``0``.
  176. ----
  177. .. _class_AnimationPlayer_property_playback_process_mode:
  178. - :ref:`AnimationProcessMode<enum_AnimationPlayer_AnimationProcessMode>` **playback_process_mode**
  179. +----------+-----------------------------------+
  180. | *Setter* | set_animation_process_mode(value) |
  181. +----------+-----------------------------------+
  182. | *Getter* | get_animation_process_mode() |
  183. +----------+-----------------------------------+
  184. The process notification in which to update animations. Default value: :ref:`ANIMATION_PROCESS_IDLE<class_AnimationPlayer_constant_ANIMATION_PROCESS_IDLE>`.
  185. ----
  186. .. _class_AnimationPlayer_property_playback_speed:
  187. - :ref:`float<class_float>` **playback_speed**
  188. +----------+------------------------+
  189. | *Setter* | set_speed_scale(value) |
  190. +----------+------------------------+
  191. | *Getter* | get_speed_scale() |
  192. +----------+------------------------+
  193. The speed scaling ratio. For instance, if this value is 1 then the animation plays at normal speed. If it's 0.5 then it plays at half speed. If it's 2 then it plays at double speed. Default value: ``1``.
  194. ----
  195. .. _class_AnimationPlayer_property_root_node:
  196. - :ref:`NodePath<class_NodePath>` **root_node**
  197. +----------+-----------------+
  198. | *Setter* | set_root(value) |
  199. +----------+-----------------+
  200. | *Getter* | get_root() |
  201. +----------+-----------------+
  202. The node from which node path references will travel. Default value: ``".."``.
  203. Method Descriptions
  204. -------------------
  205. .. _class_AnimationPlayer_method_add_animation:
  206. - :ref:`Error<enum_@GlobalScope_Error>` **add_animation** **(** :ref:`String<class_String>` name, :ref:`Animation<class_Animation>` animation **)**
  207. Adds ``animation`` to the player accessible with the key ``name``.
  208. ----
  209. .. _class_AnimationPlayer_method_advance:
  210. - void **advance** **(** :ref:`float<class_float>` delta **)**
  211. Shifts position in the animation timeline. Delta is the time in seconds to shift. Events between the current frame and ``delta`` are handled.
  212. ----
  213. .. _class_AnimationPlayer_method_animation_get_next:
  214. - :ref:`String<class_String>` **animation_get_next** **(** :ref:`String<class_String>` anim_from **)** const
  215. Returns the name of the next animation in the queue.
  216. ----
  217. .. _class_AnimationPlayer_method_animation_set_next:
  218. - void **animation_set_next** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)**
  219. Triggers the ``anim_to`` animation when the ``anim_from`` animation completes.
  220. ----
  221. .. _class_AnimationPlayer_method_clear_caches:
  222. - void **clear_caches** **(** **)**
  223. ``AnimationPlayer`` caches animated nodes. It may not notice if a node disappears, so clear_caches forces it to update the cache again.
  224. ----
  225. .. _class_AnimationPlayer_method_clear_queue:
  226. - void **clear_queue** **(** **)**
  227. Clears all queued, unplayed animations.
  228. ----
  229. .. _class_AnimationPlayer_method_find_animation:
  230. - :ref:`String<class_String>` **find_animation** **(** :ref:`Animation<class_Animation>` animation **)** const
  231. Returns the name of ``animation`` or empty string if not found.
  232. ----
  233. .. _class_AnimationPlayer_method_get_animation:
  234. - :ref:`Animation<class_Animation>` **get_animation** **(** :ref:`String<class_String>` name **)** const
  235. Returns the :ref:`Animation<class_Animation>` with key ``name`` or ``null`` if not found.
  236. ----
  237. .. _class_AnimationPlayer_method_get_animation_list:
  238. - :ref:`PoolStringArray<class_PoolStringArray>` **get_animation_list** **(** **)** const
  239. Returns the list of stored animation names.
  240. ----
  241. .. _class_AnimationPlayer_method_get_blend_time:
  242. - :ref:`float<class_float>` **get_blend_time** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to **)** const
  243. Get the blend time (in seconds) between two animations, referenced by their names.
  244. ----
  245. .. _class_AnimationPlayer_method_get_playing_speed:
  246. - :ref:`float<class_float>` **get_playing_speed** **(** **)** const
  247. Get the actual playing speed of current animation or 0 if not playing. This speed is the ``playback_speed`` property multiplied by ``custom_speed`` argument specified when calling the ``play`` method.
  248. ----
  249. .. _class_AnimationPlayer_method_get_queue:
  250. - :ref:`PoolStringArray<class_PoolStringArray>` **get_queue** **(** **)**
  251. ----
  252. .. _class_AnimationPlayer_method_has_animation:
  253. - :ref:`bool<class_bool>` **has_animation** **(** :ref:`String<class_String>` name **)** const
  254. Returns ``true`` if the ``AnimationPlayer`` stores an :ref:`Animation<class_Animation>` with key ``name``.
  255. ----
  256. .. _class_AnimationPlayer_method_is_playing:
  257. - :ref:`bool<class_bool>` **is_playing** **(** **)** const
  258. Returns ``true`` if playing an animation.
  259. ----
  260. .. _class_AnimationPlayer_method_play:
  261. - void **play** **(** :ref:`String<class_String>` name="", :ref:`float<class_float>` custom_blend=-1, :ref:`float<class_float>` custom_speed=1.0, :ref:`bool<class_bool>` from_end=false **)**
  262. Play the animation with key ``name``. Custom speed and blend times can be set. If custom speed is negative (-1), 'from_end' being ``true`` can play the animation backwards.
  263. If the animation has been paused by ``stop(true)`` it will be resumed. Calling ``play()`` without arguments will also resume the animation.
  264. ----
  265. .. _class_AnimationPlayer_method_play_backwards:
  266. - void **play_backwards** **(** :ref:`String<class_String>` name="", :ref:`float<class_float>` custom_blend=-1 **)**
  267. Play the animation with key ``name`` in reverse.
  268. If the animation has been paused by ``stop(true)`` it will be resumed backwards. Calling ``play_backwards()`` without arguments will also resume the animation backwards.
  269. ----
  270. .. _class_AnimationPlayer_method_queue:
  271. - void **queue** **(** :ref:`String<class_String>` name **)**
  272. Queue an animation for playback once the current one is done.
  273. ----
  274. .. _class_AnimationPlayer_method_remove_animation:
  275. - void **remove_animation** **(** :ref:`String<class_String>` name **)**
  276. Remove the animation with key ``name``.
  277. ----
  278. .. _class_AnimationPlayer_method_rename_animation:
  279. - void **rename_animation** **(** :ref:`String<class_String>` name, :ref:`String<class_String>` newname **)**
  280. Rename an existing animation with key ``name`` to ``newname``.
  281. ----
  282. .. _class_AnimationPlayer_method_seek:
  283. - void **seek** **(** :ref:`float<class_float>` seconds, :ref:`bool<class_bool>` update=false **)**
  284. Seek the animation to the ``seconds`` point in time (in seconds). If ``update`` is ``true``, the animation updates too, otherwise it updates at process time. Events between the current frame and ``seconds`` are skipped.
  285. ----
  286. .. _class_AnimationPlayer_method_set_blend_time:
  287. - void **set_blend_time** **(** :ref:`String<class_String>` anim_from, :ref:`String<class_String>` anim_to, :ref:`float<class_float>` sec **)**
  288. Specify a blend time (in seconds) between two animations, referenced by their names.
  289. ----
  290. .. _class_AnimationPlayer_method_stop:
  291. - void **stop** **(** :ref:`bool<class_bool>` reset=true **)**
  292. Stop the currently playing animation. If ``reset`` is ``true``, the animation position is reset to ``0`` and the playback speed is reset to ``1.0``.
  293. If ``reset`` is ``false``, then calling ``play()`` without arguments or ``play("same_as_before")`` will resume the animation. Works the same for the ``play_backwards()`` method.