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() для триангуляции пространства смешивания вручную.

Обучающие материалы

Свойства

bool

auto_triangles

true

BlendMode

blend_mode

0

Vector2

max_space

Vector2(1, 1)

Vector2

min_space

Vector2(-1, -1)

Vector2

snap

Vector2(0.1, 0.1)

bool

sync

false

String

x_label

"x"

String

y_label

"y"

Методы

void

add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1)

void

add_triangle(x: int, y: int, z: int, at_index: int = -1)

int

get_blend_point_count() const

AnimationRootNode

get_blend_point_node(point: int) const

Vector2

get_blend_point_position(point: int) const

int

get_triangle_count() const

int

get_triangle_point(triangle: int, point: int)

void

remove_blend_point(point: int)

void

remove_triangle(triangle: int)

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, но запускает новую анимацию с позиции воспроизведения последней анимации.


Описания свойств

bool auto_triangles = true 🔗

  • void set_auto_triangles(value: bool)

  • bool get_auto_triangles()

Если true, пространство смешивания триангулируется автоматически. Сетка обновляется каждый раз, когда вы добавляете или удаляете точки с помощью add_blend_point() и remove_blend_point().


BlendMode blend_mode = 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) 🔗

Приращение позиции для привязки при перемещении точки.


bool sync = false 🔗

  • void set_use_sync(value: bool)

  • bool is_using_sync()

Если false, кадр смешанной анимации останавливается, когда значение смешивания равно 0.

Если true, смешанная анимация принудительно переходит на следующий кадр.


String x_label = "x" 🔗

Имя оси X пространства смешивания.


String y_label = "y" 🔗

Имя оси Y пространства смешивания.


Описания метода

void add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1) 🔗

Добавляет новую точку, которая представляет 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 get_blend_point_count() const 🔗

Возвращает количество точек в пространстве смешивания.


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 set_blend_point_node(point: int, node: AnimationRootNode) 🔗

Изменяет AnimationNode, на который ссылается точка с индексом point.


void set_blend_point_position(point: int, pos: Vector2) 🔗

Обновляет положение точки с индексом point в пространстве смешивания.