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...
AnimationNodeBlendSpace2D
Наследует: AnimationRootNode < AnimationNode < Resource < RefCounted < Object
Набор AnimationRootNode, размещенных в 2D-координатах, плавно переходящих между тремя соседними. Используется AnimationTree.
Описание
Ресурс, используемый AnimationNodeBlendTree.
AnimationNodeBlendSpace2D представляет собой виртуальное 2D-пространство, на котором размещены AnimationRootNode. Выводит линейное смешивание трех смежных анимаций с использованием веса Vector2. Смежный в этом контексте означает три AnimationRootNode, составляющие треугольник, содержащий текущее значение.
Вы можете добавить вершины в пространство смешивания с помощью add_blend_point() и автоматически триангулировать его, установив auto_triangles на true. В противном случае используйте add_triangle() и remove_triangle() для триангуляции пространства смешивания вручную.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Методы
void |
add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1, name: StringName = &"") |
void |
add_triangle(x: int, y: int, z: int, at_index: int = -1) |
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 |
|
get_triangle_count() const |
|
get_triangle_point(triangle: int, point: int) |
|
void |
remove_blend_point(point: int) |
void |
remove_triangle(triangle: 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: Vector2) |
Сигналы
triangles_updated() 🔗
Вызывается каждый раз, когда создаются, удаляются треугольники пространства смешивания или когда одна из их вершин меняет положение.
Перечисления
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 для выравнивания длительности анимаций.
Описания свойств
Если true, пространство смешивания триангулируется автоматически. Сетка обновляется каждый раз, когда вы добавляете или удаляете точки с помощью add_blend_point() и remove_blend_point().
Управляет интерполяцией между анимациями.
Длительность цикла в секундах, используемая SYNC_MODE_CYCLIC_CONSTANT. Все анимации масштабируются по времени таким образом, чтобы за этот период они завершили один полный цикл. Для применения циклической синхронизации значение должно быть больше 0.
Vector2 max_space = Vector2(1, 1) 🔗
Верхний предел осей X и Y пространства смешивания для положения точек. См. add_blend_point().
Vector2 min_space = Vector2(-1, -1) 🔗
Нижний предел осей X и Y пространства смешивания для положения точек. См. add_blend_point().
Vector2 snap = Vector2(0.1, 0.1) 🔗
Приращение позиции для привязки при перемещении точки.
Устарело: Use sync_mode instead.
Если true, режим синхронизации включен (эквивалентно SYNC_MODE_INDEPENDENT). Это свойство сохранено для обратной совместимости.
Управляет синхронизацией анимаций при смешивании. См. SyncMode для получения информации о доступных параметрах.
Имя оси X пространства смешивания.
Имя оси Y пространства смешивания.
Описания метода
void add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1, name: StringName = &"") 🔗
Добавляет новую точку name, представляющую node в позиции, заданной pos. Вы можете вставить ее по определенному индексу, используя аргумент at_index. Если вы используете значение по умолчанию для at_index, точка будет вставлена в конец массива точек смешивания.
Примечание: Если имя не указано, в качестве ссылки используется безопасный индекс. В будущем пустые имена будут считаться устаревшими, поэтому рекомендуется явно указывать имя.
void add_triangle(x: int, y: int, z: int, at_index: int = -1) 🔗
Создает новый треугольник, используя три точки x, y и z. Треугольники могут перекрываться. Вы можете вставить треугольник в определенный индекс, используя аргумент 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 🔗
Возвращает AnimationRootNode, на который ссылается точка с индексом point.
Vector2 get_blend_point_position(point: int) const 🔗
Возвращает положение точки с индексом point.
int get_triangle_count() const 🔗
Возвращает количество треугольников в пространстве смешивания.
int get_triangle_point(triangle: int, point: int) 🔗
Возвращает положение точки с индексом point в треугольнике с индексом triangle.
void remove_blend_point(point: int) 🔗
Удаляет точку с индексом point из пространства смешивания.
void remove_triangle(triangle: int) 🔗
Удаляет треугольник с индексом triangle из пространства смешивания.
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: Vector2) 🔗
Обновляет положение точки с индексом point в пространстве смешивания.