3. Démarrer son premier projet dans Unreal Engine 4

Bienvenue dans ce troisième chapitre de notre série dédiée à la maîtrise d’Unreal Engine 4. Après avoir installé l’environnement, il est temps de passer à l’action en créant votre tout premier projet. Que vous souhaitiez concevoir un jeu de plateforme, un FPS ou une simulation, tout commence par le choix du bon template.

Résumé des étapes de création#

Pour bien débuter, voici la marche à suivre dans le Launcher Epic Games :

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 :

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. Gestion des collisions et détection d''objets dans Unreal Engine 4

Dans cet épisode, nous abordons une étape cruciale pour l’interactivité de votre jeu : la gestion des collisions. Nous allons apprendre à faire en sorte que votre personnage puisse “ressentir” les objets qu’il touche, qu’il s’agisse de collecter des points ou de déclencher un Game Over.

Au programme de cet épisode :#

  • Utilisation de l’Event Hit : Apprendre à capturer l’événement de collision dans le SideScrollerCharacter.
  • Stockage d’informations : Utiliser des variables pour garder une trace de l’objet touché (ObjectTouché).
  • Filtrage par classe : Utiliser le node Get Class et Equal (Class) pour vérifier si l’objet touché est bien un “Tron”.
  • Analyse des composants : Utiliser Break Hit Result pour identifier précisément quelle partie de l’objet (la “Loose Box” ou la “Point Box”) a été percutée.
  • Hiérarchie des composants : Comprendre comment naviguer dans les enfants d’un Blueprint via Get Child Component pour isoler des zones de collision spécifiques.
  • Débogage visuel : Utilisation du Print String pour valider le fonctionnement de la logique en temps réel.

Ce qui reste d’actualité aujourd’hui#

Bien que cet épisode se concentre sur Unreal Engine 4, les concepts fondamentaux restent parfaitement valables pour Unreal Engine 5 :

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 :

18. Maîtriser les variables et le système de score dans Unreal Engine 4

Dans ce chapitre, nous abordons un pilier fondamental du développement de jeux vidéo : la gestion des données. Qu’il s’agisse de points de vie, d’inventaire ou de score, tout repose sur l’utilisation des variables. Nous allons voir comment créer, configurer et rendre accessible une variable de type “Integer” au sein de votre personnage dans Unreal Engine 4.

Résumé du chapitre#

  • Qu’est-ce qu’une variable ? Une boîte de stockage pour vos données (texte, nombres, états logiques).
  • Les types de variables : Distinction entre les Integers (nombres entiers) pour les scores et les Floats (nombres à virgule) pour les mesures précises.
  • Création dans le Blueprint : Utilisation du panneau “Variables” dans le ThirdPersonCharacter.
  • Compilation : Étape indispensable pour initialiser la variable et définir sa valeur par défaut.
  • Accessibilité : L’importance de l’icône “œil” (Editable) pour permettre aux autres acteurs du jeu de modifier votre score.

Ce qui reste d’actualité aujourd’hui#

Bien que les versions d’Unreal Engine aient évolué (passant de la 4 à la 5), les concepts fondamentaux présentés ici restent strictement identiques :

19. Gestion de la difficulté dynamique dans Unreal Engine 4

Dans cet épisode, nous allons aborder un aspect crucial de l’expérience utilisateur : la courbe de progression. Pour éviter que votre jeu ne devienne monotone, nous allons implémenter un système de difficulté dynamique qui s’ajuste automatiquement à chaque fin de boucle d’apparition d’ennemis (ou d’objets).

Résumé de la mise en place#

  • Variable de difficulté : Création d’une variable de type Float dans le Character pour stocker le niveau de difficulté actuel.
  • Initialisation : Définition de la valeur par défaut à 1.0 pour éviter les erreurs de calcul (division par zéro).
  • Logique du Spawner :
    • Incrémentation de la difficulté à chaque fin de boucle de spawn.
    • Conversion du délai d’apparition (Delay) en une variable dynamique (SpawnTimer).
    • Calcul mathématique pour ajuster le rythme d’apparition en fonction de la difficulté.
  • Accélération des ennemis : Multiplication de la vitesse de déplacement des objets (BP_Etron) par la variable de difficulté pour augmenter le défi visuel et mécanique.

Ce qui reste d’actualité aujourd’hui#

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

21. Implémenter le système de ramassage et de score

Dans cet épisode, nous passons à l’étape cruciale de l’interaction : transformer notre objet statique en un élément de gameplay fonctionnel. Nous allons apprendre à détecter la collision entre le joueur et la pièce, mettre à jour une variable de score et supprimer l’objet de la scène.

Résumé des étapes clés#

  • Détection de collision : Utilisation de l’événement Event Actor Begin Overlap dans le Blueprint de la pièce.
  • Cast vers le personnage : Utilisation du nœud Cast To ThirdPersonCharacter pour s’assurer que seule la collision avec le joueur déclenche l’action.
  • Gestion du score :
    • Récupération de la valeur actuelle via Get Score.
    • Addition de la valeur (via Integer + Integer) pour permettre une flexibilité sur le gain de points.
    • Mise à jour de la variable via Set Score.
  • Feedback visuel : Utilisation temporaire de Print String pour vérifier le bon fonctionnement du compteur.
  • Nettoyage : Utilisation de Destroy Actor pour supprimer la pièce de la scène une fois ramassée.
  • Level Design : Astuces pour dupliquer et disposer les pièces dans le niveau tout en conservant les propriétés de taille personnalisées.

Ce qui reste d’actualité aujourd’hui#

Bien que cet épisode utilise les bases d’Unreal Engine 4, les concepts abordés sont fondamentaux et toujours valides dans Unreal Engine 5 :