Announcement

Collapse
No announcement yet.

[FR] Attendre qu'une animation soit terminée

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [FR] Attendre qu'une animation soit terminée

    Bonjour,

    Je suis débutant et je cherche une solution pour attendre qu'une animation du personnage soit terminée pour continuer.

    Exemple : lorsque j'appui sur la touche "R" devant un objet, je souhaite jouer une animation où le perso se baisse puis ramasse. Actuellement, je fais tout simplement un "Play animation" pour jouer l'animation. Sauf que je suis obligé de faire ensuite un "Set animation Mode" pour repasser mon personnage sur mon Anim_BP de idle/marche. Entre les deux je suis obligé de faire un "Delay" (quand c'est possible). Même à mon niveau de débutant, je trouve que c'est pas très propre. Il doit y avoir beaucoup je pense.

    J'avais trouvé une solution qui me semblait assez simple il n'y a pas si longtemps mais je n'arrive absolument pas à remettre la main dessus.

    Si quelqu'un peux me donner une piste je suis preneur.

    En vous remerciant d'avance.
    Last edited by sifusalade; 08-26-2018, 02:35 AM.

    #2
    Alors là 10 000 mercis !!!

    C'est très gentil d'avoir pris le temps de me donner une réponse aussi précise.
    Je viens de voir la réponse à l'instant, donc je n'ai pas encore testé.

    Je teste ça dès que je peux demain mais ça ma l'air très clair. Et puis c'est bien expliqué, je comprends le cheminement et ça c'est top.

    Je reviendrais dire si ça a marché pour moi. Encore merci.

    Comment


      #3
      Alors, la première chose que j'ai fait en rentrant du boulot est d'allumer l'ordi et de tester ça. Ça marche nickel !!

      Non seulement ça marche, mais en plus j'ai compris le pourquoi du comment.

      (comme quoi, quand on débute, on se complique souvent la vie pour rien )

      Ça marche, c'est simple, et j'ai tout compris. 30 000 mercis de plus

      Comment


        #4
        Merci beaucoup..
        Je comptais justement m'y attaquer ce soir. J'imagine qu'il faut placer un "Disable input" au début de ma fonction "RamasserItem" (que j'ai dans mon BP du perso) et un "Enable input" à la fin de cette fonction.

        Ceci dit, je suis preneur de voir comment tu fais. En espérant ne pas abuser de ta gentillesse.

        Comment


          #5
          Encore merci. Je ne savais pas qu'on pouvais appeler l'event d'un notify. Pour l'instant je ne m'en suis servi que pour mettre des bruits de pas.

          Ta méthode est vraiment très bien. Merci encore pour tes conseils.

          J'ai eu juste un problème avec. J'avais modifié le MaxSpeedWalk par défaut pour le mettre en vitesse de marche. Avec un event à l'appui d'une touche je redéfini ce MaxSpeedWalk sur une vitesse de course (et je remet en vitesse de marche au Relased). Du coup avec ta méthode, lorsque j'appuyais sur la touche pour courrir pendant l'animation, je pouvais déplacer mon perso.

          Pour remédier à ça j'ai essayer mettre un Branch pour tester ta variable PickUpObject au tout début de l'évent.
          Sur le False de ce Branch je continu le script. Sur le True je ne fais rien.
          (sur l'EventGraph du personnage)
          Click image for larger version

Name:	capture1.png
Views:	375
Size:	105.7 KB
ID:	1521301


          Mais ça ne fonctionne pas très bien puisque si j'appui une deuxième fois pendant l'animation. La variable PickUpObject est passé à False entre temps? (Après le delay de 0.2)



          J'ai eu un autre problème (que j'ai corrigé)
          Pendant l'animation, mon perso pouvais encore se trourner. Il ne pouvais plus se déplacer mais il pouvais pivoter. Pour remédier à ça. au moment de définir le MaxSpeedWalk à 0. Je fait aussi un SetRotationScale à 0 - 0 - 0 (dans l'EventGraph du perso).
          Click image for larger version

Name:	capture1.png
Views:	380
Size:	69.1 KB
ID:	1521302


          Je refais ensuite un MaxSpeedWalk 0 - 0 - 540 (dans l'EventGraph de l'animBP du perso) à la fin de mon Event EndAnim (juste après avoir repassé en vitesse de marche).
          Click image for larger version

Name:	capture1.png
Views:	372
Size:	143.9 KB
ID:	1521303

          Comment


            #6
            C'est très gentil d'avoir répondu.
            Cela n'a pas fonctionné. Mais en fait je suis bête, parce que je faisais un Branch au début de mon input de la touche pour courir (Gamepad Left Trigger).
            Mais, uniquement sur le Pressed. Je suis con. Il fallait aussi le mettre sur le Released. C'est pour ça que je passai systématiquement en vitesse de marche et que je pouvais donc continuer d'avancer pendant l'anim.

            La solution, en plus de ce que tu m'a indiqué. Est de tester la variable PickUpObjet? sur le Pressed et le Released.

            Encore merci à toi. Tu m'as beaucoup aidé.

            Comment


              #7
              Je fais pareil sauf que c'est un ennemi qui joue l'animation d'attaque quand il me touche. Je suis dans son BP mais je ne trouve pas le booléen Attack? (j'ai fait la reste avec l'animation) donc je dois faire un Cast To et tout le tralala et quand je lance le jeu en regardant les nodes, le Begin In Hit (Component) envoi un courant dans le Cast To AnimBP_BossZombie (où l'Object est un Cast To ThirdPersonCharacter, pas logique puisque j'y suis déjà) et ensuite rien ne sort du Cast To vers le booléen SET. J'ai essayé de le mettre dans le BP du level, mais non plus... Aurez vous une solution ?

              Comment

              Working...
              X