:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/master/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/master/doc/classes/AnimationNodeStateMachine.xml. .. _class_AnimationNodeStateMachine: AnimationNodeStateMachine ========================= **Inherits:** :ref:`AnimationRootNode` **<** :ref:`AnimationNode` **<** :ref:`Resource` **<** :ref:`RefCounted` **<** :ref:`Object` State machine for control of animations. .. rst-class:: classref-introduction-group Description ----------- Contains multiple nodes representing animation states, connected in a graph. Node transitions can be configured to happen automatically or via code, using a shortest-path algorithm. Retrieve the :ref:`AnimationNodeStateMachinePlayback` object from the :ref:`AnimationTree` node to control it programmatically. \ **Example:**\ .. tabs:: .. code-tab:: gdscript var state_machine = $AnimationTree.get("parameters/playback") state_machine.travel("some_state") .. code-tab:: csharp var stateMachine = GetNode("AnimationTree").Get("parameters/playback") as AnimationNodeStateMachinePlayback; stateMachine.Travel("some_state"); .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`AnimationTree <../tutorials/animation/animation_tree>` .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +-------------------------+----------------------------------------------------------------------------------------------------+-----------+ | :ref:`bool` | :ref:`allow_transition_to_self` | ``false`` | +-------------------------+----------------------------------------------------------------------------------------------------+-----------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_node` **(** :ref:`StringName` name, :ref:`AnimationNode` node, :ref:`Vector2` position=Vector2(0, 0) **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_transition` **(** :ref:`StringName` from, :ref:`StringName` to, :ref:`AnimationNodeStateMachineTransition` transition **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_graph_offset` **(** **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AnimationNode` | :ref:`get_node` **(** :ref:`StringName` name **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_node_name` **(** :ref:`AnimationNode` node **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_node_position` **(** :ref:`StringName` name **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AnimationNodeStateMachineTransition` | :ref:`get_transition` **(** :ref:`int` idx **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_transition_count` **(** **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_transition_from` **(** :ref:`int` idx **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`StringName` | :ref:`get_transition_to` **(** :ref:`int` idx **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_node` **(** :ref:`StringName` name **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_transition` **(** :ref:`StringName` from, :ref:`StringName` to **)** |const| | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_node` **(** :ref:`StringName` name **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_transition` **(** :ref:`StringName` from, :ref:`StringName` to **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_transition_by_index` **(** :ref:`int` idx **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rename_node` **(** :ref:`StringName` name, :ref:`StringName` new_name **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`replace_node` **(** :ref:`StringName` name, :ref:`AnimationNode` node **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_graph_offset` **(** :ref:`Vector2` offset **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_node_position` **(** :ref:`StringName` name, :ref:`Vector2` position **)** | +---------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_AnimationNodeStateMachine_property_allow_transition_to_self: .. rst-class:: classref-property :ref:`bool` **allow_transition_to_self** = ``false`` .. rst-class:: classref-property-setget - void **set_allow_transition_to_self** **(** :ref:`bool` value **)** - :ref:`bool` **is_allow_transition_to_self** **(** **)** If ``true``, allows teleport to the self state with :ref:`AnimationNodeStateMachinePlayback.travel`. When the reset option is enabled in :ref:`AnimationNodeStateMachinePlayback.travel`, the animation is restarted. If ``false``, nothing happens on the teleportation to the self state. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_AnimationNodeStateMachine_method_add_node: .. rst-class:: classref-method void **add_node** **(** :ref:`StringName` name, :ref:`AnimationNode` node, :ref:`Vector2` position=Vector2(0, 0) **)** Adds a new node to the graph. The ``position`` is used for display in the editor. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_add_transition: .. rst-class:: classref-method void **add_transition** **(** :ref:`StringName` from, :ref:`StringName` to, :ref:`AnimationNodeStateMachineTransition` transition **)** Adds a transition between the given nodes. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_graph_offset: .. rst-class:: classref-method :ref:`Vector2` **get_graph_offset** **(** **)** |const| Returns the draw offset of the graph. Used for display in the editor. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_node: .. rst-class:: classref-method :ref:`AnimationNode` **get_node** **(** :ref:`StringName` name **)** |const| Returns the animation node with the given name. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_node_name: .. rst-class:: classref-method :ref:`StringName` **get_node_name** **(** :ref:`AnimationNode` node **)** |const| Returns the given animation node's name. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_node_position: .. rst-class:: classref-method :ref:`Vector2` **get_node_position** **(** :ref:`StringName` name **)** |const| Returns the given node's coordinates. Used for display in the editor. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_transition: .. rst-class:: classref-method :ref:`AnimationNodeStateMachineTransition` **get_transition** **(** :ref:`int` idx **)** |const| Returns the given transition. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_transition_count: .. rst-class:: classref-method :ref:`int` **get_transition_count** **(** **)** |const| Returns the number of connections in the graph. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_transition_from: .. rst-class:: classref-method :ref:`StringName` **get_transition_from** **(** :ref:`int` idx **)** |const| Returns the given transition's start node. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_transition_to: .. rst-class:: classref-method :ref:`StringName` **get_transition_to** **(** :ref:`int` idx **)** |const| Returns the given transition's end node. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_has_node: .. rst-class:: classref-method :ref:`bool` **has_node** **(** :ref:`StringName` name **)** |const| Returns ``true`` if the graph contains the given node. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_has_transition: .. rst-class:: classref-method :ref:`bool` **has_transition** **(** :ref:`StringName` from, :ref:`StringName` to **)** |const| Returns ``true`` if there is a transition between the given nodes. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_remove_node: .. rst-class:: classref-method void **remove_node** **(** :ref:`StringName` name **)** Deletes the given node from the graph. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_remove_transition: .. rst-class:: classref-method void **remove_transition** **(** :ref:`StringName` from, :ref:`StringName` to **)** Deletes the transition between the two specified nodes. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_remove_transition_by_index: .. rst-class:: classref-method void **remove_transition_by_index** **(** :ref:`int` idx **)** Deletes the given transition by index. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_rename_node: .. rst-class:: classref-method void **rename_node** **(** :ref:`StringName` name, :ref:`StringName` new_name **)** Renames the given node. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_replace_node: .. rst-class:: classref-method void **replace_node** **(** :ref:`StringName` name, :ref:`AnimationNode` node **)** .. container:: contribute There is currently no description for this method. Please help us by :ref:`contributing one `! .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_set_graph_offset: .. rst-class:: classref-method void **set_graph_offset** **(** :ref:`Vector2` offset **)** Sets the draw offset of the graph. Used for display in the editor. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_set_node_position: .. rst-class:: classref-method void **set_node_position** **(** :ref:`StringName` name, :ref:`Vector2` position **)** Sets the node's coordinates. Used for display in the editor. .. |virtual| replace:: :abbr:`virtual (This method should typically be overridden by the user to have any effect.)` .. |const| replace:: :abbr:`const (This method has no side effects. It doesn't modify any of the instance's member variables.)` .. |vararg| replace:: :abbr:`vararg (This method accepts any number of arguments after the ones described here.)` .. |constructor| replace:: :abbr:`constructor (This method is used to construct a type.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)` .. |operator| replace:: :abbr:`operator (This method describes a valid operator to use with this type as left-hand operand.)`