Fonctions Blueprint : créer une fonction avec entrées et sorties
Quand tu recopies les mêmes nœuds à plusieurs endroits, ton graphe devient vite difficile à lire. Les fonctions règlent ce problème. Ce guide te montre comment créer une fonction, lui donner une entrée et une sortie, et éviter un piège avec les fonctions Pure. Tout est vérifié sur la documentation officielle d’Epic Games.
Pourquoi une fonction ?
Une fonction regroupe des nœuds sous un nom. Tu les écris une fois, puis tu l’appelles par son nom partout où tu en as besoin. Si tu la modifies, tous les appels suivent.
Une fonction vit dans le Blueprint qui possède les variables qu’elle change. Par exemple, une fonction qui modifie le nombre de vies du joueur se crée dans le Blueprint du joueur.
Créer une fonction
- Dans le panneau My Blueprint, clique sur + à côté de Functions.
- Donne-lui un nom. Un nouveau graphe s’ouvre, rien que pour elle.
- Remplis-le en partant du nœud violet qui porte le nom de la fonction.
- Compile.
Dans une fonction, tu n’as pas besoin d’un Cast pour atteindre les variables du Blueprint : tu es déjà dedans, elles sont à portée de main.
Ajouter une entrée
Une entrée, c’est ce que tu donnes à la fonction quand tu l’appelles. Clique sur le nœud violet, puis dans Details › Inputs, clique sur +. L’entrée s’appelle NewParam et elle est de type Boolean. Renomme-la et change son type si besoin, par exemple Integer pour un nombre entier. Un pin du même nom apparaît sur le nœud.
La même fonction peut alors servir à ajouter 1, 5 ou 100, selon la valeur donnée à l’entrée.
Ajouter une sortie
Une sortie, c’est ce que la fonction renvoie à celui qui l’appelle, comme une réponse. Exemple : une fonction TakeDamage retire de la vie au joueur, puis répond la vie qui lui reste.
- Clique sur le nœud violet de la fonction, puis sur Details › Outputs › +.
- Nomme la sortie et choisis son type.
- Un Return Node apparaît au bout du graphe : branche sur son pin la valeur à renvoyer.
Là où tu appelles la fonction, la sortie devient un pin à droite du nœud d’appel. Tu peux le brancher où tu veux, par exemple dans un Print String ou un Branch. Le pin Target dit sur quel acteur la fonction tourne.
Variable locale et fonction Pure
Dans une fonction ouverte, My Blueprint › Local Variables › + crée une variable locale. Elle n’existe que dans cette fonction et s’efface à la fin de chaque appel. Ce qui doit durer, comme un compteur de la partie, va dans Variables.
Une fonction qui calcule seulement, sans rien changer, peut être Pure : coche la case dans ses Details. Ses pins blancs disparaissent. Comme un Get, elle donne sa réponse quand un autre nœud la lit. Exemple : GetHealthPercent.
Attention au piège : un nœud pur se recalcule pour chaque nœud qui le lit. Random Integer in Range est pur : il tire un nombre au hasard, par exemple de 1 à 6 pour un dé. S’il est lu par un Print String et par un Set, il tire deux fois, et les deux valeurs peuvent différer. Garde d’abord le tirage avec Set dans une variable, puis lis cette variable.
Le raccourci : Collapse to Function
Si les nœuds sont déjà dans le bon Blueprint, sélectionne-les, puis fais un clic droit › Collapse to Function. Unreal les range dans une nouvelle fonction et laisse un nœud d’appel à leur place.
Questions fréquentes
Pourquoi utiliser une fonction plutôt que recopier les nœuds ?
Une fonction évite de recopier les mêmes nœuds. Tu la changes une seule fois et tous les appels suivent.
Une variable locale peut-elle servir de compteur ?
Non. Une variable locale repart de zéro à chaque appel, car elle s’efface à la fin de la fonction. Un compteur doit durer toute la partie : mets-le dans Variables.
À quoi sert la case Pure ?
Elle sert aux fonctions qui ne font que calculer. La fonction n’a plus de fil blanc : elle donne sa réponse quand un autre nœud la lit, comme un Get.
Sources officielles
- Functions (documentation Epic)
- Collapsing Graphs (documentation Epic)
- Blueprint Best Practices (documentation Epic)
À lire aussi : les variables Blueprint, boucles et tableaux Blueprint et Cast To et références Blueprint.
Tu veux créer ta première fonction avec une entrée et une sortie ? Fais-le dans un cours en leçons courtes, avec quiz et mini-projets.
Apprendre Unreal Engine 5 gratuitement