Guides / Commands & Data

La extensión no indica el formato del esquema: 31 de 33 archivos .schematic eran de otro tipo

Cinco formatos, cuatro formas diferentes de empaquetar bloques, y .schematic es compartido por dos de ellos. Olfatear la raíz NBT es mejor que confiar en el nombre del archivo, con pruebas contadas.

Hay cinco formatos de esquemas en circulación, y el nombre del archivo es una pista más que un hecho. El visor aquí decide qué es un archivo al mirar dentro de él, y hay una razón medida para ello.

Cinco formatos, cinco extensiones

extensiónformato
.nbtestructura vanilla
.schemEsponja
.schematicEsponja — por defecto
.litematicLitematica
.mcstructurePiedra base

La fila problemática es .schematic. Esa extensión es compartida por el formato clásico de MCEdit y el de Esponja, y los archivos son renombrados por personas que no saben o no les importa.

Contado en un corpus real: de 33 archivos .schematic, 31 eran de MCEdit, uno era una estructura vanilla y uno era de Litematica. Así que la suposición por defecto de la extensión es incorrecta para casi todos ellos, y dos archivos no eran .schematic en ningún sentido, simplemente estaban mal nombrados.

La solución es olfatear la raíz NBT y dejar que lo que el archivo es prevalezca sobre cómo se llama:

  • una clave Regions → Litematica
  • palette y blocks → estructura vanilla
  • de lo contrario, la prueba de forma de MCEdit, luego se recurre a la extensión

Cuatro formas de empaquetar los mismos bloques

Los formatos no difieren cosméticamente. Cada uno almacena los datos de los bloques de una manera genuinamente diferente, y cada elección tiene una consecuencia:

Estructura vanilla .nbt — una lista dispersa. Una entrada por bloque colocado, cada una nombrando un índice de paleta. El aire simplemente está ausente, por lo que una construcción hueca es barata.

Esquema de Esponja .schem — un flujo de varint. Índices de paleta empaquetados como enteros de ancho variable: siete bits de carga útil por byte, con el bit más significativo activado para continuar. Las paletas pequeñas cuestan un byte por bloque; una paleta de más de 127 entradas comienza a costar dos para los índices altos. Denso, pero autoexplicativo.

Esquema de MCEdit .schematic — un array de bytes plano. Un byte por bloque, por lo que 256 tipos de bloques como máximo, que es exactamente por qué necesita un array lateral AddBlocks que empaqueta un noveno bit como un nibble por bloque. Este es un formato de ID numérico heredado de antes de los estados de bloque, y sus ID se resuelven a través de un compuesto SchematicaMapping en lugar de ser nombres.

Esquema de Litematica .litematic — longs empaquetados por bits. Los índices se empaquetan exactamente max(2, bits needed for the palette) bits cada uno, LSB-first, y una entrada puede extenderse por el límite entre dos longs. Una paleta de 5 entradas usa 3 bits por bloque; una de 300 entradas usa 9.

El límite inferior de 2 bits importa: incluso una paleta de dos bloques no se comprime por debajo de 2 bits por entrada, por lo que una construcción monocromática no es tan pequeña como sugieren las matemáticas.

Piedra base es little-endian

.mcstructure es el caso atípico en un nivel inferior: Piedra base escribe NBT little-endian donde cada formato de Java escribe big-endian. Eso se decide antes de que ocurra cualquier análisis de formato: si lees los bytes con la endianness incorrecta, no obtendrás una estructura incorrecta, obtendrás basura que no se puede analizar en absoluto.

Qué significa esto en la práctica

Si un esquema no se abre en algún lugar, la primera pregunta no es "¿está el archivo corrupto?" sino "¿es este archivo lo que dice su nombre?". Un .schematic de una página de descarga es mucho más probable que sea de MCEdit que de Esponja, y una herramienta que confía en la extensión rechazará un archivo perfectamente bueno.

Y al comparar dos exportaciones de la misma construcción, las diferencias de tamaño se deben principalmente a la codificación más que al contenido: un .nbt vanilla disperso de una construcción hueca y un .litematic empaquetado por bits de lo mismo están resolviendo problemas diferentes.

Visor 3D de esquemas →

More guides

Browse all →

¿Buscas más herramientas de Minecraft?

Un conjunto de generadores, visores y conversores que funcionan en el navegador — todos gratis.