12. Création et sculpture de terrain avec Landscape

Dans cet épisode, nous passons à une étape cruciale pour donner vie à votre environnement : le remplacement du sol basique par un véritable terrain sculpté. L’outil Landscape d’Unreal Engine 4 est un système puissant qui permet de créer des reliefs complexes, des montagnes et des vallons, tout en gérant nativement les textures de sol.

Résumé de la leçon#

  • Nettoyage de la scène : Suppression de l’objet “Floor” par défaut pour laisser place au système Landscape.
  • Configuration du Landscape : Utilisation de l’éditeur dédié avec un réglage de Section Size (7x7 quads) pour une gestion optimisée des performances.
  • Application des matériaux : Assignation d’un matériau de type “Ground Gravel” pour habiller le terrain.
  • Maîtrise des outils de sculpture :
    • Sculpt : Pour créer le relief (montagnes, collines).
    • Smooth : Pour adoucir les polygones trop saillants.
    • Flatten : Idéal pour créer des plateaux ou des chemins plats.
    • Erosion : Pour simuler l’usure naturelle du sol.
    • Noise : Pour ajouter un aspect chaotique et organique.
  • Réglages de brosse : Compréhension du Brush Size (taille) et du Brush Falloff (atténuation) pour sculpter avec précision.
  • Gestion du LOD (Level of Detail) : Observation du changement de résolution du terrain en fonction de la distance de la caméra.

Ce qui reste d’actualité aujourd’hui#

Bien que cet épisode se concentre sur Unreal Engine 4, les fondamentaux du Landscape Editor sont restés quasi identiques dans Unreal Engine 5. La logique de sculpture, l’utilisation des brosses et la gestion des matériaux de terrain (Landscape Layers) sont des compétences transversales.

12. Importer et configurer vos assets 3D dans Unreal Engine 4

Dans cet épisode, nous abordons une étape cruciale de votre pipeline de production : l’importation de vos modèles 3D (FBX) et la configuration de leurs matériaux dans Unreal Engine 4. Contrairement à d’autres moteurs, Unreal demande une gestion rigoureuse de vos fichiers pour optimiser les performances et la clarté de votre projet.

Résumé de l’épisode#

  • Organisation du projet : Création d’une structure de dossiers propre (ex: Décor, Tron) à la racine Content pour éviter de polluer les dossiers du template.
  • Importation FBX : Procédure d’importation des modèles, gestion des collisions (désactivées ici pour utiliser des primitives plus légères) et importation automatique des matériaux.
  • Optimisation des textures : Utilisation de l’option “Compress Without Alpha” pour réduire le poids des textures et la consommation mémoire.
  • Éditeur de matériaux : Création et renommage des instances de matériaux (Mat_Tron, Mat_Arbre), remplacement des couleurs par défaut par des Texture Sample et connexion au Base Color.
  • Gestion des slots : Correction des assignations de matériaux sur les modèles possédant plusieurs éléments (feuilles vs tronc).

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes d’Unreal Engine (UE5) aient introduit des outils comme Nanite ou Lumen, les fondamentaux présentés ici restent indispensables :

9. Système de codes de niveau

Note : Cet article est une archive pédagogique du neuvième épisode de ma série sur la création d’un jeu de plateforme avec Construct 2.

Points clés abordés#

  • Saisie utilisateur : Insertion d’un objet TextBox sur le calque HUD du menu pour permettre au joueur de taper un code.
  • Gestion des données avec le Dictionary : Utilisation de l’objet Dictionary pour associer une clé (le code saisi) à une valeur (le nom du Layout/niveau correspondant).
  • Navigation dynamique : Mise en place d’une logique conditionnelle pour le bouton “Jouer” :
    • Si le champ est vide : Chargement du niveau par défaut.
    • Si un code est saisi : Chargement du niveau associé via l’action Go to layout by name.
  • Récupération de valeur : Utilisation de l’expression Dictionary.Get(tbcode.Text) pour automatiser le basculement vers le bon niveau.

Configuration technique du Dictionary#

Pour que le système fonctionne, la déclaration des codes doit se faire dès le lancement du menu :

12. Créer des Mobs et peupler votre monde

Donner vie à votre MMORPG nécessite bien plus que de simples décors : il faut des créatures pour peupler vos zones et offrir des défis à vos joueurs. Dans ce guide, nous explorons comment configurer vos premiers “Mobs” (monstres) avec Intersect Engine.

