14. Création de chemins de plateformes

Dans cet épisode, nous abordons une étape cruciale du level design : la création d’un chemin de plateformes cohérent pour guider le joueur à travers votre environnement. En utilisant les assets du pack Infinity Blade: Ice Lands, nous allons transformer des piliers statiques en un parcours de plateforme dynamique et jouable.

Résumé de l’épisode#

  • Sélection des assets : Utilisation des modèles SM_Ice_Fort_Pilar issus du pack Infinity Blade pour créer des points d’appui.
  • Manipulation et Scale : Ajustement des échelles (Scale) des objets pour les rendre plus accessibles et adaptés à la taille du personnage.
  • Organisation du projet : Utilisation du World Outliner pour créer des dossiers et maintenir une hiérarchie propre dans votre scène.
  • Duplication efficace : Utilisation du raccourci Ctrl + W pour dupliquer rapidement les éléments et construire le chemin.
  • Itération et Test : Importance de tester régulièrement les sauts en jeu pour ajuster la distance entre les plateformes et éviter les raccourcis non désirés par le joueur.

Ce qui reste d’actualité aujourd’hui#

Bien que cet épisode se concentre sur Unreal Engine 4, les principes fondamentaux du level design restent identiques dans les versions plus récentes (UE5) :

14. Programmation du tronc : Rotation, Mouvement et Collisions

Dans cet épisode, nous passons à la phase de programmation de notre “BP_Tronc”. L’objectif est de donner vie à cet obstacle en le faisant tourner sur lui-même tout en le faisant avancer vers le joueur. Nous aborderons également l’optimisation des références et la configuration précise des collisions pour garantir une expérience de jeu fluide.

Résumé des étapes clés#

  • Initialisation propre : Utilisation du Event Begin Play pour caster le joueur et stocker sa référence dans une variable dédiée. Cela évite de répéter l’opération à chaque frame.
  • Organisation : Utilisation des “Comment Boxes” (touche C) pour documenter le code et faciliter la relecture future.
  • Rotation dynamique : Utilisation de AddWorldRotation couplé à un MakeRotator et au Delta Seconds pour assurer une rotation fluide, indépendante du framerate.
  • Mouvement : Création d’une variable de type Vector nommée “Vitesse” pour piloter le déplacement de l’acteur via AddWorldOffset.
  • Configuration des collisions : Réglage des Collision Presets sur “Pawn” et activation de Generate Overlap Events pour que les boîtes de détection interagissent uniquement avec le joueur.

Ce qui reste d’actualité aujourd’hui#

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

15. Création d''un Spawner pour vos obstacles

Dans cet épisode, nous allons automatiser l’apparition de nos obstacles. Plutôt que de placer manuellement chaque tronc dans le niveau, nous allons créer un “Spawner” (générateur) dédié. Ce système nous permettra de contrôler précisément le rythme et la position des objets, garantissant ainsi une expérience de jeu équitable pour tous les joueurs, essentielle pour un système de classement (leaderboard).

Résumé de la mise en place#

  • Création du Blueprint Spawner : Création d’un nouvel acteur nommé BP_Spawner. Cet objet sera invisible en jeu, mais servira de point d’ancrage logique.
  • Initialisation : Utilisation de l’événement BeginPlay pour récupérer la référence du joueur (via GetPlayerPawn), identique à la configuration du tronc.
  • Automatisation avec l’Event Tick : Utilisation du node Event Tick couplé à un Delay (réglé sur 1 seconde) pour cadencer l’apparition des objets.
  • Spawn Actor : Utilisation du node SpawnActorFromClass pour instancier le BP_Tron.
  • Gestion des Transforms : Utilisation du node MakeTransform pour définir la position, la rotation et l’échelle d’apparition.
  • Variante aléatoire : Possibilité d’utiliser Random Float in Range pour varier la position Y des troncs, bien que nous privilégierons une approche par tableau de vecteurs pour un contrôle total.

Ce qui reste d’actualité aujourd’hui#

Bien que cet épisode utilise Unreal Engine 4, les concepts fondamentaux restent identiques dans les versions plus récentes (UE5) :

15. Sécuriser les limites de votre niveau avec les Blocking Volumes

Dans cet épisode, nous abordons une étape cruciale du level design : la gestion des limites de votre carte. Il arrive souvent que les joueurs, par curiosité ou par erreur, tentent de sortir des zones de jeu prévues, ce qui peut entraîner des bugs de collision ou des chutes dans le vide. Pour éviter cela, Unreal Engine 4 propose un outil simple et efficace : le Blocking Volume.

Résumé de la manipulation#

  • Accès aux outils : Rendez-vous dans le panneau Modes, onglet Place, puis cherchez Blocking Volume.
  • Mise en place : Glissez le volume sur votre scène et utilisez les outils de transformation (Scale) pour couvrir les zones sensibles.
  • Optimisation : Utilisez les vues orthogonales (Top, Left, Front) pour ajuster précisément la taille et la position des volumes.
  • Duplication : Utilisez le raccourci Ctrl + W pour dupliquer vos volumes et couvrir tout le périmètre de votre niveau rapidement.
  • Rotation : N’hésitez pas à faire pivoter vos volumes de 90° pour épouser les angles de votre terrain.
  • Test : Lancez le jeu pour vérifier qu’aucune zone ne permet de passer outre ces murs invisibles.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes d’Unreal Engine (UE5) aient introduit de nouveaux outils comme les Mass Entity ou des systèmes de collision plus avancés, le Blocking Volume reste une méthode standard et incontournable pour plusieurs raisons :

16. Créer des zones de victoire et de défaite avec les Blueprints

