Gaming > Guide > Programmer sans coder grâce aux Blueprints dans Unreal Engine 5

Gaming > Guide > Programmer sans coder grâce aux Blueprints dans Unreal Engine 5

Programmer avec les Blueprints : créer sa première interaction Gaming dans Unreal Engine 5

Illustration : le personnage robot s’approche d’une lampe murale et d’une zone de détection bleue dans la cour
Illustration créée à l’aide de l’IA

Les Blueprints permettent de programmer des comportements dans Unreal Engine 5 en reliant des nœuds visuels. Ils évitent de commencer par écrire du code C++, mais reposent toujours sur une logique de programmation : recevoir un événement, vérifier une condition et déclencher une action. Pour un débutant, leur intérêt est de rendre ces relations visibles dans l’éditeur.

🗓️ Mis à jour le

Ce cinquième épisode reprend la cour et le personnage des guides précédents. Nous allons créer une lampe qui s’allume lorsque le joueur entre dans une zone, puis s’éteint lorsqu’il en sort. Cet exercice introduit les composants, les événements, les références, les conditions et les variables.

L’objectif est une interaction simple, réutilisable et compréhensible. Aucun téléchargement supplémentaire ni nouvelle commande clavier n’est nécessaire. Les intitulés de certains menus peuvent varier selon la version d’Unreal Engine 5, mais les fonctions utilisées sont identifiables dans la documentation d’Epic Games.

Programmer visuellement reste de la programmation

Un Blueprint décrit des propriétés et des comportements. Son graphe permet d’organiser des instructions sous une forme visuelle, avec des connexions entre les éléments.

Une interaction peut se lire comme une phrase : « Quand le joueur entre dans cette zone, si l’allumage est autorisé, rendre la lumière visible. » Cette formulation constitue déjà une logique de programme.

Les Blueprints ne devinent donc pas l’intention du créateur. Il faut préciser ce qui déclenche l’action, quelles informations sont utilisées et sur quel objet intervenir.

La présentation officielle des Blueprints décrit un système complet de programmation visuelle pour le gameplay. Il peut servir à produire des prototypes et des comportements intégrés au jeu.

Pour apprendre, partez d’une action courte que vous pouvez expliquer à voix haute. Si sa logique reste floue, la dessiner dans un graphe ne suffira pas à la clarifier.

Choisir un Blueprint autonome pour la lampe

Dans le Content Browser, créez une Blueprint Class et choisissez Actor comme classe parente. Nommez cette ressource BP_LampeZone, puis ouvrez-la.

Une classe Blueprint définit un objet que l’on peut ensuite placer dans un niveau. Chaque exemplaire placé est une instance de cette classe. Cette distinction permet de réutiliser le même comportement à plusieurs endroits.

Nous allons réunir la lumière et sa zone de détection dans BP_LampeZone. Cela évite de disperser la logique entre le personnage et le niveau pour ce premier exercice.

Le Blueprint ne remplace pas les déplacements déjà construits. Il attend simplement que le personnage traverse sa zone.

Cette organisation aide à comprendre comment un univers Gaming peut être composé d’objets possédant chacun une fonction : une lampe, une porte ou un élément à ramasser.

Ajouter une lumière et une zone de détection

Dans la liste Components, utilisez Add pour ajouter un Point Light et un Box Collision. Nommez-les Lumiere et ZoneDetection.

La lumière produira l’effet visible. La boîte définira l’espace dans lequel l’interaction doit se déclencher. Ce sont deux composants du même acteur, avec des fonctions différentes.

Dans la vue du Blueprint, placez la lumière légèrement au-dessus du sol et donnez à la boîte des dimensions permettant au personnage de la traverser. Gardez une zone assez large pour observer facilement l’entrée et la sortie.

Sélectionnez Lumiere et choisissez une mobilité Movable pour cet exercice dynamique. Décochez sa propriété Visible afin qu’elle commence éteinte.

Réglez son intensité et son rayon d’atténuation selon la scène. Évitez une valeur universelle : le résultat dépend notamment de l’éclairage existant, de l’exposition et des unités utilisées par la lumière.

Configurer la boîte pour détecter sans bloquer

Sélectionnez ZoneDetection. Dans les réglages de collision, choisissez une configuration personnalisée avec Collision Enabled sur Query Only. Réglez les réponses pour ignorer les autres canaux et chevaucher Pawn avec Overlap.

