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...
AnimationNodeStateMachine
Успадковує: AnimationRootNode < AnimationNode < Resource < RefCounted < Object
Кінцевий автомат із кількома AnimationRootNode, який використовує AnimationTree.
Опис
Містить кілька AnimationRootNode, що представляють стани анімації, з’єднані в графі. Переміни між станами можна налаштувати так, щоб вони відбувалися автоматично або за допомогою коду за допомогою алгоритму найкоротшого шляху. Отримайте об’єкт AnimationNodeStateMachinePlayback із вузла AnimationTree, щоб керувати ним програмно.
var state_machine = $AnimationTree.get("параметри/відтворення")
state_machine.travel("якийсь_стан")
var stateMachine = GetNode<AnimationTree>("AnimationTree").Get("параметри/відтворення") як AnimationNodeStateMachinePlayback;
stateMachine.Travel("якийсь_стан");
Посібники
Властивості
|
||
|
||
|
Методи
void |
add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0)) |
void |
add_transition(from: StringName, to: StringName, transition: AnimationNodeStateMachineTransition) |
Vector2 |
get_graph_offset() const |
get_node(name: StringName) const |
|
Array[StringName] |
get_node_list() const |
StringName |
get_node_name(node: AnimationNode) const |
Vector2 |
get_node_position(name: StringName) const |
get_transition(idx: int) const |
|
get_transition_count() const |
|
StringName |
get_transition_from(idx: int) const |
StringName |
get_transition_to(idx: int) const |
has_node(name: StringName) const |
|
has_transition(from: StringName, to: StringName) const |
|
void |
remove_node(name: StringName) |
void |
remove_transition(from: StringName, to: StringName) |
void |
|
void |
rename_node(name: StringName, new_name: StringName) |
void |
replace_node(name: StringName, node: AnimationNode) |
void |
set_graph_offset(offset: Vector2) |
void |
set_node_position(name: StringName, position: Vector2) |
Переліки
enum StateMachineType: 🔗
StateMachineType STATE_MACHINE_TYPE_ROOT = 0
Перехід до початку розглядається як відтворення з початкового стану. Перехід до кінцевого стану трактується як вихід із кінцевого автомата.
StateMachineType STATE_MACHINE_TYPE_NESTED = 1
Перехід до початку розглядається як пошук до початку анімації в поточному стані. Перехід до кінцевого стану або відсутність переходів у кожному стані розглядається як вихід із кінцевого автомата.
StateMachineType STATE_MACHINE_TYPE_GROUPED = 2
Це згрупований кінцевий автомат, яким можна керувати з батьківського кінцевого автомата. Він не працює самостійно. Має бути кінцевий автомат із state_machine_type STATE_MACHINE_TYPE_ROOT або константним STATE_MACHINE_TYPE_NESTED у батьківському або предковому.
Описи властивостей
bool allow_transition_to_self = false 🔗
Якщо true, дозволяє телепортуватися до власного стану за допомогою AnimationNodeStateMachinePlayback.travel(). Якщо увімкнено опцію Скидання у AnimationNodeStateMachinePlayback.travel(), анімацію буде перезапущено. Якщо false, нічого не відбувається при телепортації до власного стану.
Якщо true, розглядайте перехресне затухання початкових і кінцевих вузлів як поєднання з анімацією RESET.
У більшості випадків, коли додаткові крос-фейди виконуються в батьківському AnimationNode кінцевого автомата, встановлення цієї властивості на
falseі зіставлення часу крос-фейду батьківського AnimationNode і стану початковий вузол і кінцевий вузол машини дає хороші результати.
StateMachineType state_machine_type = 0 🔗
void set_state_machine_type(value: StateMachineType)
StateMachineType get_state_machine_type()
Ця властивість може визначати процес переходів для різних випадків використання. Дивіться також StateMachineType.
Описи методів
void add_node(name: StringName, node: AnimationNode, position: Vector2 = Vector2(0, 0)) 🔗
Додає новий вузол анімації до графіка. Параметр position використовується для відображення в редакторі.
void add_transition(from: StringName, to: StringName, transition: AnimationNodeStateMachineTransition) 🔗
Додає перехід між заданими вузлами анімації.
Vector2 get_graph_offset() const 🔗
Повертає зміщення малювання графа. Використовується для відображення у редакторі.
AnimationNode get_node(name: StringName) const 🔗
Повертає вузол анімації з заданою назвою.
Array[StringName] get_node_list() const 🔗
Повертає список, що містить імена всіх вузлів анімації в цьому кінцевому автоматі.
StringName get_node_name(node: AnimationNode) const 🔗
Повертає назву заданого вузла анімації.
Vector2 get_node_position(name: StringName) const 🔗
Повертає задані координати вузла анімації. Використовується для відображення в редакторі.
AnimationNodeStateMachineTransition get_transition(idx: int) const 🔗
Повертає заданий перехід.
int get_transition_count() const 🔗
Повертає кількість зв'язків у графі.
StringName get_transition_from(idx: int) const 🔗
Повертає початковий вузол заданого переходу.
StringName get_transition_to(idx: int) const 🔗
Повертає кінцевий вузол заданого переходу.
bool has_node(name: StringName) const 🔗
Повертає true, якщо графік містить вказаний вузол анімації.
bool has_transition(from: StringName, to: StringName) const 🔗
Повертає true, якщо є перехід між вказаними вузлами анімації.
void remove_node(name: StringName) 🔗
Видаляє заданий вузол анімації з графіка.
void remove_transition(from: StringName, to: StringName) 🔗
Видаляє перехід між двома вказаними вузлами анімації.
void remove_transition_by_index(idx: int) 🔗
Видаляє заданий перехід за індексом.
void rename_node(name: StringName, new_name: StringName) 🔗
Перейменовує вказаний вузол анімації.
void replace_node(name: StringName, node: AnimationNode) 🔗
Замінює заданий вузол анімації новим вузлом анімації.
void set_graph_offset(offset: Vector2) 🔗
Задає зміщення малювання графа. Використовується для відображення у редакторі.
void set_node_position(name: StringName, position: Vector2) 🔗
Встановлює координати вузла анімації. Використовується для відображення в редакторі.