Stack O Bot est un exemple de projet de jeu créé comme ressource d'apprentissage pour explorer le développement de jeux avec l'Unreal Engine. Il présente diverses fonctionnalités du moteur, notamment la génération procédurale de contenu (PCG), les blueprints et les instances de niveau. L'exemple de projet inclut des commentaires de développeurs dans le jeu, qui expliquent les choix de conception et l'implémentation, ainsi que des blueprints et des matériaux commentés.
Dans Stack O Bot, le joueur contrôle un robot en vue à la troisième personne et doit relever une série de défis de plateforme et d'énigmes basés sur la physique. Il prend en charge un large éventail d'appareils, des téléphones mobiles aux PC haut de gamme, et peut être contrôlé à l'aide du clavier et de la souris, de la manette et d'entrées sur l'écran tactile.
Cette page explique comment ouvrir l'exemple de projet Stack O Bot, fournit un aperçu des principales fonctionnalités du projet et propose des liens vers la documentation associée pour approfondir vos connaissances.
Ouvrir le projet Stack O Bot
L'exemple Stack O Bot décrit sur cette page a été créé à l'aide de l'Unreal Engine 5.6. Pour essayer la version plus ancienne de Stack O Bot, téléchargez le projet pour les versions du moteur antérieures à la version 5.6.
Pour ouvrir l'exemple de projet Stack O Bot, procédez comme suit :
Depuis Fab, accédez à l'exemple Stack O Bot et cliquez sur Ajouter à ma bibliothèque.
Vous pouvez également rechercher l'exemple de projet dans le plug-in Fab pour l'Unreal Engine.
Accédez à Stack O Bot et cliquez sur Créer un projet.
Dans le lanceur Epic Games, accédez à Unreal Engine > Bibliothèque > Bibliothèque Fab.
Saisissez un nom et un emplacement pour votre projet.
Sélectionnez 5.6 comme version du moteur.
Cliquez sur Créer. Le projet s'ouvre.
Pour plus d'informations sur l'accès aux exemples de contenu et au plug-in Fab pour l'Unreal Engine, consultez la rubrique Exemples et tutoriels.
Configuration système recommandée
Stack O Bot est conçu pour prendre en charge un large éventail d'appareils, notamment les téléphones mobiles et les PC. Le contenu s'adapte à tous les niveaux de détail et est entièrement compatible avec les mobiles.
La configuration système suivante est recommandée pour un PC :
Windows 10 64 bits version 1909, révision .1350 ou supérieure, ou versions 2004 et 20H2, révision .789 ou supérieure
Windows 11 est compatible avec l'Unreal Engine 5 et correspond à la configuration recommandée.
Intel ou AMD 4 cœurs 2,5 GHz ou supérieur
32 Go de RAM système
8 Go de VRAM
Carte graphique compatible DirectX 11 ou 12
Naviguer dans le projet Stack O Bot
À l'ouverture du projet Stack O Bot, le mappage Lvl_Empty s'ouvre par défaut dans l'éditeur de niveau. Le mappage fournit des informations à l'écran sur l'utilisation de cet exemple de projet.
La majeure partie du contenu de l'exemple de projet se trouve dans le dossier /Content/StackOBot/. Le mappage de jeu principal, Lvl_StackOBot, se trouve dans le dossier /Content/StackOBot/Maps.
Pour jouer au jeu, cliquez sur l'icône Jouer dans la barre d'outils principale.
Le jeu commence avec un menu principal, qui se trouve dans le mappage Lvl_MainMenu. Cliquez sur JOUER pour accéder au mappage de jeu principal, Lvl_StackOBot.
Le mappage de jeu principal comprend des icônes en forme de bulle qui déclenchent des commentaires de développeur lorsque le joueur s'approche. Ce commentaire explique certains détails d'implémentation et décisions de conception prises par les développeurs lors de la création de Stack O Bot.
Le contenu des bulles de commentaire de développeur se trouve dans le dossier /Content/DevCom.
Contrôles dans le jeu de Stack O Bot
Pour jouer à Stack O Bot, le joueur peut utiliser un clavier et une souris, une manette ou des contrôles sur l'écran tactile.
| Action | Clavier et souris | Contrôleur | Tactile (voir l'image ci-dessous) |
|---|---|---|---|
Move | W, A, S, D | Joystick gauche | 1 |
Regard | Souris | Joystick droit | 2 |
Jump | Espace (appui) | Bouton inférieur (appui) | 3 (appui) |
Réacteur dorsal | Espace (maintien) | Bouton inférieur (maintien) | 3 (maintien) |
Attraper | E | Déclencheur droit | 4 |
Pause | Échap. ou Maj gauche | Bouton Démarrer | 5 |
Fonctionnalités de Stack O Bot
Cette section décrit les fonctionnalités utilisées dans l'exemple de projet Stack O Bot et les emplacements des ressources associées dans le dossier du projet.
Introduction du niveau
Stack O Bot commence par une introduction du niveau, intégrée comme une séquence de niveau à l'aide de Sequencer. Dans la séquence de niveau, trois caméras cinématiques et une piste de coupe de caméra sont utilisées pour parcourir le niveau et afficher divers éléments du mappage de jeu.
La séquence de niveau (SQ_Lvl1_fly) se trouve dans le dossier /Content/StackOBot/Maps.
Personnage personnalisable à la troisième personne
Le projet Stack O Bot comprend un personnage à la troisième personne qui se déplace, saute et peut interagir avec des personnages non joueurs (PNJ) et des objets. Le blueprint du personnage, BP_Bot, combine un graphique d'animation, un squelette de contrôle, et des matériaux personnalisables.
Le graphique d'animation permet d'animer le personnage dans différents états, notamment quand il est immobile ou quand il court ou saute. Le squelette de contrôle est utilisé pour les animations contextuelles, comme le positionnement des pieds du personnage sur différentes surfaces, et pour guider la main vers la position du bouton lorsqu'on appuie sur ces boutons. Les matériaux personnalisables contiennent des paramètres permettant de modifier les combinaisons de couleurs et les expressions du visage du personnage.
Le blueprint BP_Bot se trouve dans le dossier /Content/StackOBot/Blueprints/Character. Les animations et matériaux de personnage se trouvent dans le dossier /Content/StackOBot/Characters/Bot.
Génération procédurale de contenu (PCG)
Le mappage de Stack O Bot a été créé à l'aide de la génération procédurale de contenu (PCG). La PCG permet de créer de nombreuses ressources, notamment les îles flottantes, la végétation, les plateformes, les dômes hexagonaux, les clôtures et les générateurs de pièces.
Les plateformes sont créées en définissant une taille, en utilisant des pièces de carré existantes et un ensemble de règles pour assurer la cohérence visuelle des plateformes. Des dômes sont disposés sur l'ensemble du mappage, mais vous pouvez définir une entrée et une sortie de niveau qui restent exemptes de dômes.
Les clôtures sont créées à l'aide d'un système de PCG qui échantillonne une spline, PCG_BP_FenceSpline, et applique des règles pour générer les différentes parties de la clôture, comme les poteaux et les bouchons d'extrémité. Le mappage comprend des générateurs de pièces, qui utilisent également la PCG pour faire apparaître des pièces le long d'une spline.
Le contenu de PCG se trouve dans le dossier /Content/StackOBot/Blueprints/PCG.
Matériaux intelligents sans UV
Le projet Stack O Bot utilise des matériaux intelligents sans UV pour appliquer des textures de haute qualité à chaque maillage du mappage avec une surface en béton, en métal ou peinte, comme les plateformes flottantes, les cylindres métalliques et les parties métalliques de la structure du bio dôme. Au lieu de créer des canaux UV pour chaque section d'un maillage, l'équipe a ajouté des informations de colorisation des vertex à chaque maillage à l'aide d'outils de modélisation. Les matériaux intelligents utilisent alors la colorisation des vertex pour positionner la texture sur chaque maillage.
Génération de HLOD
Le mappage de Stack O Bot est vaste et comporte de nombreuses ressources à rendre. Le projet utilise donc le système de niveau de détail hiérarchique (HLOD) de l'Unreal Engine pour améliorer les performances lors du jeu.
Comportement du StateTree de PNJ
Stack O Bot contient des PNJ qui peuvent interagir avec le personnage joueur. Les PNJ se déplacent dans des parties du mappage, poursuivent le joueur s'il se trouve à proximité, le percutent pour le repousser et peuvent être détruits lorsque le personnage joueur saute sur leur tête. Le comportement du PNJ est contrôlé à l'aide d'un StateTree, qui définit les différents états possibles de chaque PNJ (comme au repos, en marche ou mort) et les actions que le PNJ doit effectuer dans chaque état.
Le StateTree des PNJ se trouve dans le dossier /Content/StackOBot/AI/STree_Bug.
Instances de niveau modulaires
Stack O Bot utilise des instances de niveau pour créer des segments de niveau modulaires et réutilisables. Par exemple, il existe des instances de niveau avec des variantes des îles flottantes, qui permettent de créer des mappages de jeu sans avoir à créer un contenu unique pour chaque nouvelle zone.
Chaque instance de niveau peut être jouée comme un mappage autonome, ou ajoutée à un mappage de World Partition. Lorsqu'elle est placée dans un mappage, chaque instance dispose d'une transformation qui permet de la faire pivoter et de la positionner.
Vous pouvez ajouter des objets à une instance étiquetée Monde principal uniquement dans le panneau Détails. Ces objets ne s'affichent que si l'instance est jouée comme un mappage autonome, et non si vous utilisez le mappage comme une instance de niveau dans un mappage de World Partition. Cochez la case Monde principal uniquement pour l'éclairage, les points de départ du joueur et les autres objets que vous ne voulez pas utiliser dans le mappage de World Partition, mais que vous voulez utiliser pour le test et le débogage de l'instance de niveau en tant que mappage autonome.
Les instances de niveau se trouvent dans le dossier /Content/StackOBot/Maps/LevelInstances. Les instances de niveau qui utilisent des objets portant la balise Monde principal uniquement ont un dossier Monde principal qui contient ces objets.
Interactions basées sur la physique
Stack O Bot utilise les systèmes de physique de l'Unreal Engine pour implémenter les objets physiques, les interactions et les destructions.
En ce qui concerne les objets physiques comme les caisses empilables, le personnage joueur peut les saisir à l'aide d'une poignée physique. Les objets tels que les tremplins et les ventilateurs utilisent des commandes physiques pour propulser le joueur en l'air. Les plateformes flottantes et les ponts utilisent une configuration de contraintes physiques. Les objets destructibles, comme les toits et les plateformes qui réapparaissent, utilisent une collection de géométries préfracturée déclenchée par le champ principal Chaos.
Les objets physiques se trouvent dans le dossier /Content/StackOBot/Blueprints/PhysicsElements.
Caméra dynamique
Stack O Bot utilise un gestionnaire de caméra de joueur personnalisé (BP_CamManager) pour créer trois types de caméra distincts :
Une caméra à la troisième personne qui suit le joueur par-derrière
Une vue verrouillée à la troisième personne conçue pour montrer divers éléments du mappage de jeu sous un angle cinématique
Une implémentation à défilement horizontal conçue pour recréer le style des jeux de plateforme classiques en 2D
La caméra à la troisième personne qui suit le joueur est utilisée dans la majeure partie du mappage principal. Lorsque vous vous tenez sur certaines plateformes mobiles, la caméra passe à la vue verrouillée à la troisième personne. Il y a une partie du mappage où la caméra passe en vue à défilement horizontal.
Le gestionnaire de caméra effectue la transition entre les trois types de caméra à l'aide d'un acteur de blueprint (BP_GameCamVolume), de la logique intégrée au gestionnaire de caméra et d'une interface (BPI_CamManager) pour la communication entre le gestionnaire et l'acteur de blueprint.
Le gestionnaire de caméra et le blueprint du volume de caméra de jeu se trouvent dans le dossier /Content/StackOBot/Blueprints/Camera.
Interactions de jeu
Stack O Bot comporte un composant de gestion des interactions qui peut être ajouté à tout acteur avec lequel le personnage joueur peut interagir. Cela s'applique à des objets comme les boutons et les plaques de pression.
Les objets pouvant être saisis, comme les caisses, possèdent l'onglet d'acteur GRAB, qui est vérifié par la fonction Grab_Check dans BP_Bot. Les objets saisis sont mis à jour par la fonction Grab_Update.
Le composant de gestion des interactions se trouve dans le dossier /Content/StackOBot/Blueprints/GameElements. La logique de saisie est incluse dans le blueprint BP_Bot, qui se trouve dans le dossier /Content/StackOBot/Blueprints/Character.
Suivi des objectifs
Stack O Bot implémente un système d'objectifs par le biais du mode de jeu. Vous pouvez étiqueter les acteurs interactifs en utilisant le booléen IsObjective du composant de gestion des interactions. L'objectif est mis à jour lorsque le joueur interagit avec l'acteur étiqueté.
Le suivi des objectifs est réalisé dans l'interface utilisateur (IU) du jeu. Le gestionnaire d'interaction envoie l'état de l'objet à l'IU et met cette dernière à jour si nécessaire.
Les objectifs sont également représentés visuellement dans le mappage par l'acteur BP_Portal, qui dispose d'une lumière par objectif. Les lumières s'allument lorsque les objectifs sont terminés. Une fois que tous les objectifs sont terminés et que toutes les lumières sont allumées, le portail s'active et la collision du déclencheur est activée. Cette activation permet au joueur de terminer le mappage en entrant dans le portail. Le composant de gestion des interactions gère la logique des lumières et du portail.
Le composant de gestion des interactions (BPC_InteractionHandler) et le blueprint du portail (BP_Portal) se trouvent dans le dossier /Content/StackOBot/Blueprints/GameElements. La ressource d'interface utilisateur (HUD_InGame) se trouve dans le dossier /Content/StackOBot/Blueprints/Framework.