Activez Generate Overlap Events. Vérifiez également cette option sur la capsule du personnage : les deux composants doivent permettre la génération des événements de chevauchement.

La boîte doit détecter le passage du joueur, sans devenir un mur invisible. La détection et le blocage correspondent à des comportements différents.

Compilez et enregistrez, puis placez une instance de BP_LampeZone dans la cour. Gardez le Player Start en dehors de la zone pour commencer le test avec une entrée clairement identifiable.

Positionnez la lampe près d’un mur ou d’une surface sur laquelle son éclairage sera facile à observer. Une lumière supplémentaire peut être difficile à distinguer au milieu d’une cour déjà très lumineuse.

Lire les nœuds et leurs connexions

Illustration : un graphe Blueprint relie un événement, une condition et l’action d’allumer la lampe, à côté du personnage
Illustration créée à l’aide de l’IA

Ouvrez l’Event Graph de BP_LampeZone. Les nœuds représentent notamment des événements, des opérations et des appels de fonctions. Leurs broches permettent de relier les éléments compatibles.

Les fils d’exécution indiquent l’ordre dans lequel certaines instructions sont appelées. Les connexions de données transmettent, elles, des valeurs ou des références. Un fil transportant une information ne remplace pas une connexion d’exécution.

Par exemple, Set Visibility demande une cible et une valeur de visibilité. Il faut également lui transmettre l’exécution au moment voulu.

La documentation des nœuds Blueprint explique ces distinctions et les outils de connexion.

Prenez l’habitude de lire le graphe depuis l’événement, puis de suivre les actions et les données nécessaires. Un nœud posé à proximité d’un autre n’est pas connecté simplement parce que leur disposition paraît logique.

Déclencher un événement lorsque le joueur entre

Sélectionnez ZoneDetection dans Components. Dans la section Events de Details, ajoutez On Component Begin Overlap. Le nœud correspondant apparaît dans le graphe.

Cet événement signale le début d’un chevauchement. Il fournit notamment Other Actor et Other Comp, qui permettent d’identifier l’acteur et le composant concernés.

Pour un premier contrôle, reliez sa sortie d’exécution à Print String. Saisissez un message court, comme « Entrée détectée ».

Compilez, enregistrez et lancez Play. Traversez la boîte avec le personnage. Le message permet de vérifier la détection avant de travailler l’allumage.

Epic précise les conditions de génération dans la référence On Component Begin Overlap. Si rien ne se produit, contrôlez d’abord les collisions et la position de la boîte. Ajouter d’autres nœuds ne corrigera pas un événement qui ne se déclenche jamais.

Vérifier que la détection concerne le personnage

La zone peut rencontrer plusieurs objets ou plusieurs composants. Nous voulons que l’interaction réagisse uniquement à la capsule du personnage contrôlé dans cet exercice solo.

Ajoutez Get Player Character avec Player Index à 0. Comparez sa sortie à Other Actor avec un nœud d’égalité d’objets. Reliez le résultat à la condition d’un Branch, dont l’entrée d’exécution vient de Begin Overlap.

Depuis la référence du personnage, récupérez Get Capsule Component. Comparez cette capsule à Other Comp. Sur la sortie True du premier Branch, placez un second Branch utilisant cette comparaison.

La seconde sortie True constitue maintenant le chemin réservé à la capsule du joueur. Les sorties False peuvent rester sans action.

Ce double contrôle évite notamment qu’un chevauchement d’un autre composant provoque une réaction supplémentaire. Get Player Character peut ne fournir aucune référence si le Pawn contrôlé n’est pas un Character ; notre projet utilise précisément cette classe.

Allumer la lumière avec une cible explicite

Faites glisser Lumiere depuis Components vers le graphe pour obtenir sa référence. Depuis cette référence, recherchez Set Visibility.

Reliez Lumiere à Target, puis la sortie True du dernier Branch à l’entrée d’exécution de Set Visibility. Cochez New Visibility pour demander l’allumage.

Vous pouvez supprimer le Print String provisoire ou le replacer sur ce chemin filtré pour confirmer que les vérifications réussissent.

Compilez, enregistrez et testez. Lorsque la capsule du personnage entre dans la boîte, la lumière doit devenir visible.

