Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

AnimationNodeExtension

实验性: This class may be changed or removed in future versions.

继承: AnimationNode < Resource < RefCounted < Object

用于从 GDScript、C# 或 C++ 中继承 AnimationRootNode 的基类。

描述

AnimationNodeExtension 暴露了 AnimationRootNode 的 API,使得用户能够在 GDScript、C# 或 C++ 中扩展它。这个类并不应被直接使用,而是被其他类扩展。它用于为 AnimationTree 系统创建自定义节点。

方法

PackedFloat32Array

_process_animation_node(playback_info: PackedFloat64Array, test_only: bool) virtual required

float

get_remaining_time(node_info: PackedFloat32Array, break_loop: bool) static

bool

is_looping(node_info: PackedFloat32Array) static


方法说明

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

方法 AnimationNode._process() 用于供自定义节点覆盖的版本。它返回一个含有处理过的动画数据的 PackedFloat32Array

PackedFloat64Array 参数包含回放的信息,依次包括以下的浮点数编码值:回放时间与偏移、开始和结束时间、是否为检索请求(编码为一个大于 0 的浮点数)、是否为外部检索请求(编码为一个大于 0 的浮点数)、当前位置 LoopedFlag(编码为一个浮点数)、当前混合权重。

此函数必须返回该节点时间信息的一个 PackedFloat32Array,其依次包含以下值:动画长度、时间位置、偏移、LoopMode(编码为一个浮点数)、动画是否即将结束(编码为一个大于 0 的浮点数)、动画是否永不结束(编码为一个大于 0 的浮点数)。返回数组必须包含所有值。


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

返回给定节点信息的动画剩余时间。对于循环动画,若 break_looptrue,将仅返回剩余时间,否则将返回一个巨大的整型数值。


bool is_looping(node_info: PackedFloat32Array) static 🔗

如果给定的 node_info 对应的动画正在循环,则返回 true