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...
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) 🔗
Устанавливает режим обновления дорожки значений.