Up to date

This page is up to date for Godot 4.3. If you still find outdated information, please open an issue.

AnimationNodeExtension

Experimental: This class may be changed or removed in future versions.

Inherits: AnimationNode < Resource < RefCounted < Object

Base class for extending AnimationRootNodes from GDScript, C#, or C++.

Description

AnimationNodeExtension exposes the APIs of AnimationRootNode to allow users to extend it from GDScript, C#, or C++. This class is not meant to be used directly, but to be extended by other classes. It is used to create custom nodes for the AnimationTree system.

Methods

PackedFloat32Array

_process_animation_node(playback_info: PackedFloat64Array, test_only: bool) virtual

float

get_remaining_time(node_info: PackedFloat32Array, break_loop: bool) static

bool

is_looping(node_info: PackedFloat32Array) static


Method Descriptions

PackedFloat32Array _process_animation_node(playback_info: PackedFloat64Array, test_only: bool) virtual 🔗

A version of the AnimationNode._process method that is meant to be overridden by custom nodes. It returns a PackedFloat32Array with the processed animation data.

The PackedFloat64Array parameter contains the playback information, containing the following values encoded as floating point numbers (in order): playback time and delta, start and end times, whether a seek was requested (encoded as a float greater than 0), whether the seek request was externally requested (encoded as a float greater than 0), the current LoopedFlag (encoded as a float), and the current blend weight.

The function must return a PackedFloat32Array of the node's time info, containing the following values (in order): animation length, time position, delta, LoopMode (encoded as a float), whether the animation is about to end (encoded as a float greater than 0) and whether the animation is infinite (encoded as a float greater than 0). All values must be included in the returned array.


float get_remaining_time(node_info: PackedFloat32Array, break_loop: bool) static 🔗

Returns the animation's remaining time for the given node info. For looping animations, it will only return the remaining time if break_loop is true, a large integer value will be returned otherwise.


bool is_looping(node_info: PackedFloat32Array) static 🔗

Returns true if the animation for the given node_info is looping.