22. Afficher le score du joueur dans l'interface (HUD)

Dans cet épisode, nous finalisons l’interface utilisateur de notre jeu en rendant le score dynamique. Jusqu’ici, bien que la logique de collecte des pièces fonctionne en arrière-plan, le joueur ne reçoit aucun retour visuel. Nous allons apprendre à utiliser les “Bindings” dans les Widget Blueprints pour lier la valeur de notre variable Score à un élément textuel de notre interface.

Résumé de la mise en place#

  • Accès au Widget : Ouverture du HUD_Score dans le dossier HUD.
  • Création du Binding : Utilisation du bouton “Bind” dans les détails du composant texte pour générer une fonction de mise à jour automatique.
  • Logique de récupération :
    • Utilisation d’un Cast To ThirdPersonCharacter pour accéder aux données du joueur.
    • Utilisation de Get Player Character pour définir l’objet source du cast.
    • Récupération de la variable Score via un Get.
  • Conversion automatique : Unreal Engine gère nativement la conversion de l’entier (Integer) vers le format texte (Text) lors de la connexion au nœud Return Value.
  • Test et itération : Vérification en jeu de la mise à jour du score lors de la collecte et ajustement du level design pour encourager l’exploration.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes d’Unreal Engine (UE5) aient introduit des systèmes comme les Common UI ou les Data Bindings plus avancés, la méthode présentée ici reste un pilier fondamental pour les débutants :

23. Création de l''écran de Game Over et gestion du score

Dans cet épisode, nous allons finaliser l’expérience utilisateur en créant un écran de “Game Over” fonctionnel. Lorsqu’un joueur perd, il est crucial de lui offrir un retour visuel clair, d’afficher son score final et de lui proposer une option pour retourner au menu principal ou attendre une redirection automatique.

Résumé de la mise en place#

  • Création du Widget : Conception d’un nouveau User Widget (WBP_GameOver) avec un texte de défaite, l’affichage dynamique du score et un bouton de retour.
  • Gestion des ancres : Rappel sur l’importance de bien ancrer vos éléments UI pour garantir une compatibilité avec toutes les résolutions d’écran.
  • Logique de redirection : Utilisation de l’événement Event Construct couplé à un Delay pour automatiser le retour au menu principal après 15 secondes.
  • Affichage dynamique du score : Utilisation du Cast To vers votre Character pour récupérer la variable de score et l’injecter dans le widget via un Set Text.
  • Nettoyage de l’interface : Utilisation de la fonction Remove from Parent pour supprimer l’affichage du score en cours de jeu avant d’afficher l’écran de Game Over, évitant ainsi les superpositions visuelles.

Ce qui reste d’actualité aujourd’hui#

  • La modularité des Widgets : La méthode consistant à créer des widgets séparés pour chaque état du jeu (Menu, HUD, Game Over) reste la norme pour garder un projet propre et maintenable.
  • Le Cast To : Bien que dans des projets complexes on privilégie souvent les Interfaces ou l’Event Dispatching pour éviter les dépendances directes, le Cast To reste l’outil le plus rapide et le plus pédagogique pour débuter sur UE4.
  • Gestion du cycle de vie : L’utilisation de Remove from Parent est toujours la méthode standard pour gérer la destruction des éléments d’interface utilisateur en Blueprint.
  • UX et monétisation : L’idée d’ajouter un délai sur l’écran de fin de partie est une pratique courante dans le jeu mobile pour laisser le temps à une publicité interstitielle de se charger ou d’être visionnée.

© 2026 - Créé avec ❤️ sous Hugo & Relearn.

24. Ajouter des effets sonores lors du ramassage d''objets

Dans cet épisode, nous allons finaliser l’interaction de ramassage de nos pièces en ajoutant un retour audio immédiat. Au lieu d’un simple changement de score visuel, le joueur bénéficiera d’un feedback sonore spatialisé, renforçant ainsi le “game feel” de notre projet. Nous verrons comment utiliser la position de l’acteur lui-même pour déclencher ce son.

Résumé des étapes clés#

  • Accès au Blueprint : Ouvrez le Blueprint ZonePièce pour modifier la logique existante.
  • Insertion du nœud : Entre le Set Score et le Destroy Actor, insérez un nœud Play Sound at Location.
  • Sélection du son : Choisissez votre asset audio (ex: “Pièce”) dans la bibliothèque.
  • Spatialisation : Utilisez le nœud Get Actor Location avec la cible Self pour que le son soit émis précisément à l’emplacement de la pièce dans le monde.
  • Compilation et test : Compilez le Blueprint et testez en jeu pour vérifier que le son se déclenche bien lors de la collision.
  • Optimisation : Ajustez les délais (ex: temps d’attente de victoire) pour affiner le rythme de votre jeu.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions d’Unreal Engine aient évolué, les principes fondamentaux abordés ici restent des piliers du développement :

