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...
AnimationPlayer
Hérite de : AnimationMixer < Node < Object
Un nœud utilisé pour la lecture d'animation.
Description
Un lecteur d'animation est utilisé pour la lecture générale des ressources Animation. Il contient un dictionnaire de ressources AnimationLibrary et des temps de mélange personnalisés entre les transitions d'animation.
Certaines méthodes et propriétés utilisent une unique clé pour référencer une animation directement. Ces clés sont formatées comme la clé pour la bibliothèque, suivies d'un slash avant, puis la clé pour l'animation dans la bibliothèque, par exemple "movement/run". Si la clé de la bibliothèque est une chaîne vide (connue sous le nom de bibliothèque par défaut), le slash avant est omis, étant la même clé utilisée par la bibliothèque.
AnimationPlayer est mieux adapté que Tween pour des animations plus complexes, par exemple celles avec des timings non-triviaux. Il peut également être utilisé au lieu Tween si l'éditeur de piste d'animation est plus pratique que de le faire dans du code.
La mise à jour des propriétés cibles des animations se produit lors de la trame de traitement.
Tutoriels
Propriétés
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
Méthodes
animation_get_next(animation_from: StringName) const |
|
void |
animation_set_next(animation_from: StringName, animation_to: StringName) |
void |
|
get_blend_time(animation_from: StringName, animation_to: StringName) const |
|
get_method_call_mode() const |
|
get_playing_speed() const |
|
get_process_callback() const |
|
get_root() const |
|
get_section_end_time() const |
|
get_section_start_time() const |
|
has_section() const |
|
is_animation_active() const |
|
is_playing() const |
|
void |
pause() |
void |
play(name: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) |
void |
play_backwards(name: StringName = &"", custom_blend: float = -1) |
void |
play_section(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) |
void |
play_section_backwards(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1) |
void |
play_section_with_markers(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) |
void |
play_section_with_markers_backwards(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1) |
void |
play_with_capture(name: StringName = &"", duration: float = -1.0, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false, trans_type: TransitionType = 0, ease_type: EaseType = 0) |
void |
queue(name: StringName) |
void |
|
void |
seek(seconds: float, update: bool = false, update_only: bool = false) |
void |
set_blend_time(animation_from: StringName, animation_to: StringName, sec: float) |
void |
|
void |
|
void |
|
void |
set_section(start_time: float = -1, end_time: float = -1) |
void |
set_section_with_markers(start_marker: StringName = &"", end_marker: StringName = &"") |
void |
Signaux
animation_changed(old_name: StringName, new_name: StringName) 🔗
Émis lorsqu'une animation ajoutée à la file jouera après la fin de l'animation précédente. Voir aussi queue().
Note : Le signal n'est pas émis lorsque l'animation est changée via play() ou par un AnimationTree.
current_animation_changed(anim_name: StringName) 🔗
Émis lorsque current_animation change.
Énumérations
enum AnimationProcessCallback: 🔗
AnimationProcessCallback ANIMATION_PROCESS_PHYSICS = 0
Obsolète : See AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_PHYSICS.
AnimationProcessCallback ANIMATION_PROCESS_IDLE = 1
Obsolète : See AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_IDLE.
AnimationProcessCallback ANIMATION_PROCESS_MANUAL = 2
Obsolète : See AnimationMixer.ANIMATION_CALLBACK_MODE_PROCESS_MANUAL.
enum AnimationMethodCallMode: 🔗
AnimationMethodCallMode ANIMATION_METHOD_CALL_DEFERRED = 0
Obsolète : See AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_DEFERRED.
AnimationMethodCallMode ANIMATION_METHOD_CALL_IMMEDIATE = 1
Obsolète : See AnimationMixer.ANIMATION_CALLBACK_MODE_METHOD_IMMEDIATE.
Descriptions des propriétés
StringName assigned_animation 🔗
void set_assigned_animation(value: StringName)
StringName get_assigned_animation()
Si en lecture, la clé de l'animation actuelle, sinon, la dernière animation jouée. Lorsque cela est défini, cela change l'animation, mais ne le jouera pas à moins de jouer déjà. Voir aussi current_animation.
StringName autoplay = &"" 🔗
void set_autoplay(value: StringName)
StringName get_autoplay()
La clé d'animation à jouer quand la scène est chargée.
StringName current_animation = &"" 🔗
void set_current_animation(value: StringName)
StringName get_current_animation()
La clé de l'animation en cours de lecture. Si aucune animation ne joue, la valeur de la propriété est une chaîne vide. Changer cette valeur ne redémarre pas l'animation. Voir play() pour plus d'informations sur la lecture d'animations.
Note : Bien que cette propriété apparaisse dans l'inspecteur, elle n'est pas censée être modifiée, et elle n'est pas sauvegardée dans la scène. Cette propriété est principalement utilisée pour obtenir l'animation en cours de lecture, et en interne pour les pistes de lecture d'animation. Pour plus d'informations, voir Animation.
float current_animation_length 🔗
float get_current_animation_length()
La durée (en secondes) de l'animation actuellement jouée.
float current_animation_position 🔗
float get_current_animation_position()
La position (en secondes) de l'animation actuellement jouée.
bool movie_quit_on_finish = false 🔗
Si true et que le moteur fonctionne en mode Création de film (voir MovieWriter), quitte le moteur avec SceneTree.quit() dès qu'une animation a fini de jouer dans ce AnimationPlayer. Un message est affiché lorsque le moteur quitte pour cette raison.
Note : Cela obéit à la même logique que le signal AnimationMixer.animation_finished, de sorte qu'il fera pas quitter le moteur si l'animation est définie pour jouer en boucle.
bool playback_auto_capture = true 🔗
Si true, effectue AnimationMixer.capture() avant la lecture automatiquement. Cela signifie juste que play_with_capture() est exécuté avec des arguments par défaut au lieu de play().
Note : L'interpolation de capture n'est effectuée que si l'animation contient une piste de capture. Voir aussi Animation.UPDATE_CAPTURE.
float playback_auto_capture_duration = -1.0 🔗
Voir aussi play_with_capture() et AnimationMixer.capture().
Si playback_auto_capture_duration est une valeur négative, la durée est définie à l'intervalle entre la position actuelle et la première clé.
EaseType playback_auto_capture_ease_type = 0 🔗
Le type d'accélération de l'interpolation de capture. Voir aussi EaseType.
TransitionType playback_auto_capture_transition_type = 0 🔗
void set_auto_capture_transition_type(value: TransitionType)
TransitionType get_auto_capture_transition_type()
Le type de transition de l'interpolation de capture. Voir aussi TransitionType.
float playback_default_blend_time = 0.0 🔗
Le moment par défaut où les animations sont mélangées. L'intervalle va de 0 à 4096 avec une précision de 0,01.
Le rapport d'échelle de vitesse. Par exemple, si cette valeur vaut 1, alors l'animation joue à la vitesse normale. À 0,5, elle est joué deux fois moins vite. À 2, elle est jouée deux fois plus vite.
S'il est négatif, l'animation est jouée à l'envers. S'il est défini à 0, l'animation n'avancera pas.
Descriptions des méthodes
StringName animation_get_next(animation_from: StringName) const 🔗
Renvoie la clé de l'animation qui est dans la queue pour jouer après l'animation animation_from.
void animation_set_next(animation_from: StringName, animation_to: StringName) 🔗
Déclenche l'animation animation_to quand l'animation animation_from se termine.
void clear_queue() 🔗
Efface toutes les animations en file d’attente et non joués.
float get_blend_time(animation_from: StringName, animation_to: StringName) const 🔗
Renvoie le temps de mélange (en secondes) entre deux animations, référencées par leurs clés.
AnimationMethodCallMode get_method_call_mode() const 🔗
Obsolète : Use AnimationMixer.callback_mode_method instead.
Renvoie le mode d'appel utilisé pour les pistes "Appel de méthode".
float get_playing_speed() const 🔗
Renvoie la vitesse réelle de lecture de l'animation actuelle ou 0 si elle n'est pas en train de jouer. Cette vitesse est la propriété speed_scale multipliée par l'argument custom_speed spécifié lors de l'appel de la méthode play().
Renvoie une valeur négative si l'animation actuelle se joue à l'envers.
AnimationProcessCallback get_process_callback() const 🔗
Obsolète : Use AnimationMixer.callback_mode_process instead.
Renvoie la notification de traitement dans laquelle mettre à jour les animations.
Array[StringName] get_queue() 🔗
Renvoie une liste de clés d'animation qui sont actuellement dans la file pour jouer.
Obsolète : Use AnimationMixer.root_node instead.
Renvoie le nœud à partir duquel les références de chemin de nœud vont commencer.
float get_section_end_time() const 🔗
Renvoie le temps de fin de la section en cours de lecture.
float get_section_start_time() const 🔗
Renvoie le temps de début de la section en cours de lecture.
Renvoie true si une animation joue actuellement avec une section.
bool is_animation_active() const 🔗
Renvoie true si une animation est actuellement active. Une animation est active si elle a été jouée en appelant play() et n'est pas encore finie, ou a été arrêtée en appelant stop().
Cela peut être utilisé pour vérifier si une animation est actuellement interrompue ou arrêtée.
var est_en_pause = not is_playing() and is_animation_active()
var est_arretee = not is_playing() and not is_animation_active()
Renvoie true si une animation est jouée actuellement (même si speed_scale et/ou custom_speed valent 0).
void pause() 🔗
Met en pause l'animation en cours. La position d'animation actuelle (current_animation_position) sera gardée et appeller play() ou play_backwards() sans arguments ou avec le même nom d'animation que assigned_animation reprendra l'animation.
Voir aussi stop().
void play(name: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) 🔗
Joue l'animation avec la clé name. Des temps de mélange et une vitesse personnalisés peuvent être définis.
L'option from_end n'affecte que lorsque vous passez à une nouvelle piste d'animation, ou avec la même piste, mais au début ou à la fin. Elle n'affecte pas la reprise de la lecture qui a été mise en pause au milieu d'une animation. Si custom_speed est négatif et from_end vaut true, l'animation jouera à l'envers (qui est équivalent à appeler play_backwards()).
L'AnimationPlayer garde la trace de son animation actuelle ou dernière avec assigned_animation. Si cette méthode est appelée avec ce même nom d'animation name, ou sans paramètre name, l'animation assignée reprendra la lecture si elle a été interrompue.
Note: L'animation sera mise à jour la prochaine fois que l'AnimationPlayer sera traité. Si d'autres variables sont mises à jour en même temps que ceci est appelle, elles peuvent être mises à jour trop tôt. Pour effectuer la mise à jour immédiatement, appelez advance(0).
void play_backwards(name: StringName = &"", custom_blend: float = -1) 🔗
Joue à l'envers l'animation avec la clé name.
Cette méthode est un raccourci pour play() avec custom_speed = -1.0 et from_end = true, voir donc sa description pour plus d'informations.
void play_section(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) 🔗
Joue l'animation avec la clé name et la section commençant au temps start_time et se terminant au temps end_time. Voir aussi play().
Définir start_time à une valeur en dehors de la plage de l'animation signifie que le début de l'animation sera utilisé à la place, et définir end_time à une valeur en dehors de la plage de l'animation signifie que la fin de l'animation sera utilisée à la place. start_time ne peut être égal à end_time.
void play_section_backwards(name: StringName = &"", start_time: float = -1, end_time: float = -1, custom_blend: float = -1) 🔗
Joue l'animation avec la clé name et la section commençant à start_time et finissant à end_time, à l'envers.
Cette méthode est un raccourci pour play_section() avec custom_speed = -1.0 et from_end = true, voir sa description pour plus d'informations.
void play_section_with_markers(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false) 🔗
Joue l'animation avec la clé name et la section commençant au marqueur start_marker et se terminant au marqueur end_marker.
Si le marqueur de départ est vide, la section commence à partir du début de l'animation. Si le marqueur de fin est vide, la section se termine à la fin de l'animation. Voir aussi play().
void play_section_with_markers_backwards(name: StringName = &"", start_marker: StringName = &"", end_marker: StringName = &"", custom_blend: float = -1) 🔗
Joue l'animation avec la clé name et la section commençant à start_marker et finissant à end_marker, à l'envers.
Cette méthode est un raccourci pour play_section_with_markers() avec custom_speed = -1.0 et from_end = true, voir sa description pour plus d'informations.
void play_with_capture(name: StringName = &"", duration: float = -1.0, custom_blend: float = -1, custom_speed: float = 1.0, from_end: bool = false, trans_type: TransitionType = 0, ease_type: EaseType = 0) 🔗
Voir aussi AnimationMixer.capture().
Vous pouvez utiliser cette méthode pour utiliser des options plus détaillées pour la capture que celles effectuées par playback_auto_capture. Lorsque playback_auto_capture vaut false, cette méthode est presque identique à ce qui suit :
capture(name, duration, trans_type, ease_type)
play(name, custom_blend, custom_speed, from_end)
Si name est vierge, il spécifie assigned_animation.
Si duration est une valeur négative, la durée est définie à l'intervalle entre la position actuelle et la première clé. Lorsque from_end vaut true, utilise l'intervalle entre la position actuelle et la dernière clé à la place.
Note : La duration prend en compte speed_scale, mais custom_speed ne le fait pas, car le cache de capture est interpolé avec le résultat du mélange et le résultat peut contenir plusieurs animations.
void queue(name: StringName) 🔗
Met en d'attente une animation pour lecture une fois que l'animation actuelle et toutes les animations déjà en attente sont faites.
Note : Si une animation bouclant joue actuellement, l'animation en attente ne jouera jamais à moins que l'animation bouclant soit arrêtée.
void reset_section() 🔗
Réinitialise la section actuelle. Ne fait rien si une section n'a pas été définie.
void seek(seconds: float, update: bool = false, update_only: bool = false) 🔗
Avance la lecture de l'animation à la position seconds dans le temps (en secondes). Si update est true, l'animation se mettra également à jour, sinon elle le sera au moment du traitement. Les événements entre la trame actuelle et la position seconds sont ignorés.
Si update_only est true, les pistes de lecture de méthode / audio / animation ne seront pas traitées.
Note : Aller à la fin de l'animation n'émet pas le signal AnimationMixer.animation_finished. Si vous souhaitez ignorer l'animation et émettre le signal, utilisez plutôt AnimationMixer.advance().
void set_blend_time(animation_from: StringName, animation_to: StringName, sec: float) 🔗
Spécifie un temps de mélange (en secondes) entre deux animations, référencées par leurs clés.
void set_method_call_mode(mode: AnimationMethodCallMode) 🔗
Obsolète : Use AnimationMixer.callback_mode_method instead.
Définit le mode d'appel utilisé pour les pistes "Appel de méthode".
void set_process_callback(mode: AnimationProcessCallback) 🔗
Obsolète : Use AnimationMixer.callback_mode_process instead.
Définit la notification de traitement dans laquelle mettre à jour les animations.
void set_root(path: NodePath) 🔗
Obsolète : Use AnimationMixer.root_node instead.
Définit le nœud à partir duquel les références de chemin de nœud vont commencer.
void set_section(start_time: float = -1, end_time: float = -1) 🔗
Change les temps de début et de fin de la section actuellement jouée. La position de lecture actuelle sera bornée à l’intérieur la nouvelle section. Voir aussi play_section().
void set_section_with_markers(start_marker: StringName = &"", end_marker: StringName = &"") 🔗
Change les marqueurs de début et de fin de la section en cours de lecture. La position de lecture actuelle sera bornée dans la nouvelle section. Voir aussi play_section_with_markers().
Si l'argument est vide, la section utilise le début ou la fin de l'animation. Si les deux sont vides, cela signifie que la section n'est pas définie.
void stop(keep_state: bool = false) 🔗
Arrête l'animation en cours de lecture. La position de l'animation est réinitialisée à 0 et la vitesse de lecture custom_speed est réinitialisée à 1.0. Voir aussi pause().
Si keep_state vaut true, l'état d'animation n'est pas mis à jour visuellement.
Note : Les pistes de lecture de méthode / d'audio / d'animations ne seront pas traitées par cette méthode.