summaryrefslogtreecommitdiff
path: root/doc/classes/AnimationNode.xml
blob: 23f7a316d982774ba221f77080b567f12b5fb909 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
<?xml version="1.0" encoding="UTF-8" ?>
<class name="AnimationNode" inherits="Resource" category="Core" version="3.2">
	<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>
	</tutorials>
	<methods>
		<method name="add_input">
			<return type="void">
			</return>
			<argument index="0" name="name" type="String">
			</argument>
			<description>
				Add an input to the node. This is only useful for nodes created for use in an [AnimationNodeBlendTree]
			</description>
		</method>
		<method name="blend_animation">
			<return type="void">
			</return>
			<argument index="0" name="animation" type="String">
			</argument>
			<argument index="1" name="time" type="float">
			</argument>
			<argument index="2" name="delta" type="float">
			</argument>
			<argument index="3" name="seeked" type="bool">
			</argument>
			<argument index="4" name="blend" type="float">
			</argument>
			<description>
				Blend an animation by "blend" amount (name must be valid in the linked [AnimationPlayer]). A time and delta mas be passed, as well as whether seek happened.
			</description>
		</method>
		<method name="blend_input">
			<return type="float">
			</return>
			<argument index="0" name="input_index" type="int">
			</argument>
			<argument index="1" name="time" type="float">
			</argument>
			<argument index="2" name="seek" type="bool">
			</argument>
			<argument index="3" name="blend" type="float">
			</argument>
			<argument index="4" name="filter" type="int" enum="AnimationNode.FilterAction" default="0">
			</argument>
			<argument index="5" name="optimize" type="bool" default="true">
			</argument>
			<description>
				Blend an input. This is only useful for nodes created for an [AnimationNodeBlendTree]. Time is a delta, unless "seek" is [code]true[/code], in which case it is absolute. A filter mode may be optionally passed.
			</description>
		</method>
		<method name="blend_node">
			<return type="float">
			</return>
			<argument index="0" name="name" type="String">
			</argument>
			<argument index="1" name="node" type="AnimationNode">
			</argument>
			<argument index="2" name="time" type="float">
			</argument>
			<argument index="3" name="seek" type="bool">
			</argument>
			<argument index="4" name="blend" type="float">
			</argument>
			<argument index="5" name="filter" type="int" enum="AnimationNode.FilterAction" default="0">
			</argument>
			<argument index="6" name="optimize" type="bool" default="true">
			</argument>
			<description>
				Blend another animaiton 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="get_caption" qualifiers="virtual">
			<return type="String">
			</return>
			<description>
				Get the text caption for this node (used by some editors)
			</description>
		</method>
		<method name="get_child_by_name" qualifiers="virtual">
			<return type="Object">
			</return>
			<argument index="0" name="name" type="String">
			</argument>
			<description>
				Get the a child node by index (used by editors inheriting from [AnimationRootNode]).
			</description>
		</method>
		<method name="get_child_nodes" qualifiers="virtual">
			<return type="Dictionary">
			</return>
			<description>
				Get all children nodes, in order as a name:node dictionary. Only useful when inheriting [AnimationRootNode].
			</description>
		</method>
		<method name="get_input_count" qualifiers="const">
			<return type="int">
			</return>
			<description>
				Amount of inputs in this node, only useful for nodes that go into [AnimationNodeBlendTree].
			</description>
		</method>
		<method name="get_input_name">
			<return type="String">
			</return>
			<argument index="0" name="input" type="int">
			</argument>
			<description>
				Get the name of an input by index.
			</description>
		</method>
		<method name="get_parameter" qualifiers="const">
			<return type="Variant">
			</return>
			<argument index="0" name="name" type="String">
			</argument>
			<description>
				Get 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="get_parameter_default_value" qualifiers="virtual">
			<return type="Variant">
			</return>
			<argument index="0" name="name" type="String">
			</argument>
			<description>
				Get the default 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="get_parameter_list" qualifiers="virtual">
			<return type="Array">
			</return>
			<description>
				Get the property information for parameter. 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">
			<return type="String">
			</return>
			<description>
				Returns [code]true[/code] whether you want the blend tree editor to display filter editing on this node.
			</description>
		</method>
		<method name="is_path_filtered" qualifiers="const">
			<return type="bool">
			</return>
			<argument index="0" name="path" type="NodePath">
			</argument>
			<description>
				Returns [code]true[/code] whether a given path is filtered.
			</description>
		</method>
		<method name="process" qualifiers="virtual">
			<return type="void">
			</return>
			<argument index="0" name="time" type="float">
			</argument>
			<argument index="1" name="seek" type="bool">
			</argument>
			<description>
				Called when a custom node is processed. The argument "time" is relative, unless "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 returns the time left for the current animation to finish (if unsure, just pass  the value from the main blend being called).
			</description>
		</method>
		<method name="remove_input">
			<return type="void">
			</return>
			<argument index="0" name="index" type="int">
			</argument>
			<description>
				Remove an input, call this only when inactive.
			</description>
		</method>
		<method name="set_filter_path">
			<return type="void">
			</return>
			<argument index="0" name="path" type="NodePath">
			</argument>
			<argument index="1" name="enable" type="bool">
			</argument>
			<description>
				Add/Remove a path for the filter.
			</description>
		</method>
		<method name="set_parameter">
			<return type="void">
			</return>
			<argument index="0" name="name" type="String">
			</argument>
			<argument index="1" name="value" type="Variant">
			</argument>
			<description>
				Set a custom parameter. These are used as local storage, 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">
			Returns whether filtering is enabled.
		</member>
	</members>
	<signals>
		<signal name="removed_from_graph">
			<description>
				Called when the node was removed from the graph.
			</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], and [AnimationNodeBlendTree].
			</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>