Notions clés pour la création de Mobs#

La création de personnages non-joueurs (PNJ) hostiles repose sur plusieurs paramètres essentiels dans l’éditeur d’Intersect :

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. Maîtriser le Foliage Editor dans Unreal Engine 4

Dans cet épisode, nous abordons une étape cruciale pour donner vie à vos environnements : l’utilisation du Foliage Editor (Éditeur de feuillage). Plutôt que de placer vos arbres et éléments de végétation un par un manuellement — une tâche fastidieuse et chronophage — nous allons apprendre à utiliser les outils de peinture procédurale d’Unreal Engine 4 pour peupler rapidement vos niveaux.

Résumé des points clés#

  • Importation des assets : Utilisation du Content Browser pour filtrer et sélectionner vos modèles 3D (arbres, troncs, etc.).
  • Configuration du Foliage Editor : Glisser-déposer les assets dans la zone dédiée pour créer une palette de végétation.
  • Gestion de la densité : Ajustement des paramètres de Paint Density pour contrôler la fréquence d’apparition de chaque type d’arbre.
  • Optimisation : Désactivation des collisions si le gameplay ne nécessite pas d’interaction physique avec la végétation.
  • Édition fine : Utilisation de l’outil Select pour supprimer ou déplacer manuellement des instances afin de créer des clairières ou des chemins spécifiques.
  • Workflow de placement : Peindre directement sur le terrain pour créer des forêts denses tout en gardant la main sur la composition visuelle.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes d’Unreal Engine (UE5) aient introduit le système PCG (Procedural Content Generation) et les Packed Level Actors, les fondamentaux du Foliage Editor restent identiques et essentiels pour :

10. Intégration du son et effets audio

Cette page est une archive pédagogique du dixième épisode de ma série consacrée à la création d’un jeu de plateforme avec Construct 2.

Notions clés abordées#

  • Gestion de l’objet Audio : Ajout de l’objet système Audio pour gérer la lecture des sons dans l’ensemble du projet.
  • Importation de ressources : Importation de fichiers au format OGG (format natif recommandé) depuis des plateformes comme OpenGameArt.
  • Organisation des sons : Renommage et catégorisation des fichiers dans l’arborescence du projet (Sounds vs Musiques).
  • Déclenchement événementiel : Utilisation de l’action Audio > Play dans la feuille d’événements pour déclencher des sons lors d’actions précises (saut, mort, collecte).
  • Optimisation du chargement : Utilisation de l’action Preload pour éviter les latences de lecture sur les connexions internet lentes.

Ce qui reste d’actualité aujourd’hui#

Bien que Construct 2 soit un moteur désormais ancien, les principes de gestion audio présentés ici restent des fondamentaux du développement de jeux web :

13. Créer une boutique (Shop)

Dans ce tutoriel, nous allons apprendre à dynamiser l’économie de votre MMORPG en créant un système de marchands fonctionnel avec Intersect Engine.

Résumé des notions clés#

La mise en place d’un système de commerce dans Intersect Engine repose sur deux piliers : la configuration des données dans l’éditeur et l’implémentation via les événements sur la carte.

13. Gérer les collisions et la défaite du joueur

Apprenez à implémenter un système de défaite efficace en gérant les collisions entre votre vaisseau et les ennemis ou leurs projectiles dans GameMaker.

Résumé des notions clés#

  • Gestion des collisions : Utilisation de l’événement Collision pour détecter les interactions entre le vaisseau du joueur et les objets ennemis (vaisseaux ou lasers).
  • Destruction d’instances : Utilisation de la fonction instance_destroy() pour supprimer les objets impliqués dans la collision.
  • Ciblage dynamique : Utilisation de other dans le code de collision pour identifier précisément l’objet qui entre en contact avec le joueur.
  • Duplication d’événements : Optimisation du workflow en dupliquant les événements de collision pour les différents types d’ennemis et de projectiles afin de gagner du temps.
  • Tests de gameplay : Importance de tester les différentes conditions de défaite (collision frontale vs projectile) pour valider la logique du jeu.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions récentes de GameMaker (GMS2/GMS2023+) aient évolué, les fondamentaux présentés ici restent le socle de tout jeu d’action :

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 :