Guides / Commands & Data

L'extension ne révèle pas le format du schéma — 31 fichiers .schematic sur 33 étaient des suppositions erronées

Cinq formats, quatre manières différentes de compresser les blocs, et l'extension .schematic est partagée par deux d'entre eux. Examiner la racine NBT est plus fiable que de se fier au nom de fichier, preuves à l'appui.

Il existe cinq formats de schémas en circulation, et l'extension de fichier est plus une indication qu'une certitude. Le visualiseur ici décide du format d'un fichier en l'examinant de l'intérieur, et il y a une raison mesurable à cela.

Cinq formats, cinq extensions

extensionformat
.nbtstructure vanilla
.schemÉponge
.schematicÉponge — par défaut
.litematicLitematica
.mcstructureBedrock

La ligne problématique est .schematic. Cette extension est partagée par le format MCEdit classique et celui de l'Éponge, et les fichiers sont renommés par des personnes qui ne savent pas ou ne s'en soucient pas.

Compté sur un corpus réel : sur 33 fichiers .schematic, 31 étaient MCEdit, un était une structure vanilla et un était un Litematica. La supposition par défaut de l'extension est donc erronée pour presque tous, et deux fichiers n'étaient pas .schematic dans aucun sens — juste mal nommés.

La solution consiste à examiner la racine NBT et à laisser ce que le fichier est l'emporter sur son nom :

  • une clé Regions → Litematica
  • palette et blocks → structure vanilla
  • sinon, le test de forme MCEdit, puis retour à l'extension

Quatre façons de compresser les mêmes blocs

Les formats ne diffèrent pas esthétiquement. Chacun stocke les données de bloc d'une manière réellement différente, et chaque choix a une conséquence :

Vanilla .nbt — une liste éparse. Une entrée par bloc placé, chacune nommant un index de palette. L'air est simplement absent, donc une construction creuse est peu coûteuse.

Éponge .schem — un flux de varint. Les index de palette sont compressés sous forme d'entiers à largeur variable : sept bits de charge utile par octet, le bit de poids fort étant défini pour continuer. Les petites palettes coûtent un octet par bloc ; une palette de plus de 127 entrées commence à en coûter deux pour les index élevés. Dense, mais auto-descriptif.

MCEdit .schematic — un tableau d'octets plat. Un octet par bloc, donc 256 types de blocs maximum — c'est exactement pourquoi il a besoin d'un tableau auxiliaire AddBlocks compressant un neuvième bit sous forme de nibble par bloc. Il s'agit d'un format d'ID numérique hérité d'avant les états de bloc, et ses ID sont résolus via un composé SchematicaMapping plutôt que par des noms.

Litematica .litematic — longs compressés par bits. Les index sont compressés à exactement max(2, bits needed for the palette) bits chacun, LSB-first, et une entrée peut chevaucher la limite entre deux longs. Une palette de 5 entrées utilise 3 bits par bloc ; une de 300 entrées en utilise 9.

Le seuil de 2 bits est important : même une palette de deux blocs ne se compresse pas en dessous de 2 bits par entrée, donc une construction monochrome n'est pas aussi petite que les calculs le suggèrent.

Bedrock est en little-endian

.mcstructure est l'exception à un niveau inférieur : Bedrock écrit le NBT en little-endian là où tous les formats Java écrivent en big-endian. Cela est décidé avant toute analyse de format — lisez les octets avec la mauvaise endianness et vous n'obtenez pas une structure erronée, vous obtenez des données illisibles qui échouent complètement à l'analyse.

Ce que cela signifie concrètement

Si un schéma ne s'ouvre pas quelque part, la première question n'est pas "le fichier est-il corrompu" mais "ce fichier est-il ce que son nom indique". Un .schematic provenant d'une page de téléchargement est beaucoup plus susceptible d'être MCEdit que Éponge, et un outil qui fait confiance à l'extension rejettera un fichier parfaitement valide.

Et lorsque l'on compare deux exportations de la même construction, les différences de taille concernent principalement l'encodage plutôt que le contenu — un .nbt vanilla éparse d'une construction creuse et un .litematic compressé par bits de la même chose résolvent des problèmes différents.

Visionneuse 3D de schémas →

More guides

Browse all →

Vous cherchez d'autres outils Minecraft ?

Une collection de générateurs, visionneuses et convertisseurs qui tournent dans le navigateur — tous gratuits.