7. Ramassage d'objets (Raycast), système de score et éclairage d'ambiance

Dans ce septième volet de la série Kawaii Slender, nous passons à une étape essentielle du gameplay : l’interaction avec l’environnement. Nous allons voir comment permettre au joueur de cibler et de ramasser des objets au sol (des burgers Low-Poly) pour incrémenter un système de score, tout en ajustant la lisibilité de notre scène nocturne.

8. Intelligence Artificielle (Behavior Tree, Blackboard & Configuration du Slender)

Dans ce huitième volet de la série Kawaii Slender, nous attaquons un gros morceau du développement sur Unreal Engine 5.6.1 : l’Intelligence Artificielle (IA). C’est ici que notre jeu d’horreur mignon commence à prendre vie avec l’intégration de notre grand antagoniste : une poule de l’enfer géante qui va nous traquer sans relâche.

9. Perception sensorielle de l'IA (AI Perception) et activation du Slender

Dans ce neuvième volet de la série Kawaii Slender, nous concrétisons le travail architectural débuté dans l’épisode précédent. Nous allons connecter la structure logique de notre arbre de comportement (Behavior Tree) à la vue 3D de notre ennemi (la créature gallinacée maléfique). Pour cela, nous configurons le système de perception natif d’Unreal Engine afin que l’IA puisse repérer visuellement le joueur et basculer en mode chasse.

10. Animations et spatialisation sonore de l'IA (Blend Space 1D & Animation Blueprint)

Dans ce dixième volet de la série Kawaii Slender, nous passons à la phase de polissage visuel et sonore de notre antagoniste. Maintenant que notre poulet géant est capable de nous traquer logiquement grâce à son arbre de comportement, nous allons lui donner corps en synchronisant ses postures physiques (marche, course, repos) à sa vitesse réelle et en intégrant des bruitages spatialisés pour accentuer la tension dramatique.

11. Gestion des collisions et effet de mort en Ragdoll

Maintenant que notre poulet géant est pleinement animé et capable de nous traquer à l’oreille et à la vue, il est temps de gérer la confrontation. Dans ce onzième épisode, nous mettons en place la mécanique de défaite : la détection du contact entre l’ennemi et le joueur, suivie du déclenchement d’un effet physique de mort en Ragdoll pour désarticuler notre personnage.

12. Conditions de victoire, de défaite et création des écrans de fin (Game Over / Victory)

Dans ce douzième et dernier grand épisode de la série Kawaii Slender, nous bouclons la boucle de notre boucle de gameplay (game loop). Après avoir configuré la traque et la mort physique du personnage, nous programmons les deux états finaux indispensables à tout jeu vidéo : la condition de défaite (Game Over) et la condition de victoire (Victory), avec la création d’écrans dédiés et la gestion de la capture de la souris.

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 :

13. Création de paysages et peinture de textures (Landscape Mode)

Après avoir bouclé notre boucle de gameplay avec les conditions de victoire et de défaite, nous attaquons enfin la phase de mapping. Dans cet épisode, nous quittons la carte de test par défaut pour sculpter notre tout premier terrain 3D et apprendre à y peindre différentes textures (herbe, terre, roche) pour poser l’ambiance de notre Slender-like.

14. Système de végétation (Foliage Mode) et optimisation des collisions

Notre terrain 3D est désormais sculpté et peint, mais il manque cruellement de vie. Dans ce quatorzième épisode, nous transformons notre carte en une véritable forêt dense en utilisant les outils de peuplement de masse d’Unreal Engine 5. Nous verrons comment peindre de la végétation (arbres, buissons, cailloux) en quelques clics tout en appliquant des règles d’optimisation strictes pour préserver les performances du jeu.

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