class_animationnode.rst 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. :github_url: hide
  2. .. DO NOT EDIT THIS FILE!!!
  3. .. Generated automatically from Godot engine sources.
  4. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py.
  5. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/AnimationNode.xml.
  6. .. _class_AnimationNode:
  7. AnimationNode
  8. =============
  9. **Inherits:** :ref:`Resource<class_Resource>` **<** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
  10. **Inherited By:** :ref:`AnimationNodeOutput<class_AnimationNodeOutput>`, :ref:`AnimationNodeSync<class_AnimationNodeSync>`, :ref:`AnimationNodeTimeScale<class_AnimationNodeTimeScale>`, :ref:`AnimationNodeTimeSeek<class_AnimationNodeTimeSeek>`, :ref:`AnimationRootNode<class_AnimationRootNode>`
  11. Base resource for :ref:`AnimationTree<class_AnimationTree>` nodes.
  12. .. rst-class:: classref-introduction-group
  13. Description
  14. -----------
  15. Base resource for :ref:`AnimationTree<class_AnimationTree>` nodes. In general, it's not used directly, but you can create custom ones with custom blending formulas.
  16. Inherit this when creating nodes mainly for use in :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`, otherwise :ref:`AnimationRootNode<class_AnimationRootNode>` should be used instead.
  17. .. rst-class:: classref-introduction-group
  18. Tutorials
  19. ---------
  20. - :doc:`AnimationTree <../tutorials/animation/animation_tree>`
  21. .. rst-class:: classref-reftable-group
  22. Properties
  23. ----------
  24. .. table::
  25. :widths: auto
  26. +-------------------------+--------------------------------------------------------------------+
  27. | :ref:`bool<class_bool>` | :ref:`filter_enabled<class_AnimationNode_property_filter_enabled>` |
  28. +-------------------------+--------------------------------------------------------------------+
  29. .. rst-class:: classref-reftable-group
  30. Methods
  31. -------
  32. .. table::
  33. :widths: auto
  34. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  35. | :ref:`String<class_String>` | :ref:`_get_caption<class_AnimationNode_method__get_caption>` **(** **)** |virtual| |const| |
  36. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  37. | :ref:`AnimationNode<class_AnimationNode>` | :ref:`_get_child_by_name<class_AnimationNode_method__get_child_by_name>` **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const| |
  38. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  39. | :ref:`Dictionary<class_Dictionary>` | :ref:`_get_child_nodes<class_AnimationNode_method__get_child_nodes>` **(** **)** |virtual| |const| |
  40. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  41. | :ref:`Variant<class_Variant>` | :ref:`_get_parameter_default_value<class_AnimationNode_method__get_parameter_default_value>` **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const| |
  42. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  43. | :ref:`Array<class_Array>` | :ref:`_get_parameter_list<class_AnimationNode_method__get_parameter_list>` **(** **)** |virtual| |const| |
  44. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  45. | :ref:`bool<class_bool>` | :ref:`_has_filter<class_AnimationNode_method__has_filter>` **(** **)** |virtual| |const| |
  46. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  47. | :ref:`float<class_float>` | :ref:`_process<class_AnimationNode_method__process>` **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking **)** |virtual| |const| |
  48. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  49. | void | :ref:`add_input<class_AnimationNode_method_add_input>` **(** :ref:`String<class_String>` name **)** |
  50. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  51. | void | :ref:`blend_animation<class_AnimationNode_method_blend_animation>` **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`LoopedFlag<enum_Animation_LoopedFlag>` looped_flag=0 **)** |
  52. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  53. | :ref:`float<class_float>` | :ref:`blend_input<class_AnimationNode_method_blend_input>` **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)** |
  54. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  55. | :ref:`float<class_float>` | :ref:`blend_node<class_AnimationNode_method_blend_node>` **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)** |
  56. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  57. | :ref:`int<class_int>` | :ref:`get_input_count<class_AnimationNode_method_get_input_count>` **(** **)** |const| |
  58. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  59. | :ref:`String<class_String>` | :ref:`get_input_name<class_AnimationNode_method_get_input_name>` **(** :ref:`int<class_int>` input **)** |
  60. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  61. | :ref:`Variant<class_Variant>` | :ref:`get_parameter<class_AnimationNode_method_get_parameter>` **(** :ref:`StringName<class_StringName>` name **)** |const| |
  62. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  63. | :ref:`bool<class_bool>` | :ref:`is_path_filtered<class_AnimationNode_method_is_path_filtered>` **(** :ref:`NodePath<class_NodePath>` path **)** |const| |
  64. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  65. | void | :ref:`remove_input<class_AnimationNode_method_remove_input>` **(** :ref:`int<class_int>` index **)** |
  66. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  67. | void | :ref:`set_filter_path<class_AnimationNode_method_set_filter_path>` **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)** |
  68. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  69. | void | :ref:`set_parameter<class_AnimationNode_method_set_parameter>` **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)** |
  70. +-------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  71. .. rst-class:: classref-section-separator
  72. ----
  73. .. rst-class:: classref-descriptions-group
  74. Signals
  75. -------
  76. .. _class_AnimationNode_signal_removed_from_graph:
  77. .. rst-class:: classref-signal
  78. **removed_from_graph** **(** **)**
  79. Emitted when the node was removed from the graph.
  80. .. rst-class:: classref-item-separator
  81. ----
  82. .. _class_AnimationNode_signal_tree_changed:
  83. .. rst-class:: classref-signal
  84. **tree_changed** **(** **)**
  85. Emitted by nodes that inherit from this class and that have an internal tree when one of their nodes changes. The nodes that emit this signal are :ref:`AnimationNodeBlendSpace1D<class_AnimationNodeBlendSpace1D>`, :ref:`AnimationNodeBlendSpace2D<class_AnimationNodeBlendSpace2D>`, :ref:`AnimationNodeStateMachine<class_AnimationNodeStateMachine>`, and :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
  86. .. rst-class:: classref-section-separator
  87. ----
  88. .. rst-class:: classref-descriptions-group
  89. Enumerations
  90. ------------
  91. .. _enum_AnimationNode_FilterAction:
  92. .. rst-class:: classref-enumeration
  93. enum **FilterAction**:
  94. .. _class_AnimationNode_constant_FILTER_IGNORE:
  95. .. rst-class:: classref-enumeration-constant
  96. :ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_IGNORE** = ``0``
  97. Do not use filtering.
  98. .. _class_AnimationNode_constant_FILTER_PASS:
  99. .. rst-class:: classref-enumeration-constant
  100. :ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_PASS** = ``1``
  101. Paths matching the filter will be allowed to pass.
  102. .. _class_AnimationNode_constant_FILTER_STOP:
  103. .. rst-class:: classref-enumeration-constant
  104. :ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_STOP** = ``2``
  105. Paths matching the filter will be discarded.
  106. .. _class_AnimationNode_constant_FILTER_BLEND:
  107. .. rst-class:: classref-enumeration-constant
  108. :ref:`FilterAction<enum_AnimationNode_FilterAction>` **FILTER_BLEND** = ``3``
  109. Paths matching the filter will be blended (by the blend value).
  110. .. rst-class:: classref-section-separator
  111. ----
  112. .. rst-class:: classref-descriptions-group
  113. Property Descriptions
  114. ---------------------
  115. .. _class_AnimationNode_property_filter_enabled:
  116. .. rst-class:: classref-property
  117. :ref:`bool<class_bool>` **filter_enabled**
  118. .. rst-class:: classref-property-setget
  119. - void **set_filter_enabled** **(** :ref:`bool<class_bool>` value **)**
  120. - :ref:`bool<class_bool>` **is_filter_enabled** **(** **)**
  121. If ``true``, filtering is enabled.
  122. .. rst-class:: classref-section-separator
  123. ----
  124. .. rst-class:: classref-descriptions-group
  125. Method Descriptions
  126. -------------------
  127. .. _class_AnimationNode_method__get_caption:
  128. .. rst-class:: classref-method
  129. :ref:`String<class_String>` **_get_caption** **(** **)** |virtual| |const|
  130. When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to override the text caption for this node.
  131. .. rst-class:: classref-item-separator
  132. ----
  133. .. _class_AnimationNode_method__get_child_by_name:
  134. .. rst-class:: classref-method
  135. :ref:`AnimationNode<class_AnimationNode>` **_get_child_by_name** **(** :ref:`StringName<class_StringName>` name **)** |virtual| |const|
  136. When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return a child node by its ``name``.
  137. .. rst-class:: classref-item-separator
  138. ----
  139. .. _class_AnimationNode_method__get_child_nodes:
  140. .. rst-class:: classref-method
  141. :ref:`Dictionary<class_Dictionary>` **_get_child_nodes** **(** **)** |virtual| |const|
  142. When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return all children nodes in order as a ``name: node`` dictionary.
  143. .. rst-class:: classref-item-separator
  144. ----
  145. .. _class_AnimationNode_method__get_parameter_default_value:
  146. .. rst-class:: classref-method
  147. :ref:`Variant<class_Variant>` **_get_parameter_default_value** **(** :ref:`StringName<class_StringName>` parameter **)** |virtual| |const|
  148. When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return the default value of a ``parameter``. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
  149. .. rst-class:: classref-item-separator
  150. ----
  151. .. _class_AnimationNode_method__get_parameter_list:
  152. .. rst-class:: classref-method
  153. :ref:`Array<class_Array>` **_get_parameter_list** **(** **)** |virtual| |const|
  154. When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return a list of the properties on this node. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to :ref:`Object.get_property_list<class_Object_method_get_property_list>`.
  155. .. rst-class:: classref-item-separator
  156. ----
  157. .. _class_AnimationNode_method__has_filter:
  158. .. rst-class:: classref-method
  159. :ref:`bool<class_bool>` **_has_filter** **(** **)** |virtual| |const|
  160. When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to return whether the blend tree editor should display filter editing on this node.
  161. .. rst-class:: classref-item-separator
  162. ----
  163. .. _class_AnimationNode_method__process:
  164. .. rst-class:: classref-method
  165. :ref:`float<class_float>` **_process** **(** :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking **)** |virtual| |const|
  166. When inheriting from :ref:`AnimationRootNode<class_AnimationRootNode>`, implement this virtual method to run some code when this node is processed. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute.
  167. Here, call the :ref:`blend_input<class_AnimationNode_method_blend_input>`, :ref:`blend_node<class_AnimationNode_method_blend_node>` or :ref:`blend_animation<class_AnimationNode_method_blend_animation>` functions. You can also use :ref:`get_parameter<class_AnimationNode_method_get_parameter>` and :ref:`set_parameter<class_AnimationNode_method_set_parameter>` to modify local memory.
  168. This function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called).
  169. .. rst-class:: classref-item-separator
  170. ----
  171. .. _class_AnimationNode_method_add_input:
  172. .. rst-class:: classref-method
  173. void **add_input** **(** :ref:`String<class_String>` name **)**
  174. Adds an input to the node. This is only useful for nodes created for use in an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
  175. .. rst-class:: classref-item-separator
  176. ----
  177. .. _class_AnimationNode_method_blend_animation:
  178. .. rst-class:: classref-method
  179. void **blend_animation** **(** :ref:`StringName<class_StringName>` animation, :ref:`float<class_float>` time, :ref:`float<class_float>` delta, :ref:`bool<class_bool>` seeked, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`LoopedFlag<enum_Animation_LoopedFlag>` looped_flag=0 **)**
  180. Blend an animation by ``blend`` amount (name must be valid in the linked :ref:`AnimationPlayer<class_AnimationPlayer>`). A ``time`` and ``delta`` may be passed, as well as whether ``seeked`` happened.
  181. A ``looped_flag`` is used by internal processing immediately after the loop. See also :ref:`LoopedFlag<enum_Animation_LoopedFlag>`.
  182. .. rst-class:: classref-item-separator
  183. ----
  184. .. _class_AnimationNode_method_blend_input:
  185. .. rst-class:: classref-method
  186. :ref:`float<class_float>` **blend_input** **(** :ref:`int<class_int>` input_index, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
  187. Blend an input. This is only useful for nodes created for an :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`. The ``time`` parameter is a relative delta, unless ``seek`` is ``true``, in which case it is absolute. A filter mode may be optionally passed (see :ref:`FilterAction<enum_AnimationNode_FilterAction>` for options).
  188. .. rst-class:: classref-item-separator
  189. ----
  190. .. _class_AnimationNode_method_blend_node:
  191. .. rst-class:: classref-method
  192. :ref:`float<class_float>` **blend_node** **(** :ref:`StringName<class_StringName>` name, :ref:`AnimationNode<class_AnimationNode>` node, :ref:`float<class_float>` time, :ref:`bool<class_bool>` seek, :ref:`bool<class_bool>` is_external_seeking, :ref:`float<class_float>` blend, :ref:`FilterAction<enum_AnimationNode_FilterAction>` filter=0, :ref:`bool<class_bool>` sync=true **)**
  193. Blend another animation node (in case this node contains children animation nodes). This function is only useful if you inherit from :ref:`AnimationRootNode<class_AnimationRootNode>` instead, else editors will not display your node for addition.
  194. .. rst-class:: classref-item-separator
  195. ----
  196. .. _class_AnimationNode_method_get_input_count:
  197. .. rst-class:: classref-method
  198. :ref:`int<class_int>` **get_input_count** **(** **)** |const|
  199. Amount of inputs in this node, only useful for nodes that go into :ref:`AnimationNodeBlendTree<class_AnimationNodeBlendTree>`.
  200. .. rst-class:: classref-item-separator
  201. ----
  202. .. _class_AnimationNode_method_get_input_name:
  203. .. rst-class:: classref-method
  204. :ref:`String<class_String>` **get_input_name** **(** :ref:`int<class_int>` input **)**
  205. Gets the name of an input by index.
  206. .. rst-class:: classref-item-separator
  207. ----
  208. .. _class_AnimationNode_method_get_parameter:
  209. .. rst-class:: classref-method
  210. :ref:`Variant<class_Variant>` **get_parameter** **(** :ref:`StringName<class_StringName>` name **)** |const|
  211. Gets the value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
  212. .. rst-class:: classref-item-separator
  213. ----
  214. .. _class_AnimationNode_method_is_path_filtered:
  215. .. rst-class:: classref-method
  216. :ref:`bool<class_bool>` **is_path_filtered** **(** :ref:`NodePath<class_NodePath>` path **)** |const|
  217. Returns whether the given path is filtered.
  218. .. rst-class:: classref-item-separator
  219. ----
  220. .. _class_AnimationNode_method_remove_input:
  221. .. rst-class:: classref-method
  222. void **remove_input** **(** :ref:`int<class_int>` index **)**
  223. Removes an input, call this only when inactive.
  224. .. rst-class:: classref-item-separator
  225. ----
  226. .. _class_AnimationNode_method_set_filter_path:
  227. .. rst-class:: classref-method
  228. void **set_filter_path** **(** :ref:`NodePath<class_NodePath>` path, :ref:`bool<class_bool>` enable **)**
  229. Adds or removes a path for the filter.
  230. .. rst-class:: classref-item-separator
  231. ----
  232. .. _class_AnimationNode_method_set_parameter:
  233. .. rst-class:: classref-method
  234. void **set_parameter** **(** :ref:`StringName<class_StringName>` name, :ref:`Variant<class_Variant>` value **)**
  235. Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes.
  236. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)`
  237. .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)`
  238. .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)`
  239. .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)`
  240. .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`
  241. .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`