Animation
Наследует: Resource < RefCounted < Object
Содержит данные, которые можно использовать для анимации чего угодно в движке.
Описание
Этот ресурс содержит данные, которые можно использовать для анимации чего угодно в движке. Анимации делятся на треки, и каждый трек должен быть связан с узлом. Состояние этого узла можно изменять с течением времени, добавляя к треку временные ключи (события).
# Это создает анимацию, которая заставляет узел «Enemy» двигаться вправо
# 100 пикселей за 2,0 секунды.
var animation = Animation.new()
var track_index = animation.add_track(Animation.TYPE_VALUE)
animation.track_set_path(track_index, "Enemy:position:x")
animation.track_insert_key(track_index, 0.0, 0)
animation.track_insert_key(track_index, 2.0, 100)
animation.length = 2.0
// Это создает анимацию, которая заставляет узел «Enemy» двигаться вправо
// 100 пикселей за 2,0 секунды.
var animation = new Animation();
int trackIndex = animation.AddTrack(Animation.TrackType.Value);
animation.TrackSetPath(trackIndex, "Enemy:position:x");
animation.TrackInsertKey(trackIndex, 0.0f, 0);
animation.TrackInsertKey(trackIndex, 2.0f, 100);
animation.Length = 2.0f;
Анимации — это всего лишь контейнеры данных, и их необходимо добавлять к узлам, таким как AnimationPlayer, чтобы воспроизводить их. Треки анимации имеют разные типы, каждый со своим собственным набором выделенных методов. Проверьте TrackType, чтобы увидеть доступные типы.
Примечание: Для 3D-положения/вращения/масштаба рекомендуется использовать выделенные типы дорожек TYPE_POSITION_3D, TYPE_ROTATION_3D и TYPE_SCALE_3D вместо TYPE_VALUE из соображений производительности.
Обучающие материалы
Свойства
|
||
|
||
|
||
|
Методы
void |
add_marker(name: StringName, time: float) |
animation_track_get_key_animation(track_idx: int, key_idx: int) const |
|
animation_track_insert_key(track_idx: int, time: float, animation: StringName) |
|
void |
animation_track_set_key_animation(track_idx: int, key_idx: int, animation: StringName) |
audio_track_get_key_end_offset(track_idx: int, key_idx: int) const |
|
audio_track_get_key_start_offset(track_idx: int, key_idx: int) const |
|
audio_track_get_key_stream(track_idx: int, key_idx: int) const |
|
audio_track_insert_key(track_idx: int, time: float, stream: Resource, start_offset: float = 0, end_offset: float = 0) |
|
audio_track_is_use_blend(track_idx: int) const |
|
void |
audio_track_set_key_end_offset(track_idx: int, key_idx: int, offset: float) |
void |
audio_track_set_key_start_offset(track_idx: int, key_idx: int, offset: float) |
void |
audio_track_set_key_stream(track_idx: int, key_idx: int, stream: Resource) |
void |
audio_track_set_use_blend(track_idx: int, enable: bool) |
bezier_track_get_key_in_handle(track_idx: int, key_idx: int) const |
|
bezier_track_get_key_out_handle(track_idx: int, key_idx: int) const |
|
bezier_track_get_key_value(track_idx: int, key_idx: int) const |
|
bezier_track_insert_key(track_idx: int, time: float, value: float, in_handle: Vector2 = Vector2(0, 0), out_handle: Vector2 = Vector2(0, 0)) |
|
bezier_track_interpolate(track_idx: int, time: float) const |
|
void |
bezier_track_set_key_in_handle(track_idx: int, key_idx: int, in_handle: Vector2, balanced_value_time_ratio: float = 1.0) |
void |
bezier_track_set_key_out_handle(track_idx: int, key_idx: int, out_handle: Vector2, balanced_value_time_ratio: float = 1.0) |
void |
bezier_track_set_key_value(track_idx: int, key_idx: int, value: float) |
blend_shape_track_insert_key(track_idx: int, time: float, amount: float) |
|
blend_shape_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const |
|
void |
clear() |
void |
compress(page_size: int = 8192, fps: int = 120, split_tolerance: float = 4.0) |
void |
copy_track(track_idx: int, to_animation: Animation) |
find_track(path: NodePath, type: TrackType) const |
|
get_marker_at_time(time: float) const |
|
get_marker_color(name: StringName) const |
|
get_marker_names() const |
|
get_marker_time(name: StringName) const |
|
get_next_marker(time: float) const |
|
get_prev_marker(time: float) const |
|
get_track_count() const |
|
has_marker(name: StringName) const |
|
method_track_get_name(track_idx: int, key_idx: int) const |
|
method_track_get_params(track_idx: int, key_idx: int) const |
|
void |
optimize(allowed_velocity_err: float = 0.01, allowed_angular_err: float = 0.01, precision: int = 3) |
position_track_insert_key(track_idx: int, time: float, position: Vector3) |
|
position_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const |
|
void |
remove_marker(name: StringName) |
void |
remove_track(track_idx: int) |
rotation_track_insert_key(track_idx: int, time: float, rotation: Quaternion) |
|
rotation_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const |
|
scale_track_insert_key(track_idx: int, time: float, scale: Vector3) |
|
scale_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const |
|
void |
set_marker_color(name: StringName, color: Color) |
track_find_key(track_idx: int, time: float, find_mode: FindMode = 0, limit: bool = false, backward: bool = false) const |
|
track_get_interpolation_loop_wrap(track_idx: int) const |
|
track_get_interpolation_type(track_idx: int) const |
|
track_get_key_count(track_idx: int) const |
|
track_get_key_time(track_idx: int, key_idx: int) const |
|
track_get_key_transition(track_idx: int, key_idx: int) const |
|
track_get_key_value(track_idx: int, key_idx: int) const |
|
track_get_path(track_idx: int) const |
|
track_get_type(track_idx: int) const |
|
track_insert_key(track_idx: int, time: float, key: Variant, transition: float = 1) |
|
track_is_compressed(track_idx: int) const |
|
track_is_enabled(track_idx: int) const |
|
track_is_imported(track_idx: int) const |
|
void |
track_move_down(track_idx: int) |
void |
track_move_to(track_idx: int, to_idx: int) |
void |
track_move_up(track_idx: int) |
void |
track_remove_key(track_idx: int, key_idx: int) |
void |
track_remove_key_at_time(track_idx: int, time: float) |
void |
track_set_enabled(track_idx: int, enabled: bool) |
void |
track_set_imported(track_idx: int, imported: bool) |
void |
track_set_interpolation_loop_wrap(track_idx: int, interpolation: bool) |
void |
track_set_interpolation_type(track_idx: int, interpolation: InterpolationType) |
void |
track_set_key_time(track_idx: int, key_idx: int, time: float) |
void |
track_set_key_transition(track_idx: int, key_idx: int, transition: float) |
void |
track_set_key_value(track_idx: int, key: int, value: Variant) |
void |
track_set_path(track_idx: int, path: NodePath) |
void |
track_swap(track_idx: int, with_idx: int) |
value_track_get_update_mode(track_idx: int) const |
|
value_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const |
|
void |
value_track_set_update_mode(track_idx: int, mode: UpdateMode) |
Перечисления
enum TrackType: 🔗
TrackType TYPE_VALUE = 0
Значение отслеживает заданные значения в свойствах узла, но только те, которые можно интерполировать. Для 3D-позиции/вращения/масштаба рекомендуется использовать выделенных дорожек треков TYPE_POSITION_3D, TYPE_ROTATION_3D и TYPE_SCALE_3D вместо TYPE_VALUE по соображениям производительности.
TrackType TYPE_POSITION_3D = 1
Трехмерная дорожка положения (значения хранятся в Vector3).
TrackType TYPE_ROTATION_3D = 2
Трехмерная дорожка вращения (значения хранятся в Quaternions).
TrackType TYPE_SCALE_3D = 3
Дорожка 3D-масштаба (значения хранятся в Vector3).
TrackType TYPE_BLEND_SHAPE = 4
Орбита смешанной формы.
TrackType TYPE_METHOD = 5
Метод отслеживает вызовы функций с заданными аргументами для каждого ключа.
TrackType TYPE_BEZIER = 6
Дорожки Безье используются для интерполяции значения с использованием пользовательских кривых. Их также можно использовать для анимации подсвойств векторов и цветов (например, альфа-значение Color).
TrackType TYPE_AUDIO = 7
Аудиодорожки используются для воспроизведения аудиопотока с любым типом AudioStreamPlayer. Поток можно обрезать и предварительно просмотреть в анимации.
TrackType TYPE_ANIMATION = 8
Анимационные дорожки воспроизводят анимацию в других узлах AnimationPlayer.
enum InterpolationType: 🔗
InterpolationType INTERPOLATION_NEAREST = 0
Без интерполяции (ближайшее значение).
InterpolationType INTERPOLATION_LINEAR = 1
Линейная интерполяция.
InterpolationType INTERPOLATION_CUBIC = 2
Кубическая интерполяция. Выглядит более гладко, чем линейная интерполяция, но интерполяция более затратна. Придерживайтесь INTERPOLATION_LINEAR для сложных 3D-анимаций, импортированных из внешнего программного обеспечения, даже если это требует использования более высокой частоты кадров анимации взамен.
InterpolationType INTERPOLATION_LINEAR_ANGLE = 3
Линейная интерполяция с вращением по кратчайшему пути.
Примечание: Значение результата всегда нормализовано и может не совпадать со значением ключа.
InterpolationType INTERPOLATION_CUBIC_ANGLE = 4
Кубическая интерполяция с вращением по кратчайшему пути.
Примечание: Значение результата всегда нормализовано и может не совпадать со значением ключа.
enum UpdateMode: 🔗
UpdateMode UPDATE_CONTINUOUS = 0
Обновляйте между ключевыми кадрами и сохраняйте значение.
UpdateMode UPDATE_DISCRETE = 1
Обновление на ключевых кадрах.
UpdateMode UPDATE_CAPTURE = 2
То же, что и UPDATE_CONTINUOUS, но работает как флаг для захвата значения текущего объекта и выполнения интерполяции в некоторых методах. См. также AnimationMixer.capture(), AnimationPlayer.playback_auto_capture и AnimationPlayer.play_with_capture().
enum LoopMode: 🔗
LoopMode LOOP_NONE = 0
В обоих случаях воспроизведение анимации остановится.
LoopMode LOOP_LINEAR = 1
В обоих концах анимации она будет повторяться без изменения направления воспроизведения.
LoopMode LOOP_PINGPONG = 2
Повторяет воспроизведение и обратное воспроизведение в обоих концах анимации.
enum LoopedFlag: 🔗
LoopedFlag LOOPED_FLAG_NONE = 0
Этот флаг указывает, что анимация выполняется без зацикливания.
LoopedFlag LOOPED_FLAG_END = 1
Этот флаг указывает на то, что анимация достигла конца и сразу после обработки цикла.
LoopedFlag LOOPED_FLAG_START = 2
Этот флаг указывает на то, что анимация достигла начала анимации и сразу после обработки цикла.
enum FindMode: 🔗
FindMode FIND_MODE_NEAREST = 0
Находит ближайший временной ключ.
FindMode FIND_MODE_APPROX = 1
Находит только ключ с приблизительным временем.
FindMode FIND_MODE_EXACT = 2
Находит только ключ с соответствующим временем.
Описания свойств
bool capture_included = false 🔗
bool is_capture_included()
Возвращает true, если трек захвата включен. Это кэшированное значение только для чтения для производительности.
Общая длина анимации (в секундах).
Замечание: Длина не ограничена последним ключом, так как он может находиться до или после конца для обеспечения корректной интерполяции и зацикливания.
Определяет поведение обоих концов временной шкалы анимации во время её воспроизведения. Это указывает, следует ли перезапускать анимацию и как это сделать, а также используется для корректной интерполяции циклов анимации.
Значение шага анимации.
Описания метода
void add_marker(name: StringName, time: float) 🔗
Добавляет маркер к этой анимации.
int add_track(type: TrackType, at_position: int = -1) 🔗
Добавляет дорожку в анимацию.
StringName animation_track_get_key_animation(track_idx: int, key_idx: int) const 🔗
Возвращает имя анимации по ключу, идентифицированному key_idx. track_idx должен быть индексом дорожки анимации.
int animation_track_insert_key(track_idx: int, time: float, animation: StringName) 🔗
Вставляет ключ со значением animation в указанное time (в секундах). track_idx должен быть индексом анимационной дорожки.
void animation_track_set_key_animation(track_idx: int, key_idx: int, animation: StringName) 🔗
Устанавливает ключ, идентифицированный key_idx, в значение animation. track_idx должен быть индексом анимационной дорожки.
float audio_track_get_key_end_offset(track_idx: int, key_idx: int) const 🔗
Возвращает конечное смещение ключа, идентифицированного key_idx. track_idx должен быть индексом аудиодорожки.
Конечное смещение — это количество секунд, обрезанных в конце аудиопотока.
float audio_track_get_key_start_offset(track_idx: int, key_idx: int) const 🔗
Возвращает начальное смещение ключа, идентифицированного key_idx. track_idx должен быть индексом аудиодорожки.
Начальное смещение — это количество секунд, отрезанных в начале аудиопотока.
Resource audio_track_get_key_stream(track_idx: int, key_idx: int) const 🔗
Возвращает аудиопоток ключа, идентифицированного key_idx. track_idx должен быть индексом аудиодорожки.
int audio_track_insert_key(track_idx: int, time: float, stream: Resource, start_offset: float = 0, end_offset: float = 0) 🔗
Вставляет ключ аудиодорожки в указанное time в секундах. track_idx должен быть индексом аудиодорожки.
stream — ресурс AudioStream для воспроизведения. start_offset — количество секунд, обрезанных в начале аудиопотока, а end_offset — в конце.
bool audio_track_is_use_blend(track_idx: int) const 🔗
Возвращает true, если трек в track_idx будет смешан с другими анимациями.
void audio_track_set_key_end_offset(track_idx: int, key_idx: int, offset: float) 🔗
Устанавливает конечное смещение ключа, идентифицированного key_idx, на значение offset. track_idx должен быть индексом аудиодорожки.
void audio_track_set_key_start_offset(track_idx: int, key_idx: int, offset: float) 🔗
Устанавливает начальное смещение ключа, идентифицированного key_idx, на значение offset. track_idx должен быть индексом аудиодорожки.
void audio_track_set_key_stream(track_idx: int, key_idx: int, stream: Resource) 🔗
Устанавливает поток ключа, идентифицированного key_idx, на значение stream. track_idx должен быть индексом аудиодорожки.
void audio_track_set_use_blend(track_idx: int, enable: bool) 🔗
Устанавливает, будет ли трек смешиваться с другими анимациями. Если true, громкость воспроизведения звука меняется в зависимости от значения смешивания.
Vector2 bezier_track_get_key_in_handle(track_idx: int, key_idx: int) const 🔗
Возвращает дескриптор ключа, идентифицированного key_idx. track_idx должен быть индексом дорожки Безье.
Vector2 bezier_track_get_key_out_handle(track_idx: int, key_idx: int) const 🔗
Возвращает выходной дескриптор ключа, идентифицированного key_idx. track_idx должен быть индексом дорожки Безье.
float bezier_track_get_key_value(track_idx: int, key_idx: int) const 🔗
Возвращает значение ключа, идентифицированного key_idx. track_idx должен быть индексом дорожки Безье.
int bezier_track_insert_key(track_idx: int, time: float, value: float, in_handle: Vector2 = Vector2(0, 0), out_handle: Vector2 = Vector2(0, 0)) 🔗
Вставляет ключ дорожки Безье в указанное time в секундах. track_idx должен быть индексом дорожки Безье.
in_handle — вес левой стороны добавленной точки кривой Безье, out_handle — вес правой стороны, а value — фактическое значение в этой точке.
float bezier_track_interpolate(track_idx: int, time: float) const 🔗
Возвращает интерполированное значение в указанном time (в секундах). track_idx должен быть индексом дорожки Безье.
void bezier_track_set_key_in_handle(track_idx: int, key_idx: int, in_handle: Vector2, balanced_value_time_ratio: float = 1.0) 🔗
Устанавливает входной дескриптор ключа, идентифицированного key_idx, на значение in_handle. track_idx должен быть индексом дорожки Безье.
void bezier_track_set_key_out_handle(track_idx: int, key_idx: int, out_handle: Vector2, balanced_value_time_ratio: float = 1.0) 🔗
Устанавливает выходной дескриптор ключа, идентифицированного key_idx, на значение out_handle. track_idx должен быть индексом дорожки Безье.
void bezier_track_set_key_value(track_idx: int, key_idx: int, value: float) 🔗
Устанавливает значение ключа, идентифицированного key_idx, на заданное значение. track_idx должен быть индексом дорожки Безье.
int blend_shape_track_insert_key(track_idx: int, time: float, amount: float) 🔗
Вставляет ключ в заданную дорожку blend shape. Возвращает индекс ключа.
float blend_shape_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Возвращает интерполированное значение формы смешивания в указанное время (в секундах). track_idx должен быть индексом трека формы смешивания.
void clear() 🔗
Очистить анимацию (удалить все дорожки и сбросить всё).
void compress(page_size: int = 8192, fps: int = 120, split_tolerance: float = 4.0) 🔗
Сжать анимацию и все ее дорожки на месте. Это заставит track_is_compressed() возвращать true после вызова этой Animation. Сжатые дорожки требуют меньше памяти для воспроизведения и предназначены для использования в сложных 3D-анимациях (например, катсценах), импортированных из внешнего 3D-программного обеспечения. Сжатие происходит с потерями, но разница обычно не заметна в реальных условиях.
Примечание: Сжатые дорожки имеют различные ограничения (например, невозможность редактирования в редакторе), поэтому используйте сжатые анимации только в том случае, если они вам действительно нужны.
void copy_track(track_idx: int, to_animation: Animation) 🔗
Добавляет новый трек в to_animation, который является копией указанного трека из этой анимации.
int find_track(path: NodePath, type: TrackType) const 🔗
Возвращает индекс указанной дорожки. Если дорожка не найдена, возвращает -1.
StringName get_marker_at_time(time: float) const 🔗
Возвращает имя маркера, расположенного в указанное время.
Color get_marker_color(name: StringName) const 🔗
Возвращает цвет указанного маркера.
PackedStringArray get_marker_names() const 🔗
Возвращает все маркеры в этой анимации, отсортированные по возрастанию времени.
float get_marker_time(name: StringName) const 🔗
Возвращает время указанного маркера.
StringName get_next_marker(time: float) const 🔗
Возвращает ближайший маркер, который следует после указанного времени. Если такого маркера не существует, возвращается пустая строка.
StringName get_prev_marker(time: float) const 🔗
Возвращает ближайший маркер, который предшествует указанному времени. Если такого маркера не существует, возвращается пустая строка.
Возвращает количество дорожек в анимации.
bool has_marker(name: StringName) const 🔗
Возвращает true, если эта анимация содержит маркер с указанным именем.
StringName method_track_get_name(track_idx: int, key_idx: int) const 🔗
Возвращает имя метода для дорожки методов.
Array method_track_get_params(track_idx: int, key_idx: int) const 🔗
Возвращает значения аргументов, которые необходимо вызвать в дорожке метода для заданного ключа в заданной дорожке.
void optimize(allowed_velocity_err: float = 0.01, allowed_angular_err: float = 0.01, precision: int = 3) 🔗
Оптимизируйте анимацию и все ее дорожки на месте. Это сохранит только столько ключей, сколько необходимо для удержания анимации в указанных границах.
int position_track_insert_key(track_idx: int, time: float, position: Vector3) 🔗
Вставляет ключ в заданную 3D-трек позиции. Возвращает индекс ключа.
Vector3 position_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Возвращает интерполированное значение позиции в указанное время (в секундах). track_idx должен быть индексом 3D-трека позиции.
void remove_marker(name: StringName) 🔗
Удаляет маркер с указанным именем из этой анимации.
void remove_track(track_idx: int) 🔗
Удаляет дорожку, указав индекс дорожки.
int rotation_track_insert_key(track_idx: int, time: float, rotation: Quaternion) 🔗
Вставляет ключ в заданную 3D-дорожку вращения. Возвращает индекс ключа.
Quaternion rotation_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Возвращает интерполированное значение вращения в указанное время (в секундах). track_idx должен быть индексом 3D-трека вращения.
int scale_track_insert_key(track_idx: int, time: float, scale: Vector3) 🔗
Вставляет ключ в заданную 3D-шкалу трека. Возвращает индекс ключа.
Vector3 scale_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Возвращает интерполированное значение масштаба в указанное время (в секундах). track_idx должен быть индексом 3D-масштабной дорожки.
void set_marker_color(name: StringName, color: Color) 🔗
Устанавливает цвет указанного маркера.
int track_find_key(track_idx: int, time: float, find_mode: FindMode = 0, limit: bool = false, backward: bool = false) const 🔗
Находит индекс ключа по времени в заданном треке. При желании находит его только в том случае, если указано приблизительное/точное время.
Если limit равно true, он не возвращает ключи за пределами диапазона анимации.
Если backward равно true, направление меняется на противоположное в методах, которые полагаются на однонаправленную обработку.
Например, в случае, если find_mode равно FIND_MODE_NEAREST, если в текущей позиции сразу после искомого нет ключа, первый найденный ключ извлекается путем поиска перед позицией, но если backward равно true, первый найденный ключ извлекается после позиции.
bool track_get_interpolation_loop_wrap(track_idx: int) const 🔗
Возвращает true, если дорожка в track_idx оборачивает цикл интерполяции. Новые дорожки оборачивают цикл интерполяции по умолчанию.
InterpolationType track_get_interpolation_type(track_idx: int) const 🔗
Возвращает тип интерполяции данной дорожки.
int track_get_key_count(track_idx: int) const 🔗
Возвращает количество ключей в заданной дорожке.
float track_get_key_time(track_idx: int, key_idx: int) const 🔗
Возвращает время, в котором расположен ключ.
float track_get_key_transition(track_idx: int, key_idx: int) const 🔗
Возвращает кривую перехода (плавность) для определенной клавиши (см. встроенную математическую функцию @GlobalScope.ease()).
Variant track_get_key_value(track_idx: int, key_idx: int) const 🔗
Возвращает значение заданной клавиши в заданной дорожке.
NodePath track_get_path(track_idx: int) const 🔗
Получает путь к дорожке. Для получения дополнительной информации о формате пути см. `` метод track_set_path``.
TrackType track_get_type(track_idx: int) const 🔗
Получает тип дорожки.
int track_insert_key(track_idx: int, time: float, key: Variant, transition: float = 1) 🔗
Вставляет общий ключ в указанный трек. Возвращает индекс ключа.
bool track_is_compressed(track_idx: int) const 🔗
Возвращает true, если трек сжат, false в противном случае. См. также compress().
bool track_is_enabled(track_idx: int) const 🔗
Возвращает true, если трек с индексом track_idx включен.
bool track_is_imported(track_idx: int) const 🔗
Возвращает true, если указанная дорожка импортирована. В противном случае возвращает false.
void track_move_down(track_idx: int) 🔗
Перемещает дорожку вниз.
void track_move_to(track_idx: int, to_idx: int) 🔗
Изменяет индексную позицию дорожки track_idx на ту, которая определена в to_idx.
void track_move_up(track_idx: int) 🔗
Перемещает дорожку вверх.
void track_remove_key(track_idx: int, key_idx: int) 🔗
Удаляет ключ по индексу из данной дорожки.
void track_remove_key_at_time(track_idx: int, time: float) 🔗
Удаляет ключ в time в указанном треке.
void track_set_enabled(track_idx: int, enabled: bool) 🔗
Включает/отключает данную дорожку. По умолчанию дорожки включены.
void track_set_imported(track_idx: int, imported: bool) 🔗
Устанавливает, импортирован ли данная дорожка.
void track_set_interpolation_loop_wrap(track_idx: int, interpolation: bool) 🔗
Если true, дорожка с track_idx завершает цикл интерполяции.
void track_set_interpolation_type(track_idx: int, interpolation: InterpolationType) 🔗
Устанавливает тип интерполяции заданного трека.
void track_set_key_time(track_idx: int, key_idx: int, time: float) 🔗
Устанавливает время существующего ключа.
void track_set_key_transition(track_idx: int, key_idx: int, transition: float) 🔗
Устанавливает кривую перехода (плавность) для определенной клавиши (см. встроенную математическую функцию @GlobalScope.ease()).
void track_set_key_value(track_idx: int, key: int, value: Variant) 🔗
Устанавливает значение существующего ключа.
void track_set_path(track_idx: int, path: NodePath) 🔗
Устанавливает путь дорожки. Пути должны быть допустимыми путями дерева сцены к узлу и должны быть указаны, начиная с AnimationMixer.root_node, который будет воспроизводить анимацию. Дорожки, которые управляют свойствами или костями, должны добавлять свое имя после пути, разделенного ":".
Например, "character/skeleton:ankle" или "character/mesh:transform/local".
void track_swap(track_idx: int, with_idx: int) 🔗
Меняет индексную позицию дорожки track_idx на дорожку with_idx.
UpdateMode value_track_get_update_mode(track_idx: int) const 🔗
Возвращает режим обновления дорожки значений.
Variant value_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Возвращает интерполированное значение в указанное время (в секундах). track_idx должен быть индексом значения track.
backward в основном влияет на направление извлечения ключа track с UPDATE_DISCRETE, преобразованным AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_FORCE_CONTINUOUS для соответствия результату с track_find_key().
void value_track_set_update_mode(track_idx: int, mode: UpdateMode) 🔗
Устанавливает режим обновления дорожки значений.