25. Intégrer une musique d''ambiance dynamique dans Unreal Engine 4

Dans cet épisode, nous allons donner vie à votre niveau en y intégrant une musique d’ambiance. Il ne s’agit pas seulement de lancer un son, mais de gérer sa boucle, son volume et surtout son interaction avec les événements de fin de partie (victoire ou défaite) pour éviter les superpositions sonores désagréables.

Résumé des étapes clés#

  • Configuration du fichier audio : Activation de l’option “Looping” dans les détails du fichier Wave pour une lecture en continu.
  • Utilisation des Sound Cues : Création d’un objet Sound Cue pour gérer plus finement les propriétés audio (effets, réverbération, logique de boucle).
  • Implémentation via le Character Blueprint : Ajout d’un composant audio au personnage et lancement automatique via l’événement Event Begin Play.
  • Gestion des interruptions : Utilisation du “Casting” (Cast to ThirdPersonCharacter) dans les Blueprints de zone de victoire et de défaite pour stopper la musique proprement lors du déclenchement d’un événement.

Ce qui reste d’actualité aujourd’hui#

Bien que cet article se concentre sur Unreal Engine 4, les principes fondamentaux restent identiques dans Unreal Engine 5 :

29. Créer un bouton de bascule Plein Écran / Fenêtré

Dans cet épisode, nous allons apprendre à gérer l’affichage de notre jeu en permettant aux joueurs de basculer dynamiquement entre le mode “Plein écran” et le mode “Fenêtré”. Pour ce faire, nous utiliserons les Blueprints pour manipuler les variables d’état et les commandes de console intégrées à Unreal Engine 4.

Résumé de la mise en place#

  • Gestion d’état : Création d’une variable booléenne PleinEcran (par défaut à true) pour suivre le mode d’affichage actuel.
  • Logique de bascule : Utilisation d’un nœud Branch pour tester la valeur de la variable à chaque clic sur le bouton.
  • Mode Fenêtré : Utilisation de la commande r.SetRes 1280x720w pour forcer une résolution spécifique en mode fenêtré.
  • Mode Plein Écran dynamique :
    • Récupération des résolutions supportées via Get Supported Fullscreen Resolutions.
    • Extraction de la résolution maximale via le dernier index du tableau (Last Index).
    • Utilisation du nœud Append pour construire dynamiquement la commande r.SetRes avec les valeurs X et Y récupérées, suivie du paramètre f pour le plein écran.
  • Mise à jour de l’état : Utilisation du nœud Set pour inverser la valeur de la variable PleinEcran après chaque changement.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes d’Unreal Engine (UE5) proposent des nœuds plus modernes comme Set Game User Settings, la logique présentée ici reste fondamentale pour comprendre :

32. Implémenter une fonction Quitter le jeu dans Unreal Engine 4

Dans cet épisode, nous abordons une fonctionnalité essentielle pour tout projet : la gestion de la sortie du jeu. Que ce soit pour revenir au menu principal, quitter l’application ou fermer une session après une victoire ou une défaite, il est crucial de savoir comment fermer proprement votre build. Nous allons utiliser le Level Blueprint pour déclencher une commande système simple mais efficace.

Résumé de la procédure#

  • Accès au Level Blueprint : Ouvrez votre carte, allez dans le menu Blueprints et sélectionnez Open Level Blueprint.
  • Gestion de l’input : Utilisez l’événement Escape (ou une touche de test comme P) pour déclencher l’action.
  • Commande système : Utilisez le nœud Execute Console Command avec la commande quit.
  • Test et nettoyage : Testez votre commande avec une touche temporaire avant de supprimer le nœud de test pour la version finale.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions d’Unreal Engine aient évolué, les principes fondamentaux restent identiques :

39. Intégrer les classements (Leaderboards) Google Play

Dans cet épisode, nous allons franchir une étape cruciale pour la rétention de vos joueurs : l’intégration des classements (Leaderboards) via les services Google Play. Apprendre à configurer ces outils permet non seulement de créer une compétition saine entre vos joueurs, mais aussi d’ajouter une rejouabilité infinie à vos projets.

