Animation
Hereda: Resource < RefCounted < Object
Contiene datos que pueden usarse para animar cualquier cosa en el motor.
Descripción
This resource holds data that can be used to animate anything in the engine. Animations are divided into tracks and each track must be linked to a node. The state of that node can be changed through time, by adding timed keys (events) to the track.
# This creates an animation that makes the node "Enemy" move to the right by
# 100 pixels in 2.0 seconds.
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
// This creates an animation that makes the node "Enemy" move to the right by
// 100 pixels in 2.0 seconds.
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;
Animations are just data containers, and must be added to nodes such as an AnimationPlayer to be played back. Animation tracks have different types, each with its own set of dedicated methods. Check TrackType to see available types.
Note: For 3D position/rotation/scale, using the dedicated TYPE_POSITION_3D, TYPE_ROTATION_3D and TYPE_SCALE_3D track types instead of TYPE_VALUE is recommended for performance reasons.
Tutoriales
Propiedades
|
||
|
||
|
||
|
Métodos
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) |
Enumeraciones
enum TrackType: 🔗
TrackType TYPE_VALUE = 0
Las pistas de valor establecen valores en las propiedades de los nodos, pero solo aquellos que pueden ser interpolados. Para la posición/rotación/escala 3D, se recomienda usar los tipos de pista dedicados TYPE_POSITION_3D, TYPE_ROTATION_3D y TYPE_SCALE_3D en lugar de TYPE_VALUE por razones de rendimiento.
TrackType TYPE_POSITION_3D = 1
Pista de posición 3D (los valores se almacenan en Vector3s).
TrackType TYPE_ROTATION_3D = 2
Pista de rotación 3D (los valores se almacenan en Quaternions).
TrackType TYPE_SCALE_3D = 3
Pista de escala 3D (los valores se almacenan en Vector3s).
TrackType TYPE_BLEND_SHAPE = 4
Pista de Blendshape.
TrackType TYPE_METHOD = 5
El método rastrea las funciones de llamada con argumentos dados por clave.
TrackType TYPE_BEZIER = 6
Las pistas de Bezier se usan para interpolar un valor usando curvas personalizadas. También se pueden utilizar para animar sub-propiedades de vectores y colores (por ejemplo, el valor alfa de un Color).
TrackType TYPE_AUDIO = 7
Las pistas de audio se utilizan para reproducir un stream de audio con cualquier tipo de AudioStreamPlayer. El stream puede ser recortado y previsualizado en la animación.
TrackType TYPE_ANIMATION = 8
Las pistas de animación reproducen las animaciones en otros nodos AnimationPlayer.
enum InterpolationType: 🔗
InterpolationType INTERPOLATION_NEAREST = 0
No hay interpolación (valor más cercano).
InterpolationType INTERPOLATION_LINEAR = 1
Interpolación lineal.
InterpolationType INTERPOLATION_CUBIC = 2
Interpolación cúbica. Se ve más suave que la interpolación lineal, pero es más costosa de interpolar. Utiliza INTERPOLATION_LINEAR para animaciones 3D complejas importadas de software externo, incluso si a cambio requiere usar una mayor velocidad de fotogramas de animación.
InterpolationType INTERPOLATION_LINEAR_ANGLE = 3
Interpolación lineal con rotación de la ruta más corta.
Nota: El valor resultante siempre está normalizado y puede no coincidir con el valor de la clave.
InterpolationType INTERPOLATION_CUBIC_ANGLE = 4
Interpolación cúbica con rotación de la ruta más corta.
Nota: El valor resultante siempre está normalizado y puede no coincidir con el valor de la clave.
enum UpdateMode: 🔗
UpdateMode UPDATE_CONTINUOUS = 0
Actualizar entre fotogramas clave y mantener el valor.
UpdateMode UPDATE_DISCRETE = 1
Actualización de los fotogramas clave.
UpdateMode UPDATE_CAPTURE = 2
El mismo que UPDATE_CONTINUOUS, pero funciona como una bandera para capturar el valor del objeto actual y realizar la interpolación en algunos métodos. Véase también AnimationMixer.capture(), AnimationPlayer.playback_auto_capture y AnimationPlayer.play_with_capture().
enum LoopMode: 🔗
LoopMode LOOP_NONE = 0
En ambos extremos de la animación, la animación dejará de reproducirse.
LoopMode LOOP_LINEAR = 1
En ambos extremos de la animación, la animación se repetirá sin cambiar la dirección de reproducción.
LoopMode LOOP_PINGPONG = 2
Repite la reproducción y la reproducción inversa en ambos extremos de la animación.
enum LoopedFlag: 🔗
LoopedFlag LOOPED_FLAG_NONE = 0
Esta bandera indica que la animación prosigue sin ningún bucle.
LoopedFlag LOOPED_FLAG_END = 1
Esta bandera indica que la animación ha llegado al final de la animación e inmediatamente después del bucle procesado.
LoopedFlag LOOPED_FLAG_START = 2
Esta bandera indica que la animación ha llegado al inicio de la animación y justo después del bucle procesado.
enum FindMode: 🔗
FindMode FIND_MODE_NEAREST = 0
Encuentra la clave de tiempo más cercana.
FindMode FIND_MODE_APPROX = 1
Busca solo la clave aproximando el tiempo.
FindMode FIND_MODE_EXACT = 2
Encuentra solo la clave que coincide con el tiempo.
Descripciones de Propiedades
bool capture_included = false 🔗
bool is_capture_included()
Devuelve true si la pista de captura está incluida. Este es un valor de solo lectura almacenado en caché por razones de rendimiento.
La duración total de la animación (en segundos).
Nota: La longitud no está delimitada por la última clave, ya que ésta puede estar antes o después del final para asegurar una correcta interpolación y bucle.
Determina el comportamiento de ambos extremos de la línea de tiempo de la animación durante la reproducción de la animación. Esto indica si la animación debe reiniciarse y cómo, y también se utiliza para interpolar correctamente los ciclos de animación.
El valor del paso de la animación.
Descripciones de Métodos
void add_marker(name: StringName, time: float) 🔗
Agrega un marcador a esta Animación.
int add_track(type: TrackType, at_position: int = -1) 🔗
Añade una pista a la animación.
StringName animation_track_get_key_animation(track_idx: int, key_idx: int) const 🔗
Devuelve el nombre de la animación en la clave identificada por key_idx. El track_idx debe ser el índice de una pista de animación.
int animation_track_insert_key(track_idx: int, time: float, animation: StringName) 🔗
Inserta una clave con el valor animation en el time dado (en segundos). El track_idx debe ser el índice de una pista de animación.
void animation_track_set_key_animation(track_idx: int, key_idx: int, animation: StringName) 🔗
Establece la clave identificada por key_idx con el valor animation. El track_idx debe ser el índice de una pista de animación.
float audio_track_get_key_end_offset(track_idx: int, key_idx: int) const 🔗
Devuelve el desplazamiento final de la clave identificada por key_idx. El track_idx debe ser el índice de una pista de audio.
El desplazamiento final es el número de segundos que se cortan al final de la transmisión de audio.
float audio_track_get_key_start_offset(track_idx: int, key_idx: int) const 🔗
Devuelve el desplazamiento inicial de la clave identificada por key_idx. El track_idx debe ser el índice de una pista de audio.
El desplazamiento de inicio es el número de segundos que se cortan al principio de la transmisión de audio.
Resource audio_track_get_key_stream(track_idx: int, key_idx: int) const 🔗
Devuelve el flujo de audio de la clave identificada por key_idx. El track_idx debe ser el índice de una pista de audio.
int audio_track_insert_key(track_idx: int, time: float, stream: Resource, start_offset: float = 0, end_offset: float = 0) 🔗
Inserta una clave de pista de Audio en el time dado en segundos. El track_idx debe ser el índice de una Pista de Audio.
stream es el recurso AudioStream que se va a reproducir. start_offset es el número de segundos que se recortan al principio del flujo de audio, mientras que end_offset es al final.
bool audio_track_is_use_blend(track_idx: int) const 🔗
Devuelve true si la pista en track_idx se combinará con otras animaciones.
void audio_track_set_key_end_offset(track_idx: int, key_idx: int, offset: float) 🔗
Establece el desplazamiento final de la clave identificada por key_idx al valor offset. El track_idx debe ser el índice de una pista de audio.
void audio_track_set_key_start_offset(track_idx: int, key_idx: int, offset: float) 🔗
Establece el desplazamiento inicial de la clave identificada por key_idx al valor offset. El track_idx debe ser el índice de una pista de audio.
void audio_track_set_key_stream(track_idx: int, key_idx: int, stream: Resource) 🔗
Establece el flujo de la clave identificada por key_idx al valor stream. El track_idx debe ser el índice de una pista de audio.
void audio_track_set_use_blend(track_idx: int, enable: bool) 🔗
Establece si la pista se combinará con otras animaciones. Si true, el volumen de reproducción de audio cambia dependiendo del valor de la mezcla.
Vector2 bezier_track_get_key_in_handle(track_idx: int, key_idx: int) const 🔗
Devuelve el "in handle" de la clave identificada por key_idx. El track_idx debe ser el índice de una pista Bezier.
Vector2 bezier_track_get_key_out_handle(track_idx: int, key_idx: int) const 🔗
Devuelve el "out handle" de la clave identificada por key_idx. El track_idx debe ser el índice de una pista Bezier.
float bezier_track_get_key_value(track_idx: int, key_idx: int) const 🔗
Devuelve el valor de la clave identificada por key_idx. El track_idx debe ser el índice de una pista Bezier.
int bezier_track_insert_key(track_idx: int, time: float, value: float, in_handle: Vector2 = Vector2(0, 0), out_handle: Vector2 = Vector2(0, 0)) 🔗
Inserta una clave de pista Bezier en el time dado en segundos. El track_idx debe ser el índice de una pista Bezier.
in_handle es el peso del lado izquierdo del punto de la curva Bezier añadido, out_handle es el del lado derecho, mientras que value es el valor actual en este punto.
float bezier_track_interpolate(track_idx: int, time: float) const 🔗
Devuelve el valor interpolado en el time dado (en segundos). El track_idx debe ser el índice de una pista Bezier.
void bezier_track_set_key_in_handle(track_idx: int, key_idx: int, in_handle: Vector2, balanced_value_time_ratio: float = 1.0) 🔗
Establece el "in handle" de la clave identificada por key_idx al valor in_handle. El track_idx debe ser el índice de una pista Bezier.
void bezier_track_set_key_out_handle(track_idx: int, key_idx: int, out_handle: Vector2, balanced_value_time_ratio: float = 1.0) 🔗
Establece el "out handle" de la clave identificada por key_idx al valor out_handle. El track_idx debe ser el índice de una pista Bezier.
void bezier_track_set_key_value(track_idx: int, key_idx: int, value: float) 🔗
Establece el valor de la clave identificada por key_idx al valor dado. El track_idx debe ser el índice de una pista Bezier.
int blend_shape_track_insert_key(track_idx: int, time: float, amount: float) 🔗
Inserta una clave en una pista de la "blend shape" dada. Devuelve el índice de la clave.
float blend_shape_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Devuelve el valor interpolado de la "blend shape" en el time dado (en segundos). El track_idx debe ser el índice de una pista de "blend shape".
void clear() 🔗
Limpiar la animacion (limpia todas las pistas y reinicia todo).
void compress(page_size: int = 8192, fps: int = 120, split_tolerance: float = 4.0) 🔗
Comprime la animación y todas sus pistas en su lugar. Esto hará que track_is_compressed() devuelva true al llamar a esta Animation. Las pistas comprimidas requieren menos memoria para reproducirse y están diseñadas para animaciones 3D complejas (como cinemáticas) importadas desde software 3D externo. La compresión tiene pérdidas, pero la diferencia no suele ser perceptible en condiciones reales.
Nota: Las pistas comprimidas tienen varias limitaciones (como no ser editables desde el editor), así que solo usa animaciones comprimidas si realmente las necesitas.
void copy_track(track_idx: int, to_animation: Animation) 🔗
Añade una nueva pista a to_animation que es una copia de la pista dada de esta animación.
int find_track(path: NodePath, type: TrackType) const 🔗
Devuelve el índice de la pista especificada. Si la pista no se encuentra, devuelve -1.
StringName get_marker_at_time(time: float) const 🔗
Devuelve el nombre del marcador ubicado en el tiempo dado.
Color get_marker_color(name: StringName) const 🔗
Devuelve el color del marcador dado.
PackedStringArray get_marker_names() const 🔗
Devuelve cada marcador en esta animación, ordenado de forma ascendente por tiempo.
float get_marker_time(name: StringName) const 🔗
Devuelve el tiempo del marcador dado.
StringName get_next_marker(time: float) const 🔗
Devuelve el marcador más cercano que viene después del tiempo dado. Si no existe tal marcador, se devuelve una string vacía.
StringName get_prev_marker(time: float) const 🔗
Devuelve el marcador más cercano que está antes del tiempo dado. Si no existe tal marcador, se devuelve una string vacía.
Devuelve la cantidad de pistas en la animación.
bool has_marker(name: StringName) const 🔗
Devuelve true si esta animación contiene un marcador con el nombre dado.
StringName method_track_get_name(track_idx: int, key_idx: int) const 🔗
Devuelve el nombre del método de una pista de método.
Array method_track_get_params(track_idx: int, key_idx: int) const 🔗
Devuelve los valores de los argumentos que se llamarán en una pista del método para una clave determinada en una pista determinada.
void optimize(allowed_velocity_err: float = 0.01, allowed_angular_err: float = 0.01, precision: int = 3) 🔗
Optimiza la animación y todas sus pistas en el lugar. Esto conservará solo las claves necesarias para mantener la animación dentro de los límites especificados.
int position_track_insert_key(track_idx: int, time: float, position: Vector3) 🔗
Inserta una clave en una posición de la pista 3D dada. Devuelve el índice de la clave.
Vector3 position_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Devuelve el valor de posición interpolado en el tiempo dado (en segundos). El track_idx debe ser el índice de una pista de posición 3D.
void remove_marker(name: StringName) 🔗
Elimina el marcador con el nombre dado de esta animación.
void remove_track(track_idx: int) 🔗
Elimina una pista especificando el índice de la pista.
int rotation_track_insert_key(track_idx: int, time: float, rotation: Quaternion) 🔗
Inserta una clave en una pista de rotación 3D determinada. Devuelve el índice de la clave.
Quaternion rotation_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Devuelve el valor de rotación interpolado en el tiempo dado (en segundos). El track_idx debe ser el índice de una pista de rotación 3D.
int scale_track_insert_key(track_idx: int, time: float, scale: Vector3) 🔗
Inserta una clave en una pista de escala 3D determinada. Devuelve el índice de la clave.
Vector3 scale_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Devuelve el valor de escala interpolado en el tiempo dado (en segundos). El track_idx debe ser el índice de una pista de escala 3D.
void set_marker_color(name: StringName, color: Color) 🔗
Establece el color del marcador dado.
int track_find_key(track_idx: int, time: float, find_mode: FindMode = 0, limit: bool = false, backward: bool = false) const 🔗
Encuentra el índice de la clave por tiempo en una pista dada. Opcionalmente, solo lo encuentra si se da el tiempo aproximado/exacto.
Si limit es true, no devuelve las claves fuera del rango de la animación.
Si backward es true, la dirección se invierte en los métodos que se basan en el procesamiento unidireccional.
Por ejemplo, en el caso de que find_mode sea FIND_MODE_NEAREST, si no hay ninguna clave en la posición actual justo después de buscar, la primera clave encontrada se recupera buscando antes de la posición, pero si backward es true, la primera clave encontrada se recupera después de la posición.
bool track_get_interpolation_loop_wrap(track_idx: int) const 🔗
Devuelve true si la pista en track_idx envuelve el bucle de interpolación. Las nuevas pistas envuelven el bucle de interpolación por defecto.
InterpolationType track_get_interpolation_type(track_idx: int) const 🔗
Devuelve el tipo de interpolación de una pista determinada.
int track_get_key_count(track_idx: int) const 🔗
Devuelve la cantidad de claves en una pista determinada.
float track_get_key_time(track_idx: int, key_idx: int) const 🔗
Devuelve la hora en la que se encuentra la clave.
float track_get_key_transition(track_idx: int, key_idx: int) const 🔗
Devuelve la curva de transición (suavizado) para una clave específica (véase la función matemática incorporada @GlobalScope.ease()).
Variant track_get_key_value(track_idx: int, key_idx: int) const 🔗
Devuelve el valor de una clave determinada en una pista determinada.
NodePath track_get_path(track_idx: int) const 🔗
Obtiene el camino de una pista. Para más información sobre el formato de la ruta, ver track_set_path().
TrackType track_get_type(track_idx: int) const 🔗
Obtiene el tipo de pista.
int track_insert_key(track_idx: int, time: float, key: Variant, transition: float = 1) 🔗
Inserta una clave genérica en una pista determinada. Devuelve el índice de la clave.
bool track_is_compressed(track_idx: int) const 🔗
Devuelve true si la pista está comprimida, y false en caso contrario. Véase también compress().
bool track_is_enabled(track_idx: int) const 🔗
Devuelve true si la pista en el índice track_idx está habilitada.
bool track_is_imported(track_idx: int) const 🔗
Devuelve true si la pista dada es importada. Si no, devuelve false.
void track_move_down(track_idx: int) 🔗
Mueve una pista hacia abajo.
void track_move_to(track_idx: int, to_idx: int) 🔗
Cambia la posición del índice de la pista track_idx a la definida en to_idx.
void track_move_up(track_idx: int) 🔗
Mueve una pista hacia arriba.
void track_remove_key(track_idx: int, key_idx: int) 🔗
Elimina una clave por índice en una pista dada.
void track_remove_key_at_time(track_idx: int, time: float) 🔗
Elimina una clave en time en una pista dada.
void track_set_enabled(track_idx: int, enabled: bool) 🔗
Habilita o deshabilita la pista dada. Las pistas están habilitadas por defecto.
void track_set_imported(track_idx: int, imported: bool) 🔗
Establece la pista dada como importada o no.
void track_set_interpolation_loop_wrap(track_idx: int, interpolation: bool) 🔗
Si es true, la pista en track_idx envuelve el bucle de interpolación.
void track_set_interpolation_type(track_idx: int, interpolation: InterpolationType) 🔗
Establece el tipo de interpolación de una pista determinada.
void track_set_key_time(track_idx: int, key_idx: int, time: float) 🔗
Establece la hora de una clave existente.
void track_set_key_transition(track_idx: int, key_idx: int, transition: float) 🔗
Establece la curva de transición (easing) para una clave específica (véase la función matemática incorporada @GlobalScope.ease()).
void track_set_key_value(track_idx: int, key: int, value: Variant) 🔗
Establece el valor de una clave existente.
void track_set_path(track_idx: int, path: NodePath) 🔗
Establece la ruta de una pista. Las rutas deben ser rutas válidas del árbol de escenas a un nodo y deben especificarse a partir del AnimationMixer.root_node que reproducirá la animación. Las pistas que controlan propiedades o huesos deben añadir su nombre después de la ruta, separado por ":".
Por ejemplo, "character/skeleton:ankle" o "character/mesh:transform/local".
void track_swap(track_idx: int, with_idx: int) 🔗
Intercambia la posición del índice track_idx de la pista con el with_idx de la pista.
UpdateMode value_track_get_update_mode(track_idx: int) const 🔗
Devuelve el modo de actualización de una pista de valores.
Variant value_track_interpolate(track_idx: int, time_sec: float, backward: bool = false) const 🔗
Devuelve el valor interpolado en el tiempo dado (en segundos). El track_idx debe ser el índice de una pista de valor.
Un backward afecta principalmente a la dirección de recuperación de la clave de la pista con UPDATE_DISCRETE convertida por AnimationMixer.ANIMATION_CALLBACK_MODE_DISCRETE_FORCE_CONTINUOUS para que coincida con el resultado de track_find_key().
void value_track_set_update_mode(track_idx: int, mode: UpdateMode) 🔗
Establece el modo de actualización de una pista de valores.