8. Création de décors et géométrie BSP

Dans cet épisode, nous abordons une étape fondamentale du level design : la création de formes géométriques directement au sein d’Unreal Engine 4. Bien que la majorité des assets complexes soient importés depuis des logiciels de modélisation 3D (Blender, Maya, 3ds Max), la maîtrise des outils intégrés est indispensable pour le prototypage rapide, les décors lointains ou l’architecture simple.

Résumé de l’épisode#

  • Utilisation des outils “Geometry” (BSP) : Présentation des formes de base (boîtes, cylindres, cônes, escaliers) disponibles dans l’onglet Modes.
  • Modification des paramètres : Ajustement de la résolution (nombre de côtés) et des dimensions directement dans le panneau Details.
  • Opérations booléennes : Création d’un tuyau en utilisant une forme “Additive” (le cylindre plein) et une forme “Subtractive” (le cylindre creux) pour évider l’objet.
  • Conversion en Static Mesh : Transformation des brosses BSP en un objet 3D unique et réutilisable via le panneau Brush Settings.
  • Gestion des collisions : Configuration de la propriété Collision Complexity sur “Use Complex Collision as Simple” pour permettre au joueur d’interagir physiquement avec l’objet créé.

Ce qui reste d’actualité aujourd’hui#

Bien qu’Unreal Engine 5 ait introduit des outils de modélisation beaucoup plus avancés (le mode Modeling), les concepts abordés ici restent cruciaux pour plusieurs raisons :

9. Création et application de matériaux

Dans cet épisode, nous quittons l’aspect “gris par défaut” de nos objets pour leur donner vie. La création de matériaux est une étape fondamentale pour transformer des formes géométriques simples en éléments crédibles pour votre jeu. Nous allons apprendre à manipuler l’éditeur de matériaux d’Unreal Engine 4 pour définir la couleur, la rugosité et les propriétés métalliques de vos surfaces.

Résumé de la leçon#

  • Organisation : Création d’un dossier dédié aux matériaux pour garder votre projet propre.
  • Nommage : Utilisation de préfixes (ex: Mat_) pour identifier rapidement vos assets.
  • L’éditeur de matériaux : Découverte de l’interface nodale, similaire aux Blueprints.
  • Constant 3 Vector : Utilisation de ce nœud pour définir une couleur de base via le sélecteur RVB.
  • Propriétés physiques :
    • Roughness (Rugosité) : Contrôle le reflet de la lumière (0 = miroir, 1 = mat).
    • Metallic (Métallique) : Définit si l’objet réagit comme un métal (0 = non-métal, 1 = métal).
  • Application : Comment assigner un matériau créé à un objet spécifique dans le panneau “Details”.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes d’Unreal Engine (UE5) aient introduit des systèmes comme Lumen ou Nanite, les bases fondamentales présentées ici restent inchangées :

9. Créer des escadrilles et limiter le spawn

Dans ce tutoriel, nous allons apprendre à structurer l’apparition de vos ennemis pour rendre votre jeu plus dynamique en créant des escadrilles et en limitant le nombre de vagues.

Résumé des notions clés#

  • Création d’escadrilles : Au lieu de faire apparaître un seul objet, nous dupliquons la fonction instance_create dans l’alarme du spawner pour générer trois vaisseaux simultanément.
  • Gestion des coordonnées (X, Y) : En modifiant les offsets (décalages) des coordonnées X et Y, nous créons une formation en “V” pour un rendu visuel plus professionnel.
  • Variables de comptage : Utilisation d’une variable (nbne1) initialisée à 0 dans l’événement Create pour suivre le nombre de vagues générées.
  • Incrémentation : Utilisation de l’opérateur ++ (ex: nbne1++) pour ajouter 1 à la variable à chaque déclenchement de l’alarme.
  • Logique de fin de vague : Utilisation de l’événement Step pour vérifier en temps réel si le nombre de vagues souhaité est atteint, déclenchant ainsi la destruction du spawner via instance_destroy().

Ce qui reste d’actualité aujourd’hui#

Bien que les versions de Game Maker aient évolué, les concepts abordés ici restent les piliers du développement de jeux 2D :

11. Préparation et importation des assets dans Unreal Engine 4

Dans cet épisode, nous franchissons une étape cruciale de votre pipeline de production : l’organisation et l’intégration de vos assets dans Unreal Engine 4. Après avoir modélisé et texturé vos objets dans Blender, il est temps de structurer votre projet pour garantir une gestion propre et efficace de vos fichiers.

