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.

AnimationNode

Успадковує: Resource < RefCounted < Object

Успадковано від: AnimationNodeExtension, AnimationNodeOutput, AnimationNodeSync, AnimationNodeTimeScale, AnimationNodeTimeSeek, AnimationRootNode

Базовий клас для вузлів AnimationTree. Не стосується вузлів сцени.

Опис

Базовий ресурс для вузлів AnimationTree. Загалом він не використовується безпосередньо, але ви можете створювати власні за допомогою спеціальних формул змішування.

Успадкуйте це під час створення вузлів анімації, головним чином для використання в AnimationNodeBlendTree, інакше замість нього слід використовувати AnimationRootNode.

Ви можете отримати доступ до інформації про час як параметра лише для читання, який обробляється та зберігається в попередньому кадрі для всіх вузлів, крім AnimationNodeOutput.

Примітка: Якщо в AnimationNode існує кілька вхідних даних, яка інформація про час матиме пріоритет, залежить від типу 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]

Посібники

Властивості

bool

filter_enabled

Методи

String

_get_caption() virtual const

AnimationNode

_get_child_by_name(name: StringName) virtual const

Dictionary

_get_child_nodes() virtual const

Variant

_get_parameter_default_value(parameter: StringName) virtual const

Array

_get_parameter_list() virtual const

bool

_has_filter() virtual const

bool

_is_parameter_read_only(parameter: StringName) virtual const

float

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

bool

add_input(name: String)

void

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

float

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

float

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

int

find_input(name: String) const

int

get_input_count() const

String

get_input_name(input: int) const

Variant

get_parameter(name: StringName) const

int

get_processing_animation_tree_instance_id() const

bool

is_path_filtered(path: NodePath) const

bool

is_process_testing() const

void

remove_input(index: int)

void

set_filter_path(path: NodePath, enable: bool)

bool

set_input_name(input: int, name: String)

void

set_parameter(name: StringName, value: Variant)


Сигнали

animation_node_removed(object_id: int, node_name: String) 🔗

Випускається вузлами, які успадковують цей клас і мають внутрішнє дерево, коли один із їхніх вузлів анімації видаляється. Вузли анімації, які видають цей сигнал, це AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine і AnimationNodeBlendTree.


animation_node_renamed(object_id: int, old_name: String, new_name: String) 🔗

Випромінюється вузлами, які успадковують цей клас і мають внутрішнє дерево, коли одне з їхніх імен вузлів анімації змінюється. Вузли анімації, які видають цей сигнал, це AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine і AnimationNodeBlendTree.


node_updated(object_id: int) 🔗

Експериментальний: Цей сигнал може бути змінено або усунуто у майбутньому.

Emitted by AnimationNodeAnimation when its AnimationNodeAnimation.animation resource is changed, or by AnimationNodeBlendTree when its connections change.


tree_changed() 🔗

Випускається вузлами, які успадковують цей клас і мають внутрішнє дерево, коли один із їхніх вузлів анімації змінюється. Вузли анімації, які випромінюють цей сигнал: AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine, AnimationNodeBlendTree і AnimationNodeTransition.


Переліки

enum FilterAction: 🔗

FilterAction FILTER_IGNORE = 0

Не використовувати фільтрування.

FilterAction FILTER_PASS = 1

Шляхи, що відповідають фільтру, будуть пропущені.

FilterAction FILTER_STOP = 2

Шляхи, що відповідають фільтру, будуть відкинуті.

FilterAction FILTER_BLEND = 3

Шляхи, що відповідають фільтру, будуть змішані (за значенням змішування).


Описи властивостей

bool filter_enabled 🔗

  • void set_filter_enabled(value: bool)

  • bool is_filter_enabled()

Якщо true, фільтрування ввімкнено.


Описи методів

String _get_caption() virtual const 🔗

Успадковуючи від AnimationRootNode, реалізуйте цей віртуальний метод, щоб замінити текстовий підпис для цього вузла анімації.


AnimationNode _get_child_by_name(name: StringName) virtual const 🔗

Успадковуючи від AnimationRootNode, реалізуйте цей віртуальний метод, щоб повернути дочірній вузол анімації за його name.


Dictionary _get_child_nodes() virtual const 🔗

Успадковуючи від AnimationRootNode, реалізуйте цей віртуальний метод, щоб повернути всі дочірні вузли анімації в порядку name: node словник.


Variant _get_parameter_default_value(parameter: StringName) virtual const 🔗

