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 у просторі змішування.