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.

AnimationNodeBlendSpace1D

Успадковує: AnimationRootNode < AnimationNode < Resource < RefCounted < Object

Набір AnimationRootNode, розміщений на віртуальній осі, перехресний між двома сусідніми. Використовується AnimationTree.

Опис

Ресурс, що використовується AnimationNodeBlendTree.

AnimationNodeBlendSpace1D представляє віртуальну вісь, на яку можна додати будь-який тип AnimationRootNode за допомогою add_blend_point(). Виводить лінійне змішування двох AnimationRootNode, розташованих поруч з поточним значенням.

Ви можете задати ширину осі за допомогою min_space та max_space.

Посібники

Властивості

BlendMode

blend_mode

0

float

cyclic_length

0.0

float

max_space

1.0

float

min_space

-1.0

float

snap

0.1

bool

sync

SyncMode

sync_mode

0

String

value_label

"value"

Методи

void

add_blend_point(node: AnimationRootNode, pos: float, at_index: int = -1, name: StringName = &"")

int

find_blend_point_by_name(name: StringName) const

int

get_blend_point_count() const

StringName

get_blend_point_name(point: int) const

AnimationRootNode

get_blend_point_node(point: int) const

float

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 для вирівнювання тривалості анімацій.


Описи властивостей

BlendMode blend_mode = 0 🔗

Керує інтерполяцією між анімаціями.


float cyclic_length = 0.0 🔗

  • void set_cyclic_length(value: float)

  • float get_cyclic_length()

Тривалість циклу в секундах, що використовується константою SYNC_MODE_CYCLIC_CONSTANT. Усі анімації масштабуються за часом так, щоб за цей проміжок часу вони встигали пройти один повний цикл. Щоб циклічна синхронізація запрацювала, це значення має бути більшим за 0.


float max_space = 1.0 🔗

  • void set_max_space(value: float)

  • float get_max_space()

Верхня межа осі простору змішування для положення точок. Дивіться add_blend_point().


float min_space = -1.0 🔗

  • void set_min_space(value: float)

  • float get_min_space()

Нижня межа осі простору змішування для розташування точок. Дивіться add_blend_point().


float snap = 0.1 🔗

Приріст позиції, до якого слід прив'язуватися при переміщенні точки на осі.


bool sync 🔗

  • void set_use_sync(value: bool)

  • bool is_using_sync()

Застаріло: Use sync_mode instead.

Якщо true, режим синхронізації увімкнено (еквівалентно SYNC_MODE_INDEPENDENT). Ця властивість збережено з метою забезпечення зворотної сумісності.


SyncMode sync_mode = 0 🔗

Визначає, як синхронізуються анімації під час плавного переходу. Доступні параметри наведено в SyncMode.


String value_label = "value" 🔗

  • void set_value_label(value: String)

  • String get_value_label()

Мітка віртуальної осі простору змішування.


Описи методів

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