La référence Set Visibility indique que cette fonction agit sur un composant. La cible est donc Lumiere, pas l’acteur complet ni ZoneDetection.

Cette précision est essentielle : une action correcte appliquée au mauvais objet ne produit pas le comportement attendu.

Éteindre la lumière lorsque le joueur sort

Sélectionnez de nouveau ZoneDetection et ajoutez On Component End Overlap. Cet événement correspond à la fin du chevauchement.

Reproduisez les vérifications sur Other Actor et Other Comp pour conserver le même filtrage. Reliez ensuite le chemin validé à un second Set Visibility ciblant Lumiere.

Cette fois, laissez New Visibility décoché. Le premier événement demande donc une visibilité vraie à l’entrée, et le second une visibilité fausse à la sortie.

Cette organisation rend les états demandés faciles à lire. Nous définissons explicitement « allumée » ou « éteinte », au lieu d’inverser l’état à chaque événement.

Effectuez plusieurs passages complets. La lumière doit retrouver le même comportement à chaque essai.

L’exercice reste limité à un personnage local et à sa capsule. Un système destiné à plusieurs occupants simultanés demanderait une gestion supplémentaire de leur présence dans la zone.

Introduire une variable pour autoriser l’allumage

Illustration : à gauche la lampe allumée avec une coche verte, à droite la lampe éteinte avec une croix rouge et une zone en pointillés
Illustration créée à l’aide de l’IA

Une variable conserve une valeur ou une référence. Son type précise les informations qu’elle peut contenir. Un Boolean représente deux possibilités : True ou False.

Dans My Blueprint, créez une variable Boolean nommée AutoriserAllumage. Compilez pour accéder à sa valeur par défaut, puis choisissez True. Activez Instance Editable afin de pouvoir la régler sur les exemplaires placés.

Dans le graphe d’entrée, ajoutez un Branch après les deux vérifications du joueur. Utilisez Get AutoriserAllumage comme condition. Reliez sa sortie True au Set Visibility qui allume la lampe.

Le chemin de sortie conserve son extinction sans cette condition. Cela évite qu’une autorisation désactivée empêche ensuite d’éteindre la lumière.

La documentation des variables Blueprint distingue notamment Get, qui lit une valeur, de Set, qui la modifie. Ici, nous lisons une autorisation réglée avant le lancement.

Comprendre ce que décide un Branch

Le nœud Branch choisit un chemin à partir d’une condition booléenne. Si la condition vaut True, l’exécution suit cette sortie ; sinon, elle suit False.

Dans notre lampe, trois décisions sont successives : est-ce le personnage attendu, est-ce sa capsule et l’allumage est-il autorisé ?

Cette lecture permet de traduire les connexions en une règle compréhensible. Chaque Branch doit répondre à une question précise, plutôt que compliquer le graphe sans nécessité.

Pour tester l’autorisation, sélectionnez l’instance dans le niveau, décochez AutoriserAllumage et lancez une nouvelle session. La détection peut fonctionner sans que la lumière s’allume : c’est alors le résultat demandé.

Le contrôle de flux est présenté dans le guide officiel Flow Control. Une condition fausse n’est pas automatiquement une erreur ; elle peut exprimer la règle prévue.

Réutiliser le Blueprint dans la cour

Dupliquez l’instance de BP_LampeZone dans le niveau et placez-la ailleurs. Les deux lampes utilisent la même classe, mais correspondent à deux objets distincts.

Réglez AutoriserAllumage différemment sur leurs instances : l’une autorisée, l’autre désactivée. Gardez leurs zones séparées pour simplifier le test.

Cette manipulation montre l’intérêt d’une variable éditable. Vous pouvez modifier un réglage par instance sans reconstruire la logique pour chaque lampe.

Les composants de chaque exemplaire possèdent également leurs propres références au sein de leur acteur. L’action sur Lumiere doit donc viser la lampe de l’instance qui reçoit l’événement.

Ce principe de réutilisation intervient dans de nombreux objets Gaming. Pour apprendre, limitez-vous à deux exemplaires : ils suffisent à vérifier la différence entre une classe commune et ses instances.

Déboguer en suivant la chaîne d’exécution

