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.
Checking the stable version of the documentation...
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]
Посібники
Властивості
Методи
String |
_get_caption() virtual const |
_get_child_by_name(name: StringName) virtual const |
|
_get_child_nodes() virtual const |
|
Variant |
_get_parameter_default_value(parameter: StringName) virtual const |
_get_parameter_list() virtual const |
|
_has_filter() virtual const |
|
_is_parameter_read_only(parameter: StringName) virtual const |
|
_process(time: float, seek: bool, is_external_seeking: bool, test_only: bool) virtual |
|
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) |
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) |
|
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) |
|
find_input(name: String) const |
|
get_input_count() const |
|
String |
get_input_name(input: int) const |
Variant |
get_parameter(name: StringName) const |
is_path_filtered(path: NodePath) const |
|
is_process_testing() const |
|
void |
remove_input(index: int) |
void |
set_filter_path(path: NodePath, enable: 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
Шляхи, що відповідають фільтру, будуть змішані (за значенням змішування).
Описи властивостей
Якщо 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.
Кількість вхідних даних у цьому вузлі анімації, корисна лише для вузлів анімації, які входять до 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) 🔗
Задає користувацький параметр. Вони використовуються як локальна пам'ять, оскільки ресурси можна повторно використовувати у дереві або сценах.