Dans ce chapitre, nous abordons une étape cruciale pour la structure de votre jeu : la gestion des objectifs et des conditions d’échec. Apprendre à créer des zones invisibles qui déclenchent des événements spécifiques est une compétence fondamentale pour tout développeur Unreal Engine.

Résumé du tutoriel#

  • Organisation : Création d’un dossier dédié Zones dans le Content Browser pour maintenir un projet propre.
  • Création d’Acteurs : Utilisation de la classe Actor pour créer des objets interactifs (BP_Zone_Victoire).
  • Composants de collision : Ajout d’un Box Collision pour définir la zone d’interaction invisible dans le jeu.
  • Programmation visuelle : Utilisation de l’Event Graph avec le nœud ActorBeginOverlap pour détecter le passage du joueur.
  • Commandes console : Utilisation du nœud Execute Console Command avec la commande quit pour tester la fin du niveau.
  • Manipulation dans l’éditeur : Utilisation des outils de transformation (déplacement, mise à l’échelle) pour adapter la zone à votre level design.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions d’Unreal Engine aient évolué, les principes fondamentaux présentés ici restent le standard de l’industrie :

16. Créer une boucle infinie de spawn d''objets

Dans ce seizième épisode, nous allons aborder une problématique essentielle pour tout jeu de type “Runner” ou jeu d’arcade : comment faire en sorte que notre système de spawn ne s’arrête jamais ? Nous allons transformer notre séquence limitée en une boucle infinie grâce à la logique conditionnelle dans les Blueprints.

Résumé de la mise en place#

Pour automatiser le cycle de spawn de nos troncs, nous avons suivi ces étapes clés :

17. Créer une zone de défaite (Kill Zone) dans Unreal Engine 4

Dans cet épisode, nous allons apprendre à créer une “Kill Zone” (zone de défaite). L’objectif est simple : si le joueur tombe dans le vide ou touche une zone interdite, le niveau doit se réinitialiser instantanément pour lui permettre de recommencer son parcours.

Résumé de la mise en place#

  • Création du Blueprint : Création d’un nouvel Actor nommé Zone_Defaite (sans accents pour éviter les problèmes de compatibilité).
  • Collision : Ajout d’un composant Box Collision pour définir la zone de déclenchement.
  • Logique de redémarrage :
    • Utilisation de l’événement Event Actor Begin Overlap pour détecter l’entrée du joueur.
    • Utilisation du node Open Level (pour les versions récentes) ou Restart Game (pour les versions 4.12 et antérieures).
  • Sécurisation : Utilisation d’un Cast to ThirdPersonCharacter pour s’assurer que seul le joueur déclenche le redémarrage, et non un ennemi ou un autre objet.
  • Intégration : Placement et mise à l’échelle des zones dans le niveau pour couvrir les zones de chute.

Ce qui reste d’actualité aujourd’hui#

  • Nommage des assets : La règle d’or d’éviter les accents et caractères spéciaux dans vos noms de fichiers reste une pratique essentielle pour éviter des bugs obscurs lors de la compilation ou du packaging.
  • Le “Cast” est indispensable : Vérifier l’identité de l’acteur qui déclenche une collision est une base fondamentale du Game Design pour éviter des comportements imprévus (ex: un ennemi qui fait redémarrer le niveau).
  • Organisation du World Outliner : Regrouper vos éléments (zones de victoire, zones de défaite) dans des dossiers (Create New Folder) est toujours la meilleure méthode pour garder un projet propre et maintenable.
  • Context Sensitive : Comprendre comment fonctionne le menu contextuel des Blueprints reste crucial pour découvrir les fonctions disponibles selon le contexte de votre objet.

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

18. Gestion du score et logique de collision

Dans cet épisode, nous allons structurer la logique de score de notre jeu. Jusqu’ici, nous savions détecter une collision pour le “Game Over”, mais il est temps d’ajouter une mécanique de points gratifiante sans pour autant permettre au joueur de “tricher” en accumulant des points à l’infini lors d’un seul passage.

Résumé de la mise en place#

  • Extension de la logique de collision : Utilisation de branches (Branch) successives pour tester quel composant est touché (Box Game Over vs Box Points).
  • Gestion des variables : Création d’une variable Points (Integer), rendue éditable pour un accès facilité.
  • Le problème du “Multi-trigger” : Constat que le chevauchement (overlap) déclenche l’incrémentation plusieurs fois par seconde.
  • Utilisation du node DoOnce : Mise en place d’une exécution unique pour éviter le spam de points.
  • Réinitialisation via Event Tick : Utilisation du Character Movement Component et de la fonction IsFalling pour détecter quand le joueur touche le sol, permettant ainsi de réinitialiser le DoOnce via un Custom Event.

Ce qui reste d’actualité aujourd’hui#

Bien que cet épisode traite d’Unreal Engine 4, les concepts fondamentaux restent parfaitement valables dans Unreal Engine 5 :

19. Créer et afficher un HUD avec les Widget Blueprints

Dans cet épisode, nous abordons une étape cruciale pour l’expérience utilisateur : l’affichage d’informations en temps réel. Que ce soit pour un score, une barre de vie ou un compteur de munitions, le système de HUD (Heads-Up Display) est indispensable. Nous allons voir comment créer une interface utilisateur simple à l’aide des Widget Blueprints dans Unreal Engine 4 et comment l’injecter dans votre viewport dès le lancement de la partie.

20. Création et animation d''objets à ramasser

Dans cet épisode, nous passons à une étape cruciale du développement de votre jeu : la création d’objets interactifs. Nous allons apprendre à concevoir une pièce (ou “collectible”) en utilisant les Blueprints, à lui donner un aspect visuel attrayant via l’éditeur de matériaux, et à la rendre dynamique en la faisant tourner sur elle-même. Enfin, nous aborderons la gestion des collisions pour que le joueur puisse traverser l’objet sans être bloqué.