Les termes couramment utilisés

Cette page est dédiée à la description des termes couramment utilisés lorsque vous utilisez Unreal Engine 4.

Un Project

Un Project est une collection d’Assets unique qui contient tout le contenu et le code qui constituent un jeu individuel. Il dispose d’un ensemble de répertoires sur votre disque lorsque vous l’avez crée. Par exemple, dans l’image ci-dessous, l’arborescence de votre projet. Tout ce qui est contenu dans le Content Browser contiendra la même structure de répertoires que vous pourrez retrouver sur votre disque dur.

Un projet dans Unreal Engine 4

Un Object

Dans le moteur de jeu, vous allez utiliser la plupart du temps un certain nombre d’entités. Ont les nomment les Objects. Ils contiennent une grande partie des fonctionnalités essentielle dont vous aurez besoin pour vos ressources de jeu.

À peu près tout dans Unreal Engine 4 hérite ou dispose de fonctionnalités d’un Object. En C++ la classe de base de tous ces Objects se nomme UObject. Lorsque vous utilisez des Objects en réalité vous ne voyez que la partie visible de l’iceberg (la partie fonctionnelle) mais derrière tout ça il y a des fonctionnalités qui sont implémentés tel que les metadata appeler « UProperty » pour l’exposition des Variables, ou encore des fonctionnalités pour le chargement et la sauvegarde.

Un Object de type Caméra

Une Classe

Une Classe définit un ensemble de comportements et de propriétés d’un Actor ou d’un Object en particulier utilisé dans la création d’un jeu dans Unreal Engine. Les classes disposent d’une hiérarchie bien définie, ce qui signifie qu’elles peuvent hériter de certaines informations ou propriétés de leurs classe « dites » parentes, et les retransmettre à leurs classes « dites » enfants. Elles peuvent être créées de deux manières différentes grâce aux C++ ou au Blueprints.

Exemple d'une Classe Blueprint et un composant de type particule avec un composants enfant de type audio

Un Actor

Un Actor est nimporte quel type d’Object pouvant être placé dans un niveau de jeu. Les Actors sont un type de Classe générique qui prend en charge un grand nombre de comportements tel que les transformations, la rotation, la mise à l’échelle, la translation etc..

Vous pouvez générer (faire spawn) des acteur grâce au C++ ou aux Blueprints ou même détruire des Actors déjà instancier dans un niveau. Il existe une multitude d’Actors : les Actors de type caméra, mais également les StaticMeshes, les Actors de type Light etc..

Un ensemble d'Actors dans un niveau. Les chaises sont des StaticMeshes, il y à des lumières mais aussi une caméra

Un Component

Un Component est une fonctionnalité pouvant être ajouté à un Actor. vous ne pouvez pas utiliser un Component seul vous devez l’associer obligatoirement à un Actor. Lorsqu’il est ajouté à un Actor, l’Actor en question pourra avoir accès aux fonctionnalités du Component et pourra les utiliser.

Par exemple un Component de type Particule peut être ajouté à un Actor de véhicule pour simuler les gaz d’échappement, ou encore un Component de type Spot Light permettra d’émettre une lumière sur un Actor de lampe. Dans ces deux exemples vous pouvez également ajouter un Component de type audio pour simuler le bruit d’un véhicule ou le son qu’émet une lumière lors de son clignotement.

L'ajout d'un Component sur une Classe Blueprint

Un Pawn

Un Pawn est une sous-classe de l’Actor et sert à représenter un personnage(non bipède) ou un avatar au sein d’un jeu. Les Pawns peuvent être contrôlés par un joueur mais également une Intelligence Artificielle (IA) qui peut être un personnage également plus communément appelé NPC. Noter qu’il est important de comprendre cette terminologie car un NPC ne signifie pas forcément un personnage avec un moyen de locomotion de type bipède.

Au sein du moteur lorsqu’un Pawn est contrôlé par un humain ou une IA, il est considéré comme « possédé« . À l’inverse, lorsqu’un Pawn n’est pas contrôlé par un humain ou une IA, il est considéré comme étant « non possédé« .

Dans cette illustration un vaisseau spacial contrôler par le joueur

Un Character

Un Character est une sous-classe d’un Actor de type Pawn destiné à être utilisé comme personnage. La sous-classe de Character comprend des éléments qui pourront gérer les collisions, mais également les entrées claviers ou joystick pour pouvoir faire déplacer un personnages « bipède » (humain), et pourra à la fois contenir du code supplémentaire pour d’autres mouvements ou actions qui serait effectuée par le joueur. Par exemple slider ou voler dans les airs.

Un Character qui dispose d'une boîte de collision par défaut et qui peut être déplacée dans le niveau

Un PlayerController

La Classe PlayerController est utilisée pour prendre les entrées des joueurs et les transformer en interactions ou tout autre type d’actions dans le jeu et chaque jeu dispose d’au moins un PlayerController. Un PlayerController possède la plupart du temps un Pawn ou un personnage qui est la représentation d’un joueur dans le jeu.

Le PlayerController est également le principal point d’interaction réseaux pour les jeux multijoueurs. En réseaux, le serveur dispose d’une instance de PlayerController pour chaque joueur, car il doit pouvoir effectuer des appels de fonction « réseau » sur chaque joueur. Chaque client ne possède que le PlayerController correspondant à son « entrée » et ne peut utiliser son PlayerController que pour communiquer avec le serveur.

