Data Table et Struct dans Unreal Engine 5
Ton jeu a plusieurs sortes d’objets, chacune avec ses propres réglages ? Les écrire un par un dans les Blueprints devient vite pénible. À la fin de ce guide, tu sauras créer une Struct, la remplir dans une Data Table, lire une ligne en jeu avec Get Data Table Row et choisir entre une Data Table et un Data Asset. Tout est vérifié sur la documentation officielle d’Epic Games.
La Struct : regrouper des valeurs qui vont ensemble
Imagine deux sortes d’objets à ramasser : l’un vaut 1, l’autre vaut 5, et chacun a son matériau. Chaque sorte a donc deux informations qui vont ensemble. Une Struct les regroupe : elle rassemble des valeurs de types différents, ici un Integer et un matériau. Tu la crées dans le Content Browser (Blueprint › Structure) et tu lui ajoutes un membre par information. Pour le matériau, le type Material Interface accepte les matériaux et leurs Material Instances.
Pour lire une Struct dans un Blueprint, Split Struct Pin ouvre le pin et montre chaque membre sur le nœud lui-même, et Break fait pareil avec un nœud en plus. Make construit une struct, et Set Members change un seul membre d’une variable struct sans toucher aux autres.
La Data Table : un tableur dans Unreal
Une Data Table est une table, comme dans un tableur. Chaque ligne remplit la même struct, et chaque colonne est un de ses membres. Tu as une ligne par sorte d’objet, avec tout réglé au même endroit. À la création, Unreal te demande d’abord la struct des lignes, car elle donne les colonnes.
Le nom d’une ligne s’appelle le Row Name. C’est son étiquette unique : deux lignes ne peuvent pas porter le même. En jeu, tu demandes la ligne par ce nom. Un nom qui n’existe pas dans la table ne trouve rien, alors écris-le avec soin.
Une grosse table se remplit aussi dans un tableur, enregistré en .csv, puis importé dans la Data Table.
Lire une ligne en jeu : les grandes étapes
- Une variable de type Name contient le Row Name. Rendue modifiable pour chaque objet posé, elle permet une sorte différente avec un seul Blueprint.
- Le nœud Get Data Table Row reçoit ta table et ce Row Name.
- Sa sortie Out Row donne la ligne sous la forme de sa struct, que tu ouvres avec Split Struct Pin ou Break.
- Sur Row Found, tu appliques les valeurs. Sur Row Not Found, un Print String te montre l’erreur, par exemple après une faute de frappe.
Le pas à pas complet, avec les captures de l’éditeur, des quiz et un mini-projet, est dans le chapitre « Données et sauvegardes » du cours.
L’intérêt : pour changer la valeur d’une sorte, tu modifies une seule ligne de la table, et tous les objets de cette sorte suivent.
Data Table ou Data Asset ?
Un Data Asset fait l’inverse d’une Data Table : un fichier par chose, avec ses propres réglages. C’est pratique quand chaque chose a beaucoup de réglages. Tu crées une Blueprint Class de parent PrimaryDataAsset qui dit quelles cases existent, puis un Data Asset par chose. Chaque Data Asset est un exemplaire de la classe, avec ses propres valeurs.
Avec un Data Asset, tu choisis le fichier dans une liste : pas de Row Name à taper, donc pas de faute de nom possible. Le « Primary » de PrimaryDataAsset veut dire que l’Asset Manager, le gestionnaire de fichiers du moteur, peut le charger seulement quand il faut. C’est utile avec des centaines d’objets. Son type doit alors être déclaré dans les Project Settings.
- Data Table : beaucoup de choses qui se ressemblent, à régler côte à côte ou dans un tableur.
- Data Asset : une chose par fichier, avec ses propres réglages, choisie dans une liste.
Questions fréquentes
Quelle est la différence entre une Struct et une Data Table ?
La Struct décrit une ligne : ses membres deviennent les colonnes. La Data Table contient les lignes, une par sorte, toutes construites sur la même struct.
À quoi sert le Row Name ?
C’est l’étiquette unique d’une ligne. En jeu, on demande une ligne par son Row Name.
Mon Get Data Table Row ne trouve rien, pourquoi ?
La sortie Row Not Found part si aucune ligne ne porte ce nom. Vérifie l’orthographe du Row Name, par exemple « Silvre » au lieu de « Silver ».
Sources officielles
- Blueprint Struct Variables (documentation Epic)
- Designer 02: Create a Key (documentation Epic)
- Data Driven Gameplay Elements (documentation Epic)
- Coder 05: Manage Item and Data (documentation Epic)
- Creating and Using Material Instances (documentation Epic)
- Blueprint Variables (documentation Epic)
- Get Data Table Row (documentation Epic)
- Set Material (documentation Epic)
- Functions (documentation Epic)
- Data Assets (documentation Epic)
À lire aussi : les variables Blueprint et leurs types, les Material Instances et sauvegarder une partie avec un Save Game.
Tu veux ranger les réglages de ton jeu dans une table et les lire depuis un Blueprint, pas à pas dans un vrai projet ? Le cours propose des leçons courtes, des quiz et des mini-projets, à ton rythme.
Apprendre Unreal Engine 5 gratuitement