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.

AnimationNodeStateMachine

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

Кінцевий автомат із кількома AnimationRootNode, який використовує AnimationTree.

Опис

Містить кілька AnimationRootNode, що представляють стани анімації, з’єднані в графі. Переміни між станами можна налаштувати так, щоб вони відбувалися автоматично або за допомогою коду за допомогою алгоритму найкоротшого шляху. Отримайте об’єкт AnimationNodeStateMachinePlayback із вузла AnimationTree, щоб керувати ним програмно.

var state_machine = $AnimationTree.get("параметри/відтворення")
state_machine.travel("якийсь_стан")

Посібники

Властивості

bool

allow_transition_to_self

false

bool

reset_ends

false

StateMachineType

state_machine_type

0

Методи

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

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

bool

has_transition(from: StringName, to: StringName) const

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)


Переліки

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 🔗

  • void set_allow_transition_to_self(value: bool)

  • bool is_allow_transition_to_self()

Якщо true, дозволяє телепортуватися до власного стану за допомогою AnimationNodeStateMachinePlayback.travel(). Якщо увімкнено опцію Скидання у AnimationNodeStateMachinePlayback.travel(), анімацію буде перезапущено. Якщо false, нічого не відбувається при телепортації до власного стану.


bool reset_ends = false 🔗

  • void set_reset_ends(value: bool)

  • bool are_ends_reset()

Якщо true, розглядайте перехресне затухання початкових і кінцевих вузлів як поєднання з анімацією RESET.

У більшості випадків, коли додаткові крос-фейди виконуються в батьківському AnimationNode кінцевого автомата, встановлення цієї властивості на false і зіставлення часу крос-фейду батьківського AnimationNode і стану початковий вузол і кінцевий вузол машини дає хороші результати.


StateMachineType state_machine_type = 0 🔗

Ця властивість може визначати процес переходів для різних випадків використання. Дивіться також 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) 🔗

Встановлює координати вузла анімації. Використовується для відображення в редакторі.