При успадкуванні від AnimationRootNode реалізуйте цей віртуальний метод, щоб повернути значення за замовчуванням для parameter. Параметри — це спеціальна локальна пам’ять, яка використовується для ваших вузлів анімації, оскільки ресурс можна перевикористовувати в кількох деревах.


Array _get_parameter_list() virtual const 🔗

Успадковуючи від AnimationRootNode, реалізуйте цей віртуальний метод, щоб повернути список властивостей цього вузла анімації. Параметри — це спеціальна локальна пам’ять, яка використовується для ваших вузлів анімації, оскільки ресурс можна повторно використовувати в кількох деревах. Формат схожий на Object.get_property_list().


bool _has_filter() virtual const 🔗

Успадковуючи від AnimationRootNode, реалізуйте цей віртуальний метод, щоб повернути, чи повинен редактор дерева змішування відображати редагування фільтра на цьому вузлі анімації.


bool _is_parameter_read_only(parameter: StringName) virtual const 🔗

Під час успадкування від AnimationRootNode реалізуйте цей віртуальний метод, щоб повернути, чи є parameter лише для читання. Параметри — це спеціальна локальна пам’ять, яка використовується для ваших вузлів анімації, оскільки ресурс можна повторно використовувати в кількох деревах.


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

Застаріло: 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.

Успадковуючи від AnimationRootNode, реалізуйте цей віртуальний метод для запуску деякого коду під час обробки цього вузла анімації. Параметр time є відносною дельтою, якщо seek не має значення true, у такому випадку він є абсолютним.

Тут викличте функції blend_input(), blend_node() або blend_animation(). Ви також можете використовувати get_parameter() і set_parameter() для зміни локальної пам'яті.

Ця функція має повертати дельту.


bool add_input(name: String) 🔗

Додає вхідні дані до вузла анімації. Це корисно лише для вузлів анімації, створених для використання в AnimationNodeBlendTree. Якщо додавання не вдається, повертає false.


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

Змішує анімацію на величину blend (назва має бути дійсною у пов'язаному AnimationPlayer). Можна передати time і delta, а також те, чи відбулося seeked.

Позначка looped_flag використовується внутрішньою обробкою одразу після циклу. Дивіться також LoopedFlag.


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

Змішування входу. Це корисно лише для вузлів анімації, створених для AnimationNodeBlendTree. Параметр time є відносною дельтою, якщо seek не має значення true, у такому випадку він є абсолютним. Додатково можна передати режим фільтра (параметри див. FilterAction).


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

Змішайте інший вузол анімації (якщо цей вузол анімації містить дочірні вузли анімації). Ця функція корисна, лише якщо ви наслідуєте AnimationRootNode, інакше редактори не відображатимуть ваш вузол анімації для додавання.


int find_input(name: String) const 🔗

Повертає вхідний індекс, який відповідає name. Якщо не знайдено, повертає -1.


int get_input_count() const 🔗

Кількість вхідних даних у цьому вузлі анімації, корисна лише для вузлів анімації, які входять до AnimationNodeBlendTree.


String get_input_name(input: int) const 🔗

Отримує назву вхідних даних за індексом.


Variant get_parameter(name: StringName) const 🔗

Отримує значення параметра. Параметри — це спеціальна локальна пам’ять, яка використовується для ваших вузлів анімації, оскільки ресурс можна повторно використовувати в кількох деревах.


int get_processing_animation_tree_instance_id() const 🔗

Повертає ідентифікатор об’єкта AnimationTree, якому належить цей вузол.

Примітка. Цей метод слід викликати лише з методу AnimationNodeExtension._process_animation_node(), інакше він поверне недійсний ідентифікатор.


bool is_path_filtered(path: NodePath) const 🔗

Повертає true, якщо заданий шлях відфільтровано.


bool is_process_testing() const 🔗

Повертає true, якщо цей вузол анімації обробляється лише в тестовому режимі.


void remove_input(index: int) 🔗

Видаляє вхід, робіть виклик лише коли він неактивний.


void set_filter_path(path: NodePath, enable: bool) 🔗

Додає або видаляє шлях до фільтра.


bool set_input_name(input: int, name: String) 🔗

Встановлює назву входу за заданим індексом input. Якщо встановлення не вдалося, повертає false.


void set_parameter(name: StringName, value: Variant) 🔗

Задає користувацький параметр. Вони використовуються як локальна пам'ять, оскільки ресурси можна повторно використовувати у дереві або сценах.