Voyons la différence entre un PlayerController et un Character car en effet au premier abord ce que je viens de vous dire sur le Character et le PlayerController peut être un peu contradictoire, mais en réalité pas du tout car chaque Classe à ses propres utilités et fonctionnalités.

  1. Tout d’abord j’ai parlé de fonctionnalités réseaux dans le PlayerController que je n’ai pas évoqué dans le Character. Même si le Character dispose de fonctionnalités réseaux également elles sont moindres comparées au PlayerController.
  2. La Classe Character représente le joueur dans le niveau de jeu. Elle fournit des fonctionnalités pour les animations, les collisions, les mouvements,les mode d’entrée(clavier,joystick etc..) mais aussi des fonctionnalités réseaux de base.
  3. Si vous estimez que vos actions de personnage ou mouvement dans le jeu ne sont pas complexes et qu’il n’est pas nécessaire de changer de joueurs dynamiquement (contrôle de plusieurs joueurs avec des pouvoirs différents par exemple) alors, la Classe Character est plus appropriée.
Le PlayerController représentera essentiellement l'humain que le joueur possédera

Un AIController

Tout comme le PlayerController, qui possède un Pawn pour représenter un joueur dans la partie, un AIController possède un Pawn pour représenter un personnage non joueur (NPC).

Par défaut, les Pawns et les personnages se retrouveront avec un AIController de base, à moins qu’ils ne soient spécifiquement possédés par un PlayerController, il se concentre essentiellement sur les actions et les tâches qu’il doit établir dans le niveau. Ces actions ou ces tâches seront programmées à l’intérieur du Blueprint comme pour la majeur partie des Classes Blueprints.

Un AIController qui pourra se déplacer sur différentes parties du terrain (zone verte)

Un Brush

Un Brush est un Actor qui décrit un volume 3D placé dans un niveau afin de définir la géométrie de jeu de ce niveau, il peut être également appelé (BSP). En règle générale, vous utiliserez des BSP pour prototyper ou bloquer certain endroit de vos niveaux lors du prototypage.

Un niveau prototyper avec des Brush géométrique

Un Level

Un Level est une zone de jeu définir par l’utilisateur. Les Levels sont créés et modifiés principalement avec les outils (Move,Rotate et Scale). Ils peuvent avoir des propriétés qui peuvent être modifiés selon les besoins. Dans l’éditeur d’Unreal, chaque niveau est enregistrer sous le format .umap

Un Level créer dans Unreal Engine 4

Un World

Un World où (Monde) contient une liste de niveaux chargés dans le moteur. Il gère le Level Streaming, pour pouvoir afficher ou masquer certaines parties de votre Niveau.

Par exemple si vous disposez d’un Niveau de jeu très vaste vous pouvez alors faire en sorte qu’il soit comme « découper » pour faciliter certaines opérations qui influrais directement sur la mémoire de calcul de l’ordinateur du joueur.

Le panneau Level regroupe les différents Levels dans un Level Parent nommé Persistent Level

Un GameMode

La Classe GameMode va permettre d’établir des règles de jeu. Les règles peuvent inclure la manière dont les joueurs rejoignent le jeu, si un jeu peut être suspendu ou non, les transitions de niveau etc..

Vous pouvez définir un GameMode par défaut dans les paramètres du projet, mais vous pouvez spécifier également un GameMode différent pour chaque niveau. Quelle que soit la manière dont vous choisissez d’implémenter le GameMode, il y aura toujours qu’un seul GameMode présent par niveau.

Dans une partie multijoueur, le GameMode n’existera que sur le serveur et les règles seront répliquées (envoyées) à chacun des clients connectés.

Un Menu avec différents GameMode que l'utilisateur peut sélectionner

Un GameStates

Le GameState contient les informations que vous souhaitez répliquer (envoyé) sur chaque client d’un jeu, ou plus simplement, il s’agit de « L’état du jeu » pour toutes les personnes connectées.

Il contient souvent des informations sur le score du jeu, si un match a commencé ou non, le nombre d’IA à générer en fonction du nombre de joueurs dans le monde et d’autres informations spécifiques au jeu.

Pour les jeux multijoueurs, il y a une instance de GameState sur la machine de chaque joueur, ensuite l’instance du serveur faisant autorité pourra envoyer certaines informations.

Un GameState envera directement les informations sur chaque client pour vous informé que X a tué Y par exemple

Un PlayerStates

Un PlayerState est l’état d’un joueur en jeu, tel qu’un joueur humain ou un robot possédé par un joueur. L’IA qui est dans le niveau de dispose pas de PlayerState.

Des exemples de données qui pourraient êtres présente dans le PlayerStates sont, le nom, le score, le niveau, la santé etc..

En multijoueurs le PlayerState existe sur toutes les machines des différents joueurs et peut répliquer les données du serveur vers le client pour que tout soit synchronisé.

Un exemple d'une ProgressBar de santé ou d'endurance qui peut refléter l'état d'un joueur

Informations générales

Il est à noter que cet article dispose en effet d'un espace commentaire, et que globalement je ne suis pas là pour faire de la modération, je vous prie s'il vous plaît de ne pas spammer, insulter, manquer de respect ou favoriser tout autres comportements qui pourrait nuire à la communauté. À tel point que si je dois prendre les mesures nécessaires pour faire appliquer ces règles simples, il est important de comprendre que par conséquent je ne passerais pas par quatre chemins.

Les termes couramment utilisés
5 (100%) 1 vote

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *