Class reference

AnimationNode

Inherits Resource

Base class for AnimationTree nodes. Not related to scene nodes.

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 animation nodes mainly for use in AnimationNodeBlendTree, otherwise AnimationRootNode should be used instead. You can access the time information as read-only parameter which is processed and stored in the previous frame for all nodes except AnimationNodeOutput. Note: If multiple inputs exist in the AnimationNode, which time information takes precedence depends on the type of AnimationNode.

		var current_length = $AnimationTree["parameters/AnimationNodeName/current_length"]
		var current_position = $AnimationTree["parameters/AnimationNodeName/current_position"]
		var current_delta = $AnimationTree["parameters/AnimationNodeName/current_delta"]
		

Properties

bool filter_enabled

If true, filtering is enabled.

Methods

String _get_caption() virtual const

When inheriting from AnimationRootNode, implement this virtual method to override the text caption for this animation node.

Dictionary _get_child_nodes() virtual const

When inheriting from AnimationRootNode, implement this virtual method to return all child animation nodes in order as a name: node dictionary.

Variant _get_parameter_default_value(StringName parameter) virtual const

When inheriting from AnimationRootNode, implement this virtual method to return the default value of a parameter. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees.

Array _get_parameter_list() virtual const

When inheriting from AnimationRootNode, implement this virtual method to return a list of the properties on this animation node. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees. Format is similar to Object.get_property_list().

bool _has_filter() virtual const

When inheriting from AnimationRootNode, implement this virtual method to return whether the blend tree editor should display filter editing on this animation node.

bool _is_parameter_read_only(StringName parameter) virtual const

When inheriting from AnimationRootNode, implement this virtual method to return whether the parameter is read-only. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees.

float _process(float time, bool seek, bool is_external_seeking, bool test_only) virtual

Deprecated.

Currently this is mostly useless as there is a lack of many APIs to extend AnimationNode by GDScript. It is planned that a more flexible API using structures will be provided in the future.

When inheriting from AnimationRootNode, implement this virtual method to run some code when this animation node is processed. The time parameter is a relative delta, unless seek is true, in which case it is absolute. Here, call the blend_input(), blend_node() or blend_animation() functions. You can also use get_parameter() and set_parameter() to modify local memory. This function should return the delta.

bool add_input(String name)

Adds an input to the animation node. This is only useful for animation nodes created for use in an AnimationNodeBlendTree. If the addition fails, returns false.

void blend_animation(StringName animation, float time, float delta, bool seeked, bool is_external_seeking, float blend, int looped_flag = 0)

Blends an animation by blend amount (name must be valid in the linked AnimationPlayer). A time and delta may be passed, as well as whether seeked happened. A looped_flag is used by internal processing immediately after the loop.

float blend_input(int input_index, float time, bool seek, bool is_external_seeking, float blend, int filter = 0, bool sync = true, bool test_only = false)

Blends an input. This is only useful for animation nodes created for an AnimationNodeBlendTree. The time parameter is a relative delta, unless seek is true, in which case it is absolute. A filter mode may be optionally passed.

float blend_node(StringName name, AnimationNode node, float time, bool seek, bool is_external_seeking, float blend, int filter = 0, bool sync = true, bool test_only = false)

Blend another animation node (in case this animation node contains child animation nodes). This function is only useful if you inherit from AnimationRootNode instead, otherwise editors will not display your animation node for addition.

int find_input(String name) const

Returns the input index which corresponds to name. If not found, returns -1.

int get_input_count() const

Amount of inputs in this animation node, only useful for animation nodes that go into AnimationNodeBlendTree.

String get_input_name(int input) const

Gets the name of an input by index.

Variant get_parameter(StringName name) const

Gets the value of a parameter. Parameters are custom local memory used for your animation nodes, given a resource can be reused in multiple trees.

bool is_path_filtered(NodePath path) const

Returns true if the given path is filtered.

bool is_process_testing() const

Returns true if this animation node is being processed in test-only mode.

void remove_input(int index)

Removes an input, call this only when inactive.

void set_filter_path(NodePath path, bool enable)

Adds or removes a path for the filter.

bool set_input_name(int input, String name)

Sets the name of the input at the given input index. If the setting fails, returns false.

void set_parameter(StringName name, Variant value)

Sets a custom parameter. These are used as local memory, because resources can be reused across the tree or scenes.

Signals

Constants

FILTER_IGNORE = 0

Enum: FilterAction

Do not use filtering.

FILTER_PASS = 1

Enum: FilterAction

Paths matching the filter will be allowed to pass.

FILTER_STOP = 2

Enum: FilterAction

Paths matching the filter will be discarded.

FILTER_BLEND = 3

Enum: FilterAction

Paths matching the filter will be blended (by the blend value).

Tutorials

Source revision 4f5b14abade2
Connection interrupted. Reload×

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.