mirror of
				https://github.com/godotengine/godot.git
				synced 2025-10-30 21:21:10 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			131 lines
		
	
	
	
		
			7 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			131 lines
		
	
	
	
		
			7 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0" encoding="UTF-8" ?>
 | |
| <class name="AnimationTree" inherits="Node" version="4.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
 | |
| 	<brief_description>
 | |
| 		A node to be used for advanced animation transitions in an [AnimationPlayer].
 | |
| 	</brief_description>
 | |
| 	<description>
 | |
| 		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.
 | |
| 	</description>
 | |
| 	<tutorials>
 | |
| 		<link title="Using AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
 | |
| 		<link title="Third Person Shooter Demo">https://godotengine.org/asset-library/asset/678</link>
 | |
| 	</tutorials>
 | |
| 	<methods>
 | |
| 		<method name="advance">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="delta" type="float" />
 | |
| 			<description>
 | |
| 				Manually advance the animations by the specified time (in seconds).
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_root_motion_position" qualifiers="const">
 | |
| 			<return type="Vector3" />
 | |
| 			<description>
 | |
| 				Retrieve the motion of position with the [member root_motion_track] as a [Vector3] that can be used elsewhere.
 | |
| 				If [member root_motion_track] is not a path to a track of type [constant Animation.TYPE_POSITION_3D], returns [code]Vector3(0, 0, 0)[/code].
 | |
| 				See also [member root_motion_track] and [RootMotionView].
 | |
| 				The most basic example is applying position to [CharacterBody3D]:
 | |
| 				[codeblocks]
 | |
| 				[gdscript]
 | |
| 				var current_rotation: Quaternion
 | |
| 
 | |
| 				func _process(delta):
 | |
| 				    if Input.is_action_just_pressed("animate"):
 | |
| 				        current_rotation = get_quaternion()
 | |
| 				        state_machine.travel("Animate")
 | |
| 				    var velocity: Vector3 = current_rotation * animation_tree.get_root_motion_position() / delta
 | |
| 				    set_velocity(velocity)
 | |
| 				    move_and_slide()
 | |
| 				[/gdscript]
 | |
| 				[/codeblocks]
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_root_motion_rotation" qualifiers="const">
 | |
| 			<return type="Quaternion" />
 | |
| 			<description>
 | |
| 				Retrieve the motion of rotation with the [member root_motion_track] as a [Quaternion] that can be used elsewhere.
 | |
| 				If [member root_motion_track] is not a path to a track of type [constant Animation.TYPE_ROTATION_3D], returns [code]Quaternion(0, 0, 0, 1)[/code].
 | |
| 				See also [member root_motion_track] and [RootMotionView].
 | |
| 				The most basic example is applying rotation to [CharacterBody3D]:
 | |
| 				[codeblocks]
 | |
| 				[gdscript]
 | |
| 				func _process(delta):
 | |
| 				    if Input.is_action_just_pressed("animate"):
 | |
| 				        state_machine.travel("Animate")
 | |
| 				    set_quaternion(get_quaternion() * animation_tree.get_root_motion_rotation())
 | |
| 				[/gdscript]
 | |
| 				[/codeblocks]
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="get_root_motion_scale" qualifiers="const">
 | |
| 			<return type="Vector3" />
 | |
| 			<description>
 | |
| 				Retrieve the motion of scale with the [member root_motion_track] as a [Vector3] that can be used elsewhere.
 | |
| 				If [member root_motion_track] is not a path to a track of type [constant Animation.TYPE_SCALE_3D], returns [code]Vector3(0, 0, 0)[/code].
 | |
| 				See also [member root_motion_track] and [RootMotionView].
 | |
| 				The most basic example is applying scale to [CharacterBody3D]:
 | |
| 				[codeblocks]
 | |
| 				[gdscript]
 | |
| 				var current_scale: Vector3 = Vector3(1, 1, 1)
 | |
| 				var scale_accum: Vector3 = Vector3(1, 1, 1)
 | |
| 
 | |
| 				func _process(delta):
 | |
| 				    if Input.is_action_just_pressed("animate"):
 | |
| 				        current_scale = get_scale()
 | |
| 				        scale_accum = Vector3(1, 1, 1)
 | |
| 				        state_machine.travel("Animate")
 | |
| 				    scale_accum += animation_tree.get_root_motion_scale()
 | |
| 				    set_scale(current_scale * scale_accum)
 | |
| 				[/gdscript]
 | |
| 				[/codeblocks]
 | |
| 			</description>
 | |
| 		</method>
 | |
| 		<method name="rename_parameter">
 | |
| 			<return type="void" />
 | |
| 			<param index="0" name="old_name" type="String" />
 | |
| 			<param index="1" name="new_name" type="String" />
 | |
| 			<description>
 | |
| 			</description>
 | |
| 		</method>
 | |
| 	</methods>
 | |
| 	<members>
 | |
| 		<member name="active" type="bool" setter="set_active" getter="is_active" default="false">
 | |
| 			If [code]true[/code], the [AnimationTree] will be processing.
 | |
| 		</member>
 | |
| 		<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 explicitly specified internally.
 | |
| 		</member>
 | |
| 		<member name="anim_player" type="NodePath" setter="set_animation_player" getter="get_animation_player" default="NodePath("")">
 | |
| 			The path to the [AnimationPlayer] used for animating.
 | |
| 		</member>
 | |
| 		<member name="process_callback" type="int" setter="set_process_callback" getter="get_process_callback" enum="AnimationTree.AnimationProcessCallback" default="1">
 | |
| 			The process mode of this [AnimationTree]. See [enum AnimationProcessCallback] for available modes.
 | |
| 		</member>
 | |
| 		<member name="root_motion_track" type="NodePath" setter="set_root_motion_track" getter="get_root_motion_track" default="NodePath("")">
 | |
| 			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].
 | |
| 			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_position], [method get_root_motion_rotation], [method get_root_motion_scale] and [RootMotionView].
 | |
| 		</member>
 | |
| 		<member name="tree_root" type="AnimationNode" setter="set_tree_root" getter="get_tree_root">
 | |
| 			The root animation node of this [AnimationTree]. See [AnimationNode].
 | |
| 		</member>
 | |
| 	</members>
 | |
| 	<signals>
 | |
| 		<signal name="animation_player_changed">
 | |
| 			<description>
 | |
| 				Emitted when the [member anim_player] is changed.
 | |
| 			</description>
 | |
| 		</signal>
 | |
| 	</signals>
 | |
| 	<constants>
 | |
| 		<constant name="ANIMATION_PROCESS_PHYSICS" value="0" enum="AnimationProcessCallback">
 | |
| 			The animations will progress during the physics frame (i.e. [method Node._physics_process]).
 | |
| 		</constant>
 | |
| 		<constant name="ANIMATION_PROCESS_IDLE" value="1" enum="AnimationProcessCallback">
 | |
| 			The animations will progress during the idle frame (i.e. [method Node._process]).
 | |
| 		</constant>
 | |
| 		<constant name="ANIMATION_PROCESS_MANUAL" value="2" enum="AnimationProcessCallback">
 | |
| 			The animations will only progress manually (see [method advance]).
 | |
| 		</constant>
 | |
| 	</constants>
 | |
| </class>
 | 
