Ici, on essaie de comprendre les différents “objets” qui sont utilisés dans Enfusion
Les objets Enfusion
Pour que ces données puissent être utilisées dans le jeu, il faut les associer à des entités. Les entités fournissent des fonctionnalités par l'ajout de composants. Pour créer des entités, il faut utiliser l'éditeur de monde (world editor).
Les entités peuvent être assemblées en prefabs qui forment ainsi des modèles d'entités complexes et “prêts à l'emploi”, facilement réutilisables.
Les types de données Enfusion
Dans Arma reforger, les données Enfusion sont organisées selon une arborescence type que Bohemia suggère de suivre pour tous les addons.
Chaque fichier est enregistré dans l'arborescence type. Les types de fichiers sont décrits sur le Wiki (et classés par ordre alphabétique).
Terrains et environnement
- .asc et .bterr : champs de hauteur (heightmaps). .asc est un format uniquement utilisé pour l'import / export, le format manipulé dans Enfusion est le .bterr
- .bttile : informations du terrain en découpage par tuile (hauteur, etc.), avant toute autre modification de type route ou autre, utilisées par l'éditeur.
- .ttile : informations du terrain en découpage par tuile (hauteur, textures, etc.) utilisées à l'exécution
- .ter : données de hauteur du terrain
- .desc : configuration pour l'importation des textures de terrain (pas bien sûr de ça)
- .stars : base de données pour les étoiles, utilisée à l'exécution et dans un format propriétaire binaire, pas d'éditeur fourni
- .topo : informations topographiques en 2D pour les terrains
- .nmn : maillage de navigation (navmesh) d'un terrain
Modèles 3D (meshes), textures, maps and co
- .fbx (txo et xob): modèle 3D source. Les .xob sont les modèles 3D importés (donc au format Enfusion) et les .txo des fichiers textes pour faire l'import des .fbx vers les .xob
- .dds : paquets de textures “sources” (DirectDraw Surfaces), car Enfusion utilise un format prioriétaire .edds pour les textures
- .emat, .gamemat : matériaux utilisés pour le rendu de tous les assets dans Enfusion : meshes, nuages, eau, post process, etc. Les .gamemat définissent des propriétés Enfusion pour les matériaux
- .imageset : set d'images découpés dans une texture. Voir pour les image set sur le wiki de BI.
- .physmat : matériau physique (adhérence, rebondissement, etc.)
Animations et particules
- .adeb : fichier de débogage hors ligne (hors exécution dans le jeu ?) des animations
- .ae : table des événements d'animation (StepEvent, SoundEvent, SynchronisationEvent, etc.) (qu'est-ce que c'est ?)
- .agf : container pour le graphe de l'animation
- .agr : format “racine” pour chaque élément du graphe d'animation (commandes, variables, etc.)
- .anm : fichier d'animation binaire (pour l'exécution ?)
- .asi : relie un .anm et un .ast
- .ast : squelette de la structure d'un .asi
- .asy : table de synchronisation de l'animation
- .aw : configuration de l'espace de travail de l'éditeur d'animation
- .txa : animation source au format texte (source pour les .anm)
- .ptc : définition (configuration) d'effets de particules
Sons
- .acp : composant audio pour la gestion de la lecture d'un son
- .afm : mixage d'un son à partir des entrées de son (.acp)
- .smap : informations sur un son ou une musique
- .wav : format de son source
Prefab et containers
Configurations
- .conf : paramètres de configuration spécifiques à Enfusion pour certains types d'objets
- .vhcsurf : propriétés des surfaces (asphalte, terre, etc.) utilisées pour la simulation des véhicules (rugosité, bruit de roulement, etc.)
- .ragdoll : définition (configuration) du ragdoll d'un personnage. Pas d'éditeur pour le moment, affichage en texte brut.
Code
- .c : code source Enforce Script
Interface utilisateur (dont celle de l'atelier lui-même)
- .fnt : format interne (propriétaire) des polices de caractères utilisées dans Enfusion
- .ttf : format source des polices de caractères
- .pre : paramètres de personnalisation du navigateur de ressources
- .st : table de chaines de caractères utilisées pour la régionalisation (localization) des textes du jeu
- .style : définition des styles pour les widgets (de l'atelier ou du jeu ou des deux ?)
Gestion des objets Enfusion
- .gproj : fichier de paramètres du projet (de jeu)
- .meta : information sur les assets source, dont le GUID de l'asset
- .rdb : fichier de cache des objets du jeu (créé automatiquement)
Les entités
Les entités sont des objets manipulables par le moteur de jeu. Arma Reforger fournit une grande quantité de classes d'entités. Une fois qu'une entité est créée via l'éditeur de monde, elle devient une instance de la classe d'entité en question. On ajoute des fonctionnalités et des caractéristiques à cette entité par l'ajout de composants. Une instance d'entité peut-être transformée en prefab, devenant ainsi un modèle complexe d'entité et de composants.
Les composants
Les composants sont des caractéristiques et fonctionnalités de toute entité. Arma reforger fournit une très grande bibliothèque de composants.
Les prefabs
Les prefabs sont des assemblages d'objets du jeu : des entités avec des composants tels que des assets, des configurations, du code, etc. Un prefab peut assembler tout ce qui est nécessaire pour constituer un modèle d'objet de jeu complexe, “prêt à l'emploi”.
Les prefabs peuvent être assemblés (imbriqués) entre eux pour former des prefabs plus complexes.
Les prefabs sont donc des modèles d'entités. Lorsqu'un prefab est glissé dans le monde via l'éditeur de monde, une instance de ce modèle est automatiquement créée.