Qu'est-ce que le format de fichier XNB ?
.xnb est un fichier binaire compilé qui stocke une ressource de jeu unique produite par le pipeline de contenu de XNA Game Studio. .xnb est un format binaire et peut contenir des images, des données audio, des modèles 3D, des polices et de nombreuses autres ressources. Les ressources sources telles que les textures .png ou les clips audio .wav sont compilées au moment de la construction en fichiers .xnb optimisés pour la plateforme, que le jeu charge au moment de l'exécution via Content.Load<T>().
Chaque fichier .xnb commence par la balise ASCII XNB, suivie d'un octet de plateforme cible (w pour Windows, x pour Xbox 360, m pour Windows Phone) et d'un octet de version de format. Un indicateur de compression optionnel LZX ou LZ4 est encodé dans ce même en-tête.
XNA est un ensemble d'outils de développement pour créer des jeux pour Microsoft Windows, Windows Phone et les systèmes Xbox. L'environnement de développement XNA était basé sur Visual Studio Express et était disponible gratuitement, offrant un riche ensemble d'outils et de fonctionnalités pour les développeurs de jeux. Microsoft a arrêté XNA avec la version 4.0 en 2010, mettant fin au support vers 2014. Les frameworks open-source MonoGame et FNA continuent de lire et d'écrire le même format .xnb, le maintenant pertinent pour des titres comme *Terraria*, *Stardew Valley* et *Celeste*, qui livrent leurs graphismes et leur audio sous forme de fichiers .xnb.
Des outils tiers, notamment xnbcli et XnbExtract, peuvent décompresser le contenu .xnb en ressources sources éditables. Les fichiers de banque audio XNA associés utilisent les extensions .xsb et .xwb.
Sécurité et sûreté
RISQUE : LOWUn XNB est une donnée de jeu compilée inerte - une texture, un son ou une table de données - sans contenu scripté ou exécutable, donc l'ouvrir ou l'extraire n'est pas dangereux en soi. Deux précautions pratiques : l'extraction ou la redistribution des ressources d'un jeu est régie par le droit d'auteur/CLUF de ce jeu (acceptable pour les mods personnels, pas pour la redistribution), et vous devriez télécharger les outils XNB depuis leurs dépôts officiels (GitHub) plutôt que sur des sites de « visionneuse xnb » aléatoires, qui sont souvent des pièges à publicités/PUP puisqu'il n'existe aucune visionneuse autonome légitime par double-clic.
Détails du format
en brefProgrammes qui ouvrent les fichiers XNB
Détails techniques
spécifications approfondies| Encodage du fichier | Binaire, ordre des octets little-endian |
| Octets magiques | 0x58 0x4E 0x42 (ASCII « XNB ») à l'offset 0 |
| Structure de l'en-tête | Tag ASCII de 3 octets « XNB » + code plateforme de 1 octet + version de format de 1 octet + drapeaux de 1 octet + taille totale du fichier de 4 octets (uint32 little-endian) |
| Codes de plateforme | « w » (0x77) = Windows, « x » (0x78) = Xbox 360, « m » (0x6D) = Windows Phone/Mobile - encodés dans l'octet 3 de chaque en-tête |
| Version du format | Versions 1 à 5 ; la version 5 correspond à XNA Game Studio 4.0 et est la version ciblée par MonoGame et FNA |
| Compression | Optionnelle - LZX (XNA 4.0) ou LZ4 (certaines builds MonoGame) ; signalée par un bit d'indicateur dans l'octet de drapeaux de l'en-tête ; la charge utile est souvent stockée sans compression |
| Types de contenu supportés | Textures (DXT1/DXT3/DXT5/Color RGBA), audio (PCM/ADPCM), modèles 3D, polices bitmap, shaders d'effets compilés, feuilles de sprites |
| Manifeste du lecteur de type | L'en-tête intègre une liste sérialisée de noms de classes ContentTypeReader que le moteur utilise pour désérialiser le graphe d'objets de la ressource |
| Ressources par fichier | Une ressource principale par fichier .xnb ; les sous-ressources partagées sont imbriquées dans le graphe d'objets sérialisé du même fichier |
| Formats de surface de texture | Color (RGBA 32 bits), DXT1 (opaque compressé par bloc 4:1), DXT3, DXT5 - formats natifs du GPU qui réduisent l'empreinte VRAM au moment du chargement |
| Taille de fichier typique | Quelques Ko pour les petites polices ou sprites ; jusqu'à des dizaines de Mo pour les textures haute résolution ou les pistes audio non compressées |
| Vérification d'intégrité | Taille totale du fichier stockée sous forme de champ little-endian de 4 octets dans l'en-tête pour une validation de base ; aucune somme de contrôle ou hachage cryptographique n'est inclus |
| Chiffrement | Non chiffré - les ressources compilées sont stockées sous forme de données binaires brutes lisibles par toute implémentation fournissant le bon ContentTypeReader |
| Type MIME | application/octet-stream (aucun type MIME dédié enregistré pour .xnb) |
| Rôle du Pipeline de Contenu | Sortie d'exécution du Pipeline de Contenu XNA/MonoGame - les fichiers sources (.png, .wav, .fbx, .spritefont) sont compilés au moment de la construction en .xnb et chargés à l'exécution via Content.Load<T>() |
| Adopteurs notables | MonoGame et FNA (successeurs open-source de XNA) ; utilisé pour livrer les ressources dans Terraria, Stardew Valley, Bastion, Fez et Celeste |
| Publié | 2006 (XNA Game Studio Express / XNA Framework 1.0) |
| Dernière version | XNB format 5 (XNA Game Studio 4.0, 2010); same format reused by MonoGame/FNA |
| Spécification | en.wikipedia.org |
Conversions XNB
Q&R de la communauté
posées par les utilisateursPas encore de questions - soyez le premier à poser une question sur les fichiers XNB.