: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/AnimationTree.xml. .. _class_AnimationTree: AnimationTree ============= **Inherits:** :ref:`Node` **<** :ref:`Object` A node to be used for advanced animation transitions in an :ref:`AnimationPlayer`. .. rst-class:: classref-introduction-group Description ----------- A node to be used for advanced animation transitions in an :ref:`AnimationPlayer`. \ **Note:** When linked with an :ref:`AnimationPlayer`, several properties and methods of the corresponding :ref:`AnimationPlayer` will not function as expected. Playback and transitions should be handled using only the **AnimationTree** and its constituent :ref:`AnimationNode`\ (s). The :ref:`AnimationPlayer` node should be used solely for adding, deleting, and editing animations. .. rst-class:: classref-introduction-group Tutorials --------- - :doc:`Using AnimationTree <../tutorials/animation/animation_tree>` - `Third Person Shooter Demo `__ .. rst-class:: classref-reftable-group Properties ---------- .. table:: :widths: auto +----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+ | :ref:`bool` | :ref:`active` | ``false`` | +----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+ | :ref:`NodePath` | :ref:`anim_player` | ``NodePath("")`` | +----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+ | :ref:`AnimationProcessMode` | :ref:`process_mode` | ``1`` | +----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+ | :ref:`NodePath` | :ref:`root_motion_track` | ``NodePath("")`` | +----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+ | :ref:`AnimationNode` | :ref:`tree_root` | | +----------------------------------------------------------------------+--------------------------------------------------------------------------+------------------+ .. rst-class:: classref-reftable-group Methods ------- .. table:: :widths: auto +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`advance` **(** :ref:`float` delta **)** | +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ | :ref:`Transform` | :ref:`get_root_motion_transform` **(** **)** |const| | +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ | void | :ref:`rename_parameter` **(** :ref:`String` old_name, :ref:`String` new_name **)** | +-----------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------+ .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Enumerations ------------ .. _enum_AnimationTree_AnimationProcessMode: .. rst-class:: classref-enumeration enum **AnimationProcessMode**: .. _class_AnimationTree_constant_ANIMATION_PROCESS_PHYSICS: .. rst-class:: classref-enumeration-constant :ref:`AnimationProcessMode` **ANIMATION_PROCESS_PHYSICS** = ``0`` The animations will progress during the physics frame (i.e. :ref:`Node._physics_process`). .. _class_AnimationTree_constant_ANIMATION_PROCESS_IDLE: .. rst-class:: classref-enumeration-constant :ref:`AnimationProcessMode` **ANIMATION_PROCESS_IDLE** = ``1`` The animations will progress during the idle frame (i.e. :ref:`Node._process`). .. _class_AnimationTree_constant_ANIMATION_PROCESS_MANUAL: .. rst-class:: classref-enumeration-constant :ref:`AnimationProcessMode` **ANIMATION_PROCESS_MANUAL** = ``2`` The animations will only progress manually (see :ref:`advance`). .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Property Descriptions --------------------- .. _class_AnimationTree_property_active: .. rst-class:: classref-property :ref:`bool` **active** = ``false`` .. rst-class:: classref-property-setget - void **set_active** **(** :ref:`bool` value **)** - :ref:`bool` **is_active** **(** **)** If ``true``, the **AnimationTree** will be processing. .. rst-class:: classref-item-separator ---- .. _class_AnimationTree_property_anim_player: .. rst-class:: classref-property :ref:`NodePath` **anim_player** = ``NodePath("")`` .. rst-class:: classref-property-setget - void **set_animation_player** **(** :ref:`NodePath` value **)** - :ref:`NodePath` **get_animation_player** **(** **)** The path to the :ref:`AnimationPlayer` used for animating. .. rst-class:: classref-item-separator ---- .. _class_AnimationTree_property_process_mode: .. rst-class:: classref-property :ref:`AnimationProcessMode` **process_mode** = ``1`` .. rst-class:: classref-property-setget - void **set_process_mode** **(** :ref:`AnimationProcessMode` value **)** - :ref:`AnimationProcessMode` **get_process_mode** **(** **)** The process mode of this **AnimationTree**. See :ref:`AnimationProcessMode` for available modes. .. rst-class:: classref-item-separator ---- .. _class_AnimationTree_property_root_motion_track: .. rst-class:: classref-property :ref:`NodePath` **root_motion_track** = ``NodePath("")`` .. rst-class:: classref-property-setget - void **set_root_motion_track** **(** :ref:`NodePath` value **)** - :ref:`NodePath` **get_root_motion_track** **(** **)** The path to the Animation track used for root motion. 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. To specify a track that controls properties or bones, append its name after the path, separated by ``":"``. For example, ``"character/skeleton:ankle"`` or ``"character/mesh:transform/local"``. If the track has type :ref:`Animation.TYPE_TRANSFORM`, the transformation will be cancelled visually, and the animation will appear to stay in place. See also :ref:`get_root_motion_transform` and :ref:`RootMotionView`. .. rst-class:: classref-item-separator ---- .. _class_AnimationTree_property_tree_root: .. rst-class:: classref-property :ref:`AnimationNode` **tree_root** .. rst-class:: classref-property-setget - void **set_tree_root** **(** :ref:`AnimationNode` value **)** - :ref:`AnimationNode` **get_tree_root** **(** **)** The root animation node of this **AnimationTree**. See :ref:`AnimationNode`. .. rst-class:: classref-section-separator ---- .. rst-class:: classref-descriptions-group Method Descriptions ------------------- .. _class_AnimationTree_method_advance: .. rst-class:: classref-method void **advance** **(** :ref:`float` delta **)** Manually advance the animations by the specified time (in seconds). .. rst-class:: classref-item-separator ---- .. _class_AnimationTree_method_get_root_motion_transform: .. rst-class:: classref-method :ref:`Transform` **get_root_motion_transform** **(** **)** |const| Retrieve the motion of the :ref:`root_motion_track` as a :ref:`Transform` that can be used elsewhere. If :ref:`root_motion_track` is not a path to a track of type :ref:`Animation.TYPE_TRANSFORM`, returns an identity transformation. See also :ref:`root_motion_track` and :ref:`RootMotionView`. .. rst-class:: classref-item-separator ---- .. _class_AnimationTree_method_rename_parameter: .. rst-class:: classref-method void **rename_parameter** **(** :ref:`String` old_name, :ref:`String` new_name **)** .. container:: contribute There is currently no description for this method. Please help us by :ref:`contributing one `! .. |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.)`