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

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 🔗

方法 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