:github_url: hide .. DO NOT EDIT THIS FILE!!! .. Generated automatically from Godot engine sources. .. Generator: https://github.com/godotengine/godot/tree/3.6/doc/tools/make_rst.py. .. XML source: https://github.com/godotengine/godot/tree/3.6/doc/classes/AnimationNodeStateMachine.xml. .. _class_AnimationNodeStateMachine: AnimationNodeStateMachine ========================= **Inherits:** :ref:`AnimationRootNode` **<** :ref:`AnimationNode` **<** :ref:`Resource` **<** :ref:`Reference` **<** :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:**\ :: var state_machine = $AnimationTree.get("parameters/playback") state_machine.travel("some_state") .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`../tutorials/animation/animation_tree` .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_node` **(** :ref:`String` name, :ref:`AnimationNode` node, :ref:`Vector2` position=Vector2( 0, 0 ) **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`add_transition` **(** :ref:`String` from, :ref:`String` to, :ref:`AnimationNodeStateMachineTransition` transition **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_end_node` **(** **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_graph_offset` **(** **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AnimationNode` | :ref:`get_node` **(** :ref:`String` name **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_node_name` **(** :ref:`AnimationNode` node **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Vector2` | :ref:`get_node_position` **(** :ref:`String` name **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_start_node` **(** **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`AnimationNodeStateMachineTransition` | :ref:`get_transition` **(** :ref:`int` idx **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`int` | :ref:`get_transition_count` **(** **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_transition_from` **(** :ref:`int` idx **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`String` | :ref:`get_transition_to` **(** :ref:`int` idx **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_node` **(** :ref:`String` name **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`bool` | :ref:`has_transition` **(** :ref:`String` from, :ref:`String` to **)** |const| | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_node` **(** :ref:`String` name **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_transition` **(** :ref:`String` from, :ref:`String` to **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`remove_transition_by_index` **(** :ref:`int` idx **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rename_node` **(** :ref:`String` name, :ref:`String` new_name **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`replace_node` **(** :ref:`String` name, :ref:`AnimationNode` node **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_end_node` **(** :ref:`String` name **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_graph_offset` **(** :ref:`Vector2` offset **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_node_position` **(** :ref:`String` name, :ref:`Vector2` position **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`set_start_node` **(** :ref:`String` name **)** | +---------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. 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:`String` 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:`String` from, :ref:`String` to, :ref:`AnimationNodeStateMachineTransition` transition **)** Adds a transition between the given nodes. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_end_node: .. rst-class:: classref-method :ref:`String` **get_end_node** **(** **)** |const| Returns the graph's end node. .. 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:`String` 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:`String` **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:`String` name **)** |const| Returns the given node's coordinates. Used for display in the editor. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_get_start_node: .. rst-class:: classref-method :ref:`String` **get_start_node** **(** **)** |const| Returns the graph's end node. .. 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:`String` **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:`String` **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:`String` 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:`String` from, :ref:`String` 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:`String` 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:`String` from, :ref:`String` 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:`String` name, :ref:`String` new_name **)** Renames the given node. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_replace_node: .. rst-class:: classref-method void **replace_node** **(** :ref:`String` name, :ref:`AnimationNode` node **)** Replaces the node and keeps its transitions unchanged. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_set_end_node: .. rst-class:: classref-method void **set_end_node** **(** :ref:`String` name **)** Sets the given node as the graph end point. .. 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:`String` name, :ref:`Vector2` position **)** Sets the node's coordinates. Used for display in the editor. .. rst-class:: classref-item-separator ---- .. _class_AnimationNodeStateMachine_method_set_start_node: .. rst-class:: classref-method void **set_start_node** **(** :ref:`String` name **)** Sets the given node as the graph start point. .. |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.)` .. |static| replace:: :abbr:`static (This method doesn't need an instance to be called, so it can be called directly using the class name.)`