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(), щоб тріангулювати простір змішування вручну.
Посібники
Властивості
|
||
|
||
|
||
Vector2 |
|
|
Vector2 |
|
|
Vector2 |
|
|
|
||
String |
|
|
String |
|
Методи
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 |
|
StringName |
get_blend_point_name(point: int) const |
get_blend_point_node(point: int) const |
|
Vector2 |
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
Inactive animations are frozen and do not advance.
SyncMode SYNC_MODE_INDEPENDENT = 1
Inactive animations advance with a weight of 0. This is equivalent to the previous sync = true behavior.
SyncMode SYNC_MODE_CYCLIC_MUTABLE = 2
All animations are time-scaled so they stay in sync, with the cycle length dynamically computed from active blend weights. This is self-normalizing: a solo animation plays at normal speed.
Note: If you apply AnimationNodeTimeSeek to the result when handling animations of different lengths, synchronization will be broken. In such cases, it is recommended to use AnimationNodeAnimation.use_custom_timeline to align the animation lengths.
SyncMode SYNC_MODE_CYCLIC_CONSTANT = 3
All animations are time-scaled so they complete one cycle in cyclic_length seconds, keeping them in sync regardless of their individual lengths.
Note: If you apply AnimationNodeTimeSeek to the result when handling animations of different lengths, synchronization will be broken. In such cases, it is recommended to use AnimationNodeAnimation.use_custom_timeline to align the animation lengths.
Описи властивостей
Якщо true, простір змішування тріангулюється автоматично. Меш (сітка) оновлюється щоразу, коли ви додаєте або видаляєте точки за допомогою add_blend_point() і remove_blend_point().
Керує інтерполяцією між анімаціями.
The cycle length in seconds used by SYNC_MODE_CYCLIC_CONSTANT. All animations are time-scaled so they complete one full cycle in this duration. Must be greater than 0 for cyclic sync to take effect.
Vector2 max_space = Vector2(1, 1) 🔗
void set_max_space(value: Vector2)
Vector2 get_max_space()
Верхня межа осей X та Y простору змішування для розташування точок. Дивіться add_blend_point().
Vector2 min_space = Vector2(-1, -1) 🔗
void set_min_space(value: Vector2)
Vector2 get_min_space()
Нижня межа осей X та Y простору змішування для розташування точок. Дивіться add_blend_point().
Vector2 snap = Vector2(0.1, 0.1) 🔗
void set_snap(value: Vector2)
Vector2 get_snap()
Приріст позиції, до якого слід прив'язуватись при переміщенні точки.
Застаріло: Use sync_mode instead.
If true, sync mode is enabled (equivalent to SYNC_MODE_INDEPENDENT). This property is kept for backward compatibility.
Controls how animations are synced when blended. See SyncMode for available options.
String x_label = "x" 🔗
void set_x_label(value: String)
String get_x_label()
Назва осі X простору змішування.
String y_label = "y" 🔗
void set_y_label(value: String)
String get_y_label()
Назва осі Y простору змішування.
Описи методів
void add_blend_point(node: AnimationRootNode, pos: Vector2, at_index: int = -1, name: StringName = &"") 🔗
Adds a new point with name that represents a node at the position set by pos. You can insert it at a specific index using the at_index argument. If you use the default value for at_index, the point is inserted at the end of the blend points array.
Note: If no name is provided, safe index is used as reference. In the future, empty names will be deprecated, so explicitly passing a name is recommended.
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 🔗
Returns the index of the blend point with the given name. Returns -1 if no blend point with that name is found.
int get_blend_point_count() const 🔗
Повертає кількість точок у просторі змішування.
StringName get_blend_point_name(point: int) const 🔗
Returns the name of the blend point at index 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) 🔗
Swaps the blend points at indices from_index and to_index, exchanging their positions and properties.
void set_blend_point_name(point: int, name: StringName) 🔗
Sets the name of the blend point at index point. If the name conflicts with an existing point, a unique name will be generated automatically.
void set_blend_point_node(point: int, node: AnimationRootNode) 🔗
Змінює AnimationNode, на який посилається точка з індексом point.
void set_blend_point_position(point: int, pos: Vector2) 🔗
Оновлює позицію точки за індексом point у просторі змішування.