Partage
  • Partager sur Facebook
  • Partager sur Twitter

Récupérer informations dans un Blueprint

Sujet résolu
    25 mai 2019 à 18:45:12

    Hello ! 

    Alors je suis débutant et j'ai un soucis depuis plusieurs jours pour récupérer des infos dans un blueprint afin d'afficher une barre de puissance et je bloque sur un point. 

    Je sollicite votre aide au cas ou du coup. ;)

    Pour faire simple (enfin je vais essayer), je veux donc récupérer des infos afin d'afficher une barre de puissance qui monte tant que le clic de la souris est appuyé. Mon blueprint est de class actor. Voici comment est gérée la puissance : 

    La force va donc de 0 à 800. tout fonctionne bien à l'utilisation.

    J'ai ensuite créer un Widget blueprint. Dans la partie "Designer", affiché une "progressBar", j'ai fait "create binding" dans la partie "progress"

    Et du coup dans la fonction, je veux faire appel à mon Blueprint ou il y a les informations de puissance (variable "force"), mais quand je fais le "cast to", je ne sais pas quoi mettre dans "object". J'ai beau essayé plein de choses (ici "get player controller"), rien à faire... 

     

    Savez vous ou je me trompe ? 

    La barre est en tout cas bien affichée à l'écran mais ne monte pas au moment du clic, forcement. 

    J’espère avoir été assez clair. 

    Pour info, je n'ai pas de player character dans ma scène. 

    Merci !! 

    • Partager sur Facebook
    • Partager sur Twitter
      26 mai 2019 à 18:24:20

      Bonjour,

      Le probleme est que tu dis au programme qu'il doit récuperer le controlleur du personnage joué et le considerer comme "BP_Launcher" sauf que ce n'est pas le cas

      • Tente de changer "get player controller" par "get player character".
      • Si cela ne marche pas : Sur le blueprint de ton personnage, clique sur class settings et vérifie que parent class soit bien "character" (si ca ne marche pas remet en get player controller et rééssaye).
      • Partager sur Facebook
      • Partager sur Twitter
        28 mai 2019 à 11:00:54

        Bonjour Coukil, 

        Déjà, merci de ta réponse, c'est cool.

        J'avais déjà essayé de mettre "get player character" au lieu de "get player controller". 

        En fait, "BP_Launcher" n'est pas un personnage. C'est en fait un lanceur d'objet dans mon jeu. Il n'est pas mobile est n'a d'ailleurs pas d'apparence physique dans le jeu. Il a juste des inputs à la souris qui permettent de contrôler une direction et une force. 

        Et pour répondre à ton deuxième point, la classe de mon "BP_Launcher" est "actor" et pas "character". J'avais essayer de changer de class mon blueprint et de le passer en class "character" via la fonction "reparent blueprint", mais quand je fais ça, tout mes inputs à la souris ne fonctionnent plus...

        -
        Edité par StéphshinF 28 mai 2019 à 11:02:06

        • Partager sur Facebook
        • Partager sur Twitter
          28 mai 2019 à 20:30:47

          D'accord, Je n'avais pas eu ce problème parce qu'à l'époque j'envoyais toutes mes variables a mon personnage qui modifiais par lui meme le HUD.

          Il y a de nombreuses méthodes pour résoudre ce problème, je vais tenter de t'en expliquer une qui n'est pas trop brouillon avec un cas tout simple : afficher les munitions d'une arme externe lorsque le personnage tire.

          Je crée une classe "BP_Launcher" héritant de la classe "actor". Je lui applique ce script

          Sur mon HUD il y a une variable de type string (Muni) qui s'affecte a mon texte qui affiche mes munition (avec un bind donc comme ton image n°2)

          Dans la classe de mon player :

          Je Crée un widget de type HUD et je l'enregistre dans une variable, ce qui servira a le modifier pour plus tard.

          Cas 1 : Si l'objet est enfant de mon personnage dans sa hierarchie (son nom est FPWP), je le recupere et le cast en tant que Bp_Launcher :

          Dans la classe de mon player:

          Cas 2 (semble etre ton cas) : Si l'objet est présent dans la scene, alors je créee une variable PUBLIQUE (oeil ouvert) qui referencera "BP_Launcher :

          Dans la barre de détail de mon player sur le monde j'assigne mon actor BP_Launcher a la variable "Mon BP_Launcher" du joueur :

          Dans les deux cas je relie "BP_Launcher" a ma classe personnage car de souvenir il est impossible de récupérer l'action du click de la souris sur une classe qui n'est pas le joueur. Si la récuperation de l'info du click de la souris dans BP_Launcher  est inutile, il est aussi inutile de faire une variable referencant BP_Launcher.

          Pour en revenir dans ton cas, je pense que le probleme, c'est que cela doit être ta classe qui modifie le hud et non pas le hud qui recupere la classe et le modifie (après je peux me tromper).

          Edit : Il y aurait je pense d'autres méthodes pour récuperer une valeur dans "BP_Launcher" depuis seulement le HUD donc sans modifier toutes tes classes mais cela sera moins optimisé (de peu), voici ces exemples :

          PS: Ceci sont des méthodes que j'ai trouvé, il doit surement y en avoir d'autres plus optimisé. Je pense qu'il serait plus intéressant de stocker la variable "MonHUD" a un autre endroit que celui du player mais cela suffit pour l'exemple.

          -
          Edité par coukil 28 mai 2019 à 20:46:03

          • Partager sur Facebook
          • Partager sur Twitter
            28 mai 2019 à 21:32:12

            Merci pour ta réponse, je vais essayer de bien comprendre ce que tu m'as écris et tester ça jeudi, je ne pourrais pas avant. ;)
            • Partager sur Facebook
            • Partager sur Twitter
              4 juin 2019 à 21:30:11

              C'est tout bon pour moi du coup, mon problème est résolu et en fait j'ai pas eu besoin de tes explications coukil, car en reprenant tout de zéro, je me suis rendu compte que j'avais une erreur dans les world settings. J'avais du faire une fausse manip lors de mes premières recherches à force de chercher... :o

              Et pour infos, tout c'est résolu au final en convertissant mon class actor en class character, et la j'ai pu "caster" via cast to et mes inputs fonctionne toujours...

              Place maintenant à d'autres problèmes ! :p  

              Merci à tous ! 

              -
              Edité par StéphshinF 4 juin 2019 à 21:34:18

              • Partager sur Facebook
              • Partager sur Twitter

              Récupérer informations dans un Blueprint

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              • Editeur
              • Markdown