2018-07-26 11:56:21 +02:00
<?xml version="1.0" encoding="UTF-8" ?>
2022-02-14 14:18:53 +01:00
<class name= "AnimationTree" inherits= "Node" version= "4.0" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../class.xsd" >
2018-07-26 11:56:21 +02:00
<brief_description >
2020-03-03 19:21:21 +01:00
A node to be used for advanced animation transitions in an [AnimationPlayer].
2018-07-26 11:56:21 +02:00
</brief_description>
<description >
2021-10-05 14:24:34 +02:00
A node to be used for advanced animation transitions in an [AnimationPlayer].
[b]Note:[/b] When linked with an [AnimationPlayer], several properties and methods of the corresponding [AnimationPlayer] will not function as expected. Playback and transitions should be handled using only the [AnimationTree] and its constituent [AnimationNode](s). The [AnimationPlayer] node should be used solely for adding, deleting, and editing animations.
2018-07-26 11:56:21 +02:00
</description>
<tutorials >
2021-11-15 10:43:07 +01:00
<link title= "Using AnimationTree" > $DOCS_URL/tutorials/animation/animation_tree.html</link>
2020-10-01 10:34:47 +02:00
<link title= "Third Person Shooter Demo" > https://godotengine.org/asset-library/asset/678</link>
2019-04-19 11:03:46 +02:00
</tutorials>
2018-07-26 11:56:21 +02:00
<methods >
2018-08-02 09:22:24 +02:00
<method name= "advance" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "delta" type= "float" />
2018-08-02 09:22:24 +02:00
<description >
2020-03-03 19:21:21 +01:00
Manually advance the animations by the specified time (in seconds).
2018-08-02 09:22:24 +02:00
</description>
</method>
2018-07-26 11:56:21 +02:00
<method name= "get_root_motion_transform" qualifiers= "const" >
2021-07-30 15:28:05 +02:00
<return type= "Transform3D" />
2018-07-26 11:56:21 +02:00
<description >
Remove animation 3D transform track, replace by loc/rot/scale tracks.
* `Animation.TYPE_TRANSFORM3D` track is gone.
* Added POSITION_3D, ROTATION_3D, SCALE_3D tracks.
* GLTF2, Collada, FBX importers will only import the track types found.
* Skeleton3D bone poses are now Pos/Rot/Scale, pose matrix removed.
* AnimationPlayer and AnimationTree animate these tracks separately, only when found.
* Removed BakeReset code, is useless with these changes.
This is the first in a series of commits designed to make the animation system in Godot more useful, which includes:
* Better compatibility with Autodesk products
* Better reusability of animations across models (including retargeting).
* Proper animation compression.
* etc.
*Note* GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.
2021-10-12 00:20:58 +02:00
Retrieve the motion of the [member root_motion_track] as a [Transform3D] that can be used elsewhere. If [member root_motion_track] is not a path to a track of type [constant Animation.TYPE_POSITION_3D], [constant Animation.TYPE_SCALE_3D] or [constant Animation.TYPE_ROTATION_3D], returns an identity transformation. See also [member root_motion_track] and [RootMotionView].
2018-07-26 11:56:21 +02:00
</description>
</method>
2018-08-21 00:35:30 +02:00
<method name= "rename_parameter" >
2021-07-30 15:28:05 +02:00
<return type= "void" />
<argument index= "0" name= "old_name" type= "String" />
<argument index= "1" name= "new_name" type= "String" />
2018-08-21 00:35:30 +02:00
<description >
</description>
</method>
2018-07-26 11:56:21 +02:00
</methods>
<members >
2019-06-29 12:38:01 +02:00
<member name= "active" type= "bool" setter= "set_active" getter= "is_active" default= "false" >
2020-03-03 19:21:21 +01:00
If [code]true[/code], the [AnimationTree] will be processing.
2018-07-26 11:56:21 +02:00
</member>
2022-04-20 12:36:54 +02:00
<member name= "advance_expression_base_node" type= "NodePath" setter= "set_advance_expression_base_node" getter= "get_advance_expression_base_node" default= "NodePath(".")" >
The path to the [Node] used to evaluate the AnimationNode [Expression] if one is not explictly specified internally.
</member>
2019-06-29 12:38:01 +02:00
<member name= "anim_player" type= "NodePath" setter= "set_animation_player" getter= "get_animation_player" default= "NodePath("")" >
2020-03-03 19:21:21 +01:00
The path to the [AnimationPlayer] used for animating.
2018-07-26 11:56:21 +02:00
</member>
2021-02-19 13:35:31 +01:00
<member name= "process_callback" type= "int" setter= "set_process_callback" getter= "get_process_callback" enum= "AnimationTree.AnimationProcessCallback" default= "1" >
2021-02-19 13:57:41 +01:00
The process mode of this [AnimationTree]. See [enum AnimationProcessCallback] for available modes.
2018-07-26 11:56:21 +02:00
</member>
2019-06-29 12:38:01 +02:00
<member name= "root_motion_track" type= "NodePath" setter= "set_root_motion_track" getter= "get_root_motion_track" default= "NodePath("")" >
2020-06-02 06:03:05 +02:00
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 [code]":"[/code]. For example, [code]"character/skeleton:ankle"[/code] or [code]"character/mesh:transform/local"[/code].
Remove animation 3D transform track, replace by loc/rot/scale tracks.
* `Animation.TYPE_TRANSFORM3D` track is gone.
* Added POSITION_3D, ROTATION_3D, SCALE_3D tracks.
* GLTF2, Collada, FBX importers will only import the track types found.
* Skeleton3D bone poses are now Pos/Rot/Scale, pose matrix removed.
* AnimationPlayer and AnimationTree animate these tracks separately, only when found.
* Removed BakeReset code, is useless with these changes.
This is the first in a series of commits designed to make the animation system in Godot more useful, which includes:
* Better compatibility with Autodesk products
* Better reusability of animations across models (including retargeting).
* Proper animation compression.
* etc.
*Note* GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.
2021-10-12 00:20:58 +02:00
If the track has type [constant Animation.TYPE_POSITION_3D], [constant Animation.TYPE_ROTATION_3D] or [constant Animation.TYPE_SCALE_3D] the transformation will be cancelled visually, and the animation will appear to stay in place. See also [method get_root_motion_transform] and [RootMotionView].
2018-07-26 11:56:21 +02:00
</member>
2019-07-15 20:42:47 +02:00
<member name= "tree_root" type= "AnimationNode" setter= "set_tree_root" getter= "get_tree_root" >
2020-03-03 19:21:21 +01:00
The root animation node of this [AnimationTree]. See [AnimationNode].
2018-07-26 11:56:21 +02:00
</member>
</members>
<constants >
2021-02-19 13:35:31 +01:00
<constant name= "ANIMATION_PROCESS_PHYSICS" value= "0" enum= "AnimationProcessCallback" >
2020-03-03 19:21:21 +01:00
The animations will progress during the physics frame (i.e. [method Node._physics_process]).
2018-07-26 11:56:21 +02:00
</constant>
2021-02-19 13:35:31 +01:00
<constant name= "ANIMATION_PROCESS_IDLE" value= "1" enum= "AnimationProcessCallback" >
2020-03-03 19:21:21 +01:00
The animations will progress during the idle frame (i.e. [method Node._process]).
2018-07-26 11:56:21 +02:00
</constant>
2021-02-19 13:35:31 +01:00
<constant name= "ANIMATION_PROCESS_MANUAL" value= "2" enum= "AnimationProcessCallback" >
2020-03-03 19:21:21 +01:00
The animations will only progress manually (see [method advance]).
2018-08-02 09:22:24 +02:00
</constant>
2018-07-26 11:56:21 +02:00
</constants>
</class>