Résumé de l’épisode#

  • Utilisation d’un Starter Pack : Mise à disposition de ressources (personnages, sons, textures) pour faciliter la création de votre prototype.
  • Organisation des dossiers : Importance de centraliser tous vos assets dans le répertoire de votre projet Unreal pour éviter les liens brisés ou la perte de fichiers.
  • Structure de projet : Création d’une hiérarchie de dossiers propre (ex: Ressources/Tron) pour séparer les éléments importés de Blender des autres composants du jeu.
  • Préparation à l’import : Copie des fichiers .fbx et des textures .png dans le dossier de travail avant l’importation directe dans l’éditeur.

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 de jeux vidéo :

11. Créer un ennemi avec tir laser

Dans ce tutoriel, nous allons enrichir votre jeu en ajoutant un troisième type d’ennemi capable de tirer des projectiles laser, tout en automatisant son apparition via un système de “spawner” dynamique.

Résumé des notions clés#

  • Duplication et héritage : Utiliser la fonction “Duplicate” sur des sprites et objets existants pour gagner du temps et conserver une structure cohérente.
  • Manipulation de sprites : Utilisation des outils Mirror Flip pour l’orientation et Colorize (swap color) pour créer des variantes visuelles rapidement.
  • Logique de tir : Création d’un objet laser dédié avec une vitesse négative (hspeed = -2) pour se déplacer vers la gauche, en direction du joueur.
  • Gestion des alarmes : Ajustement de la cadence de tir en modifiant le multiplicateur de la room_speed dans l’événement Alarm.
  • Spawning dynamique : Utilisation de la fonction random() pour varier la position verticale (y) des ennemis et rendre les vagues moins prévisibles.
  • Chaînage de vagues : Déclenchement de l’apparition d’un nouveau spawner juste avant la destruction du précédent pour créer une progression fluide.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions de GameMaker aient évolué, les principes fondamentaux abordés ici restent le cœur du développement 2D :

12. Gérer les collisions et la destruction des ennemis

Apprenez à implémenter un système de collision efficace pour détruire vos ennemis lors de l’impact de vos projectiles dans GameMaker Studio.

Résumé des notions clés#

  • Événement de collision : Utilisation de l’événement Collision dans l’objet laser pour détecter le contact avec les différents types d’ennemis.
  • Ciblage précis : Utilisation de la fonction with (instance_place(x, y, objet)) pour identifier et cibler spécifiquement l’instance de l’ennemi touchée.
  • Destruction d’objets : Emploi de la fonction instance_destroy() pour supprimer à la fois l’ennemi touché et le projectile (le laser) après l’impact.
  • Méthodologie : Répétition du processus pour chaque type d’ennemi afin de garantir une cohérence dans le gameplay.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes de GameMaker aient évolué, les principes fondamentaux abordés ici restent le socle du développement 2D :

13. Création du Blueprint ''Tronc'' et gestion des collisions

Dans cet épisode, nous passons à la phase concrète du développement : la création des mécaniques de jeu. Après avoir importé nos assets, il est temps de donner vie à notre premier obstacle : le tronc. Nous allons apprendre à structurer un Blueprint, configurer un modèle 3D et définir des zones de collision précises pour gérer le “Game Over” et le score.

Résumé des étapes clés#

  • Organisation du projet : Création d’un dossier dédié Blueprints pour séparer vos créations des assets du template.
  • Création de l’Actor : Utilisation d’une classe Actor simple, idéale pour les objets qui n’ont pas besoin d’être contrôlés par le joueur.
  • Intégration du Mesh : Ajout d’un composant Static Mesh et ajustement de son échelle (Scale) pour correspondre aux proportions du jeu.
  • Gestion des collisions (Game Over) : Ajout d’une Capsule Collision (renommée Box_GameOver) ajustée précisément au mesh pour éviter la frustration du joueur.
  • Gestion des points : Ajout d’une Box Collision indépendante (Box_Point) placée au-dessus du tronc pour détecter le passage réussi du joueur.
  • Optimisation du workflow : Configuration de l’option “Save on Compile” pour automatiser la sauvegarde et gagner en productivité.

Ce qui reste d’actualité aujourd’hui#

Bien que cet article se base sur Unreal Engine 4, les principes fondamentaux abordés ici restent parfaitement valables pour Unreal Engine 5 :

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) :