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...
AnimationNodeBlendSpace1D
Наследует: AnimationRootNode < AnimationNode < Resource < RefCounted < Object
Набор AnimationRootNode, размещенных на виртуальной оси, плавно переходящих между двумя соседними. Используется AnimationTree.
Описание
Ресурс, используемый AnimationNodeBlendTree.
AnimationNodeBlendSpace1D представляет собой виртуальную ось, на которую можно добавить любой тип AnimationRootNode с помощью add_blend_point(). Выводит линейную смесь двух AnimationRootNode, смежных с текущим значением.
Вы можете задать пределы оси с помощью min_space и max_space.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
void |
add_blend_point(node: AnimationRootNode, pos: float, at_index: int = -1, name: StringName = &"") |
find_blend_point_by_name(name: StringName) const |
|
get_blend_point_count() const |
|
get_blend_point_name(point: int) const |
|
get_blend_point_node(point: int) const |
|
get_blend_point_position(point: int) const |
|
void |
remove_blend_point(point: int) |
void |
reorder_blend_point(from_index: int, to_index: int) |
void |
set_blend_point_name(point: int, name: StringName) |
void |
set_blend_point_node(point: int, node: AnimationRootNode) |
void |
set_blend_point_position(point: int, pos: float) |
Перечисления
enum BlendMode: 🔗
BlendMode BLEND_MODE_INTERPOLATED = 0
Интерполяция между анимациями линейная.
BlendMode BLEND_MODE_DISCRETE = 1
Пространство смешивания воспроизводит анимацию узла анимации, к которому ближе всего позиция смешивания. Полезно для покадровой 2D-анимации.
BlendMode BLEND_MODE_DISCRETE_CARRY = 2
Аналогично BLEND_MODE_DISCRETE, но запускает новую анимацию с позиции воспроизведения последней анимации.
enum SyncMode: 🔗
SyncMode SYNC_MODE_NONE = 0
Неактивные анимации замораживаются и не переходят к следующему этапу.
SyncMode SYNC_MODE_INDEPENDENT = 1
Неактивные анимации продвигаются с весом 0. Это эквивалентно предыдущему поведению sync = true.
SyncMode SYNC_MODE_CYCLIC_MUTABLE = 2
Все анимации масштабируются по времени, чтобы оставаться синхронизированными, при этом длительность цикла динамически вычисляется на основе активных весов смешивания. Это самонормализация: отдельная анимация воспроизводится с нормальной скоростью.
Примечание: Если вы примените AnimationNodeTimeSeek к результату при обработке анимаций разной длины, синхронизация будет нарушена. В таких случаях рекомендуется использовать AnimationNodeAnimation.use_custom_timeline для выравнивания длительности анимаций.
SyncMode SYNC_MODE_CYCLIC_CONSTANT = 3
Все анимации масштабируются по времени таким образом, что каждый цикл завершается за cyclic_length секунд, что обеспечивает их синхронизацию независимо от их индивидуальной длины.
Примечание: Если вы примените AnimationNodeTimeSeek к результату при обработке анимаций разной длины, синхронизация будет нарушена. В таких случаях рекомендуется использовать AnimationNodeAnimation.use_custom_timeline для выравнивания длительности анимаций.
Описания свойств
Управляет интерполяцией между анимациями.
Длительность цикла в секундах, используемая SYNC_MODE_CYCLIC_CONSTANT. Все анимации масштабируются по времени таким образом, чтобы за этот период они завершили один полный цикл. Для применения циклической синхронизации значение должно быть больше 0.
Верхний предел оси пространства смешивания для положения точек. См. add_blend_point().
Нижний предел оси пространства смешивания для положения точек. См. add_blend_point().
Приращение позиции для привязки при перемещении точки по оси.
Устарело: Use sync_mode instead.
Если true, режим синхронизации включен (эквивалентно SYNC_MODE_INDEPENDENT). Это свойство сохранено для обратной совместимости.
Управляет синхронизацией анимаций при смешивании. См. SyncMode для получения информации о доступных параметрах.
String value_label = "value" 🔗
Метка виртуальной оси пространства смешивания.
Описания метода
void add_blend_point(node: AnimationRootNode, pos: float, at_index: int = -1, name: StringName = &"") 🔗
Добавляет новую точку с именем name, соответствующую узлу node на виртуальной оси в позиции, заданной параметром pos. Вы можете вставить её в указанный индекс, используя аргумент at_index. Если оставить значение по умолчанию для at_index, точка будет добавлена в конец массива точек смешивания.
Примечание: Если имя не указано, в качестве идентификатора используется индекс. В будущем пустые имена будут объявлены устаревшими, поэтому рекомендуется явно передавать имя.
int find_blend_point_by_name(name: StringName) const 🔗
Возвращает индекс точки смешения с заданным name. Возвращает -1, если точка смешения с таким именем не найдена.
int get_blend_point_count() const 🔗
Возвращает количество точек на оси смешивания.
StringName get_blend_point_name(point: int) const 🔗
Возвращает имя точки смешения по индексу point.
AnimationRootNode get_blend_point_node(point: int) const 🔗
Возвращает AnimationNode, на который ссылается точка с индексом point.
float get_blend_point_position(point: int) const 🔗
Возвращает положение точки с индексом point.
void remove_blend_point(point: int) 🔗
Удаляет точку с индексом point из оси смешивания.
void reorder_blend_point(from_index: int, to_index: int) 🔗
Меняет местами точки смешивания в индексах from_index и to_index, заменив их позиции и свойства.
void set_blend_point_name(point: int, name: StringName) 🔗
Задает имя точки смешивания по индексу point. Если имя конфликтует с существующей точкой, будет автоматически сгенерировано уникальное имя.
void set_blend_point_node(point: int, node: AnimationRootNode) 🔗
Изменяет AnimationNode, на который ссылается точка с индексом point.
void set_blend_point_position(point: int, pos: float) 🔗
Обновляет положение точки с индексом point на оси смешивания.