Lorsqu’une interaction échoue, cherchez la première étape qui ne produit pas le résultat attendu. L’événement est-il reçu ? Les comparaisons réussissent-elles ? L’autorisation est-elle vraie ? La fonction vise-t-elle Lumiere ?

Placez temporairement des Print String à ces étapes avec des messages distincts. Vous pourrez repérer l’endroit où le parcours s’arrête.

Si un message apparaît plusieurs fois, examinez les composants concernés avant de modifier la logique. Le filtrage sur la capsule aide précisément à isoler le chevauchement utilisé.

Les outils de débogage Blueprint permettent également d’observer l’exécution avec des points d’arrêt. Leur intérêt est de contrôler ce qui se passe réellement.

Cette approche rejoint l’analyse des interactions Gaming : un comportement visible est le résultat d’une succession de conditions et d’actions. Comprendre cette succession est plus utile que remplacer tout le graphe sans diagnostic.

Garder un graphe lisible et adapté au besoin

Disposez les événements et leurs actions dans un ordre régulier. Séparez le chemin d’entrée de celui de sortie et ajoutez des commentaires courts, comme « Filtrer le joueur » ou « Éteindre à la sortie ».

Choisissez des noms décrivant leur fonction. AutoriserAllumage explique mieux son rôle qu’une variable appelée Test ou Bool1.

Pour cet exercice, les événements suffisent. Il n’est pas nécessaire de vérifier la présence du personnage à chaque image avec Event Tick.

Epic recommande une utilisation adaptée des Blueprints et une mesure des performances avant d’envisager une conversion en C++. Le choix dépend du travail effectué et de son coût réel.

Avant de poursuivre, enregistrez le Blueprint et le niveau. Rouvrez le projet, puis vérifiez l’entrée, la sortie et l’autorisation des deux lampes. Vous disposez désormais d’une première interaction dont vous pouvez expliquer chaque étape.

Les images utilisées pour illustrer cet article ont été créées à l’aide de l’intelligence artificielle.

Dans le même dossier

Retrouvez l’ensemble de la rubrique dans notre guide du jeu vidéo en Belgique et en Grande Région.

QUESTIONS FRÉQUENTES

  • Les Blueprints permettent-ils réellement de programmer sans écrire de C++ ?
    Oui. Ils organisent les comportements visuellement, mais demandent toujours de comprendre les événements, les données et les conditions.
  • Pourquoi créer une Blueprint Class pour la lampe ?
    Elle réunit les composants et le comportement dans un objet réutilisable, que l’on peut placer plusieurs fois dans un niveau.
  • Quelle différence existe entre les fils d’exécution et les données ?
    Les premiers organisent les appels d’instructions. Les seconds transmettent les valeurs et les références utilisées par ces instructions.
  • Comment détecter l’entrée du personnage dans une zone ?
    Utilisez Begin Overlap sur la boîte, puis vérifiez l’acteur et le composant reçus pour retenir la capsule du joueur.
  • Pourquoi les événements de chevauchement ne se déclenchent-ils pas ?
    Vérifiez les réponses de collision, la position de la boîte et Generate Overlap Events sur les deux composants concernés.
  • À quoi sert AutoriserAllumage ?
    Ce booléen permet d’autoriser ou d’empêcher l’allumage sur chaque instance, sans refaire son graphe.
  • Comment éteindre la lampe à la sortie ?
    Après le filtrage de End Overlap, appelez Set Visibility sur Lumiere avec New Visibility désactivé.
  • Faut-il utiliser Event Tick pour cette interaction ?
    Non. Les événements d’entrée et de sortie suffisent au fonctionnement décrit dans ce guide.

Vous avez apprécié cet article ? Partagez-le !
N’hésitez pas à livrer votre avis ou vos impressions en commentaire !
Sur nos articles, l’information est accessible à 100% gratuitement
Suivez-nous sur nos réseaux sociaux : Facebook et Instagram
Rejoignez également le serveur Discord d’Info Gaming : Discord

D’AUTRES INFOS GAMING

Vous lisez info-lux régulièrement ?

Ajoutez info-lux.com à vos sources préférées : Google vous montrera plus souvent nos articles dans Actualités, Discover et ses réponses IA.

Ou par ce lien : ajouter info-lux.com comme source préférée.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Les infos de votre Région Gratuite Souhaitez-vous recevoir des notifications sur les dernières mises à jour ? Non oui