Résumé de la mise en place#

  • Configuration Console Google Play : Création du classement, définition du format (chiffres), choix de l’ordre (score le plus élevé) et activation de la protection contre la falsification.
  • Identifiants : Récupération de l’ID du classement généré par Google pour le lier à votre projet Unreal Engine.
  • Paramétrage du projet : Ajout du classement dans les Project Settings > Android > Google Play Services (Leaderboard Map).
  • Gestion de la connexion : Création d’un BP_Game (Actor) pour centraliser l’état de connexion (isLoggedIn) et éviter les reconnexions inutiles.
  • Interface utilisateur : Utilisation du node Show Platform Specific Leaderboard Screen dans votre Widget de menu pour afficher l’interface native de Google Play.

Ce qui reste d’actualité aujourd’hui#

Bien que l’écosystème Android évolue, les fondamentaux présentés ici restent la norme pour les développeurs Unreal Engine :

44. Créer un système de Checkpoint

Dans cet épisode, nous allons apprendre à implémenter un système de checkpoint efficace. L’objectif est simple : éviter que le joueur ne doive recommencer tout le niveau après une chute ou une erreur, en le téléportant à sa dernière position validée.

Résumé de la mise en place#

  • Variable de suivi : Création d’une variable DernierCheckpoint de type Vector dans le FirstPersonCharacter.
  • Initialisation : Utilisation de l’événement BeginPlay pour définir la position de départ du joueur comme premier checkpoint.
  • Zone de défaite : Modification du Blueprint ZoneDeDefaite pour utiliser SetActorLocation vers la valeur de DernierCheckpoint au lieu de recharger le niveau.
  • Création du Checkpoint : Création d’un acteur ZoneCheckpoint avec une BoxCollision.
  • Logique de collision : Utilisation du CastToFirstPersonCharacter pour mettre à jour la variable DernierCheckpoint du joueur lors du passage dans la zone.
  • Optionnel : Ajout d’un nœud DestroyActor après la mise à jour du checkpoint pour empêcher le joueur de revenir sur un ancien point de sauvegarde.

Ce qui reste d’actualité aujourd’hui#

Bien que cet article traite d’Unreal Engine 4, les concepts fondamentaux restent parfaitement transposables à Unreal Engine 5 :

45. Préparation du second niveau et optimisation de l''UI

Dans cet épisode, nous faisons une pause dans la complexité technique pour préparer la structure de notre second niveau. L’objectif est de valider que nos systèmes de gameplay (checkpoints, zones de mort, collecte de pièces) sont modulaires et réutilisables. Nous en profitons également pour refactoriser l’affichage de notre interface utilisateur (UI) afin de la rendre globale et automatique.

Résumé de l’épisode#

  • Modularité des assets : Création d’un second niveau en réutilisant les blueprints existants (pièces, checkpoints, zones de kill).
  • Refactorisation de l’UI : Déplacement de la logique d’affichage du widget (Create Widget / Add to Viewport) du Level Blueprint vers le Character Blueprint.
  • Avantage de l’approche : En plaçant l’UI dans le personnage, celle-ci s’initialise automatiquement à chaque chargement de niveau, évitant de dupliquer du code dans chaque Level Blueprint.
  • Constat technique : Le score actuel est local au niveau. Le passage d’un niveau à l’autre réinitialise les variables, ce qui introduit la nécessité d’un système de persistance de données (GameInstance).

Ce qui reste d’actualité aujourd’hui#

Bien que cet épisode se concentre sur Unreal Engine 4, les principes fondamentaux abordés restent des piliers du développement sous Unreal Engine 5 :

47. Création d''un menu de sauvegarde et gestion de l''interface

Dans cet épisode, nous posons les bases techniques nécessaires à la mise en place d’un système de sauvegarde persistante. Avant de manipuler les données, il est indispensable de créer une interface utilisateur (UI) permettant au joueur d’interagir avec le système de sauvegarde. Nous allons voir comment créer un menu simple et gérer son affichage via le Blueprint de votre personnage.

Résumé de la mise en place#

  • Création du Widget : Conception d’un menu basique contenant deux boutons (sans logique pour le moment).
  • Logique d’affichage (Flip Flop) : Utilisation du node Flip Flop pour alterner entre l’ouverture et la fermeture du menu à chaque pression de la touche ‘P’.
  • Gestion des variables : Stockage du widget dans une variable (W_Menu) pour pouvoir le manipuler (l’ajouter au viewport ou le supprimer) sans avoir à le recréer.
  • Interaction souris : Utilisation du node Set Show Mouse Cursor pour permettre au joueur de cliquer sur les boutons, en ciblant correctement le Player Controller.
  • Nettoyage : Utilisation de Remove from Parent pour libérer l’interface de l’écran.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions d’Unreal Engine aient évolué, les principes fondamentaux abordés ici restent des piliers du développement :