991e6e90ba
Breaking compatibility: If a StateMachineTransition is connected to a nested StateMachine prior to this, it is removed. Also, there was a feature to connect another StateMachine as the End of a StateMachine, which is also removed to avoid reference confusion. It was like a GoTo Statement, also further passing the same reference to the blending process, causing the blending calculation to break or causing some StateMachines to not work.
229 lines
11 KiB
XML
229 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<class name="AnimationNode" inherits="Resource" version="4.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
|
|
<brief_description>
|
|
Base resource for [AnimationTree] nodes.
|
|
</brief_description>
|
|
<description>
|
|
Base resource for [AnimationTree] nodes. In general, it's not used directly, but you can create custom ones with custom blending formulas.
|
|
Inherit this when creating nodes mainly for use in [AnimationNodeBlendTree], otherwise [AnimationRootNode] should be used instead.
|
|
</description>
|
|
<tutorials>
|
|
<link title="AnimationTree">$DOCS_URL/tutorials/animation/animation_tree.html</link>
|
|
</tutorials>
|
|
<methods>
|
|
<method name="_get_caption" qualifiers="virtual const">
|
|
<return type="String" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to override the text caption for this node.
|
|
</description>
|
|
</method>
|
|
<method name="_get_child_by_name" qualifiers="virtual const">
|
|
<return type="AnimationNode" />
|
|
<param index="0" name="name" type="StringName" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to return a child node by its [param name].
|
|
</description>
|
|
</method>
|
|
<method name="_get_child_nodes" qualifiers="virtual const">
|
|
<return type="Dictionary" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to return all children nodes in order as a [code]name: node[/code] dictionary.
|
|
</description>
|
|
</method>
|
|
<method name="_get_parameter_default_value" qualifiers="virtual const">
|
|
<return type="Variant" />
|
|
<param index="0" name="parameter" type="StringName" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to return the default value of a [param parameter]. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
|
|
</description>
|
|
</method>
|
|
<method name="_get_parameter_list" qualifiers="virtual const">
|
|
<return type="Array" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to return a list of the properties on this node. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees. Format is similar to [method Object.get_property_list].
|
|
</description>
|
|
</method>
|
|
<method name="_has_filter" qualifiers="virtual const">
|
|
<return type="bool" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to return whether the blend tree editor should display filter editing on this node.
|
|
</description>
|
|
</method>
|
|
<method name="_is_parameter_read_only" qualifiers="virtual const">
|
|
<return type="bool" />
|
|
<param index="0" name="parameter" type="StringName" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to return whether the [param parameter] is read-only. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
|
|
</description>
|
|
</method>
|
|
<method name="_process" qualifiers="virtual const">
|
|
<return type="float" />
|
|
<param index="0" name="time" type="float" />
|
|
<param index="1" name="seek" type="bool" />
|
|
<param index="2" name="is_external_seeking" type="bool" />
|
|
<param index="3" name="test_only" type="bool" />
|
|
<description>
|
|
When inheriting from [AnimationRootNode], implement this virtual method to run some code when this node is processed. The [param time] parameter is a relative delta, unless [param seek] is [code]true[/code], in which case it is absolute.
|
|
Here, call the [method blend_input], [method blend_node] or [method blend_animation] functions. You can also use [method get_parameter] and [method set_parameter] to modify local memory.
|
|
This function should return the time left for the current animation to finish (if unsure, pass the value from the main blend being called).
|
|
</description>
|
|
</method>
|
|
<method name="add_input">
|
|
<return type="bool" />
|
|
<param index="0" name="name" type="String" />
|
|
<description>
|
|
Adds an input to the node. This is only useful for nodes created for use in an [AnimationNodeBlendTree]. If the addition fails, returns [code]false[/code].
|
|
</description>
|
|
</method>
|
|
<method name="blend_animation">
|
|
<return type="void" />
|
|
<param index="0" name="animation" type="StringName" />
|
|
<param index="1" name="time" type="float" />
|
|
<param index="2" name="delta" type="float" />
|
|
<param index="3" name="seeked" type="bool" />
|
|
<param index="4" name="is_external_seeking" type="bool" />
|
|
<param index="5" name="blend" type="float" />
|
|
<param index="6" name="looped_flag" type="int" enum="Animation.LoopedFlag" default="0" />
|
|
<description>
|
|
Blend an animation by [param blend] amount (name must be valid in the linked [AnimationPlayer]). A [param time] and [param delta] may be passed, as well as whether [param seeked] happened.
|
|
A [param looped_flag] is used by internal processing immediately after the loop. See also [enum Animation.LoopedFlag].
|
|
</description>
|
|
</method>
|
|
<method name="blend_input">
|
|
<return type="float" />
|
|
<param index="0" name="input_index" type="int" />
|
|
<param index="1" name="time" type="float" />
|
|
<param index="2" name="seek" type="bool" />
|
|
<param index="3" name="is_external_seeking" type="bool" />
|
|
<param index="4" name="blend" type="float" />
|
|
<param index="5" name="filter" type="int" enum="AnimationNode.FilterAction" default="0" />
|
|
<param index="6" name="sync" type="bool" default="true" />
|
|
<param index="7" name="test_only" type="bool" default="false" />
|
|
<description>
|
|
Blend an input. This is only useful for nodes created for an [AnimationNodeBlendTree]. The [param time] parameter is a relative delta, unless [param seek] is [code]true[/code], in which case it is absolute. A filter mode may be optionally passed (see [enum FilterAction] for options).
|
|
</description>
|
|
</method>
|
|
<method name="blend_node">
|
|
<return type="float" />
|
|
<param index="0" name="name" type="StringName" />
|
|
<param index="1" name="node" type="AnimationNode" />
|
|
<param index="2" name="time" type="float" />
|
|
<param index="3" name="seek" type="bool" />
|
|
<param index="4" name="is_external_seeking" type="bool" />
|
|
<param index="5" name="blend" type="float" />
|
|
<param index="6" name="filter" type="int" enum="AnimationNode.FilterAction" default="0" />
|
|
<param index="7" name="sync" type="bool" default="true" />
|
|
<param index="8" name="test_only" type="bool" default="false" />
|
|
<description>
|
|
Blend another animation node (in case this node contains children animation nodes). This function is only useful if you inherit from [AnimationRootNode] instead, else editors will not display your node for addition.
|
|
</description>
|
|
</method>
|
|
<method name="find_input" qualifiers="const">
|
|
<return type="int" />
|
|
<param index="0" name="name" type="String" />
|
|
<description>
|
|
Returns the input index which corresponds to [param name]. If not found, returns [code]-1[/code].
|
|
</description>
|
|
</method>
|
|
<method name="get_input_count" qualifiers="const">
|
|
<return type="int" />
|
|
<description>
|
|
Amount of inputs in this node, only useful for nodes that go into [AnimationNodeBlendTree].
|
|
</description>
|
|
</method>
|
|
<method name="get_input_name" qualifiers="const">
|
|
<return type="String" />
|
|
<param index="0" name="input" type="int" />
|
|
<description>
|
|
Gets the name of an input by index.
|
|
</description>
|
|
</method>
|
|
<method name="get_parameter" qualifiers="const">
|
|
<return type="Variant" />
|
|
<param index="0" name="name" type="StringName" />
|
|
<description>
|
|
Gets the value of a parameter. Parameters are custom local memory used for your nodes, given a resource can be reused in multiple trees.
|
|
</description>
|
|
</method>
|
|
<method name="is_path_filtered" qualifiers="const">
|
|
<return type="bool" />
|
|
<param index="0" name="path" type="NodePath" />
|
|
<description>
|
|
Returns whether the given path is filtered.
|
|
</description>
|
|
</method>
|
|
<method name="remove_input">
|
|
<return type="void" />
|
|
<param index="0" name="index" type="int" />
|
|
<description>
|
|
Removes an input, call this only when inactive.
|
|
</description>
|
|
</method>
|
|
<method name="set_filter_path">
|
|
<return type="void" />
|
|
<param index="0" name="path" type="NodePath" />
|
|
<param index="1" name="enable" type="bool" />
|
|
<description>
|
|
Adds or removes a path for the filter.
|
|
</description>
|
|
</method>
|
|
<method name="set_input_name">
|
|
<return type="bool" />
|
|
<param index="0" name="input" type="int" />
|
|
<param index="1" name="name" type="String" />
|
|
<description>
|
|
Sets the name of the input at the given [param input] index. If the setting fails, returns [code]false[/code].
|
|
</description>
|
|
</method>
|
|
<method name="set_parameter">
|
|
<return type="void" />
|
|
<param index="0" name="name" type="StringName" />
|
|
<param index="1" name="value" type="Variant" />
|
|
<description>
|
|
Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes.
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="filter_enabled" type="bool" setter="set_filter_enabled" getter="is_filter_enabled">
|
|
If [code]true[/code], filtering is enabled.
|
|
</member>
|
|
</members>
|
|
<signals>
|
|
<signal name="animation_node_removed">
|
|
<param index="0" name="object_id" type="int" />
|
|
<param index="1" name="name" type="String" />
|
|
<description>
|
|
Emitted by nodes that inherit from this class and that have an internal tree when one of their nodes removes. The nodes that emit this signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], [AnimationNodeStateMachine], and [AnimationNodeBlendTree].
|
|
</description>
|
|
</signal>
|
|
<signal name="animation_node_renamed">
|
|
<param index="0" name="object_id" type="int" />
|
|
<param index="1" name="old_name" type="String" />
|
|
<param index="2" name="new_name" type="String" />
|
|
<description>
|
|
Emitted by nodes that inherit from this class and that have an internal tree when one of their node names changes. The nodes that emit this signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], [AnimationNodeStateMachine], and [AnimationNodeBlendTree].
|
|
</description>
|
|
</signal>
|
|
<signal name="tree_changed">
|
|
<description>
|
|
Emitted by nodes that inherit from this class and that have an internal tree when one of their nodes changes. The nodes that emit this signal are [AnimationNodeBlendSpace1D], [AnimationNodeBlendSpace2D], [AnimationNodeStateMachine], [AnimationNodeBlendTree] and [AnimationNodeTransition].
|
|
</description>
|
|
</signal>
|
|
</signals>
|
|
<constants>
|
|
<constant name="FILTER_IGNORE" value="0" enum="FilterAction">
|
|
Do not use filtering.
|
|
</constant>
|
|
<constant name="FILTER_PASS" value="1" enum="FilterAction">
|
|
Paths matching the filter will be allowed to pass.
|
|
</constant>
|
|
<constant name="FILTER_STOP" value="2" enum="FilterAction">
|
|
Paths matching the filter will be discarded.
|
|
</constant>
|
|
<constant name="FILTER_BLEND" value="3" enum="FilterAction">
|
|
Paths matching the filter will be blended (by the blend value).
|
|
</constant>
|
|
</constants>
|
|
</class>
|