Bug Switch Animation

Bonjour,

Je travaille sur un système de sauvetage dans UE4 et je rencontre un problème avec les transitions d’animation.
Mon setup :

BP_Civil avec deux animations : Blessé_idle (par défaut) et Normal_idle
Le joueur maintient une touche pour remplir une progress bar
Une fois la barre complète, le civil devrait passer de Blessé_idle à Normal_idle

Le problème :
L’animation change immédiatement dès que j’appuie sur la touche, au lieu d’attendre que la progress bar soit complète. J’ai aussi parfois le timer qui tourne en boucle infinie.

Salut,

Pour ce qui est de l’animation, je ne saurais pas te dire car je ne vois pas ce qui déclenche le changement d’anim. C’est peut-être dans le wbp?

Par contre pour ton timer, c’est mal branché.
Ton event “Timer” est branché sur le Set Timer by event, mais l’event branché est toujours Timer.
Si Timer sert à commencer le timer, il me semblerait plus logique que l’event soit “Update Timer” au lieu de Timer, et dans ce cas tu devrais supprimer les autres appel à Update Timer.

Celui d’en haut ne sert pas vraiment car Timer déclencherait Update Timer automatiquement. Je remarque aussi que tu as branché une var sur le time du Timer, si tu veux mettre à jour une barre de progression en temps réel, utilise plutot Get World Delta Second (ça correspond au tick).

Celui d’en bas est inutile si tu coche “looping” sur le set timer by event, mais là aussi tu as un délai c’est pas très clair.

Je n’ai peut-être pas saisi complètement ce que tu essaye de faire mais je suis sur que ton timer est mal branché. Set timer by event une fois appelé va déclencher l’event branché sur le pin carré rouge avec un intervalle défini par time, et en boucle si looping est coché.

De base j’avais suivis ce tuto : https://www.youtube.com/watch?v=SD6RuyaqO9c&t=870s

Et je l’ai adapté un peu pour mon système de sauvetage, pour résumer.

Le Player s’approche du civil, il maintient la touche enfoncé afin de remplir la jauge, une fois celle ci complété le civil change d’animation.

Je joint un screen de mon Widget Blueprint ainsi que de la mise à jour du BP Civil.

Ok, le comportement doit être différent maintenant non?

Malheureusement non… lorsque j’appuie une fois sur S (touche attribué pour sauver le civil) l’animation change bien mais dès que je relâche la touche il repasse à son animation de base.

Je suis censé maintenir S jusqu’à remplir la jauge, une fois celle-ci remplis l’animation change.

J’imagine que l’animation se passe dans un “Anim Blueprint”, ça serait interessant de voir les nodes qui s’y trouvent, car là il manque des éléments pour résoudre le problème

Pour ce qui est de l’Animation Blueprint j’ai fait ceci :

Je comprends mieux, ta var Sauver dans l’anim BP est celle qui te permet de passer d’un état à l’autre (j’imagine que tu l’as mise en condition sur les transitions). Mais dans le BP du Civil, elle passe à true quand tu appuie sur S et à false quand tu relache, ce qui fait que l’anim change en appuyant/relachant le bouton (Event Blueprint Update Animation se fait à chaque frame).

Rien n’est relié au timer. Elle devrait passer à true seulement à la fin du timer.

Le plus simple, ça serait d’avoir 2 booléen dans BP_Civil. Garde “Sauver?” tel quel et créé en un autre “SauvetageSucces” (ou autre nom). Utilise cette deuxième var dans ton anim BP (dans l’anim BP n’en créé pas un deuxième).

Ensuite il faut bien sûr que cette nouvelle var change sur le timer. Ta progress bar arrive à la fin quand DelaiMaintenu = MaxDelaiMaintenu, donc tu peux utiliser cette condition pour passer ton nouveau bool à true (utilise supérieur ou égal car il se peut que ça n’arrive pas pile poil à la même valeur).

Et en haut tu n’as pas besoin du delai ni de la sequence, tu peux brancher l’appel à Timer directement après le Gate.

Sur le Set Timer by event, tu devrais aussi laisser 0 pour l’entrée “time” ou mieux “Get World Delta Second”, sinon ta progress bar va avancer par saccades. Si MaxDelaiMaintenu est de 2 secondes par exemple, ton timer va se déclencher toutes les 2 secondes.

Essaie déjà ces corrections et dis-moi ce que ça change en jeu. Si ça ne marche toujours pas on pourra essayer avec discord ça sera plus simple.

Actuellement la Progress Barre ne ce remplit plus, il serait plus judicieux d’échanger sur Discord

Oui ça sera mieux. Mon nom d’utilisateur c’est _grot13

Je t’ai ajouté