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"]
Обучающие материалы
Свойства
Методы
_get_caption() virtual const |
|
_get_child_by_name(name: StringName) virtual const |
|
_get_child_nodes() virtual const |
|
_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 |
|
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 |
|
get_input_name(input: int) const |
|
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, name: String) 🔗
Выдается узлами, которые наследуют этот класс и имеют внутреннее дерево, когда один из их узлов анимации удаляется. Узлы анимации, которые выдают этот сигнал – AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine и AnimationNodeBlendTree.
animation_node_renamed(object_id: int, old_name: String, new_name: String) 🔗
Выпускается узлами, которые наследуют этот класс и имеют внутреннее дерево, когда изменяется одно из имен их узлов анимации. Узлы анимации, которые выдают этот сигнал – AnimationNodeBlendSpace1D, AnimationNodeBlendSpace2D, AnimationNodeStateMachine и AnimationNodeBlendTree.
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 используется внутренней обработкой сразу после цикла.
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, в этом случае он является абсолютным. Режим фильтра может быть передан опционально.
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) 🔗
Устанавливает пользовательский параметр. Они используются как локальная память, поскольку ресурсы могут повторно использоваться по всему дереву или сценам.