MC Toolkit

Guías / Construcción y recursos

Un paquete de skins de Bedrock son cuatro archivos, y dos de sus fallos son silenciosos

Dos UUID que deben ser distintos, un archivo lang que no es opcional y claves de skin que eliminan la puntuación: así, 'My Skin!' y 'My Skin?' se convierten en una sola skin sin ningún error.

Un .mcpack es un zip con otra extensión, y un paquete de skins dentro de él necesita exactamente cuatro tipos de archivo:

manifest.json      a header and a skin_pack module, each with its own UUID
skins.json         one entry per skin: texture, geometry, and a KEY
texts/en_US.lang   the display names — skins.json holds only keys
*.png              the textures themselves

Tres de los cuatro son fáciles de hacer bien. Los fallos interesantes surgen todos de la relación entre ellos.

Los dos UUID deben ser distintos

manifest.json lleva un UUID en su header y otro en su módulo skin_pack:

{
  "format_version": 1,
  "header":  { "name": "…", "uuid": "…", "version": [1, 0, 0] },
  "modules": [ { "type": "skin_pack", "uuid": "…", "version": [1, 0, 0] } ]
}

Son dos identidades separadas —el paquete y lo que hay dentro del paquete— y reutilizar un mismo valor para ambas es un error real, aunque nada se queje al compilar.

Hay una segunda consecuencia más sutil: una reimportación con los mismos UUID se trata como el mismo paquete, y Minecraft conserva en silencio la copia que ya tiene. Editar un paquete, recompilarlo con los mismos identificadores y reimportarlo parece no haber hecho nada. Cada compilación de esta página obtiene UUID nuevos precisamente por eso, y por eso también reimportar un paquete editado requiere una descarga nueva en lugar de volver a comprimir el antiguo.

El archivo lang no es opcional

skins.json nunca contiene un nombre visible. Contiene una clave, y texts/en_US.lang asigna esa clave a un texto:

skinpack.<PackKey>=My Pack
skin.<PackKey>.<SkinKey>=My First Skin

Distribuye el paquete sin el archivo lang y no dará ningún error: cada skin simplemente aparecerá en el juego bajo su clave sin procesar. Esta es la razón más común de que un paquete montado a mano parezca roto mientras valida sin problemas.

Las claves eliminan la puntuación y los duplicados se colapsan

Una clave debe ser alfanumérica. Todo lo demás se elimina:

tu nombreclave
My Skin!MySkin
My Skin?MySkin
Skin #2Skin2
!!!Skin1 (respaldo, por posición)

Las dos primeras filas son la trampa. Dos skins con nombres claramente distintos para una persona se convierten en una sola clave, y una clave duplicada no da error: se colapsa en silencio en una única skin dentro del juego. Subes doce skins, obtienes once, y nada te dice cuál se perdió.

El generador de aquí se protege contra eso añadiendo un contador a cualquier clave que ya haya usado, de modo que el segundo MySkin se convierte en MySkin2. Vale la pena saberlo si montas un paquete a mano: la comprobación que necesitas es sobre los nombres sin procesar, no sobre los que escribiste.

Un nombre que sea todo puntuación no deja nada, así que recurre a Skin más su posición en la lista.

Slim necesita la cadena de geometría correcta

Cada entrada nombra un modelo, y hay dos:

  • geometry.humanoid.custom — clásico, brazos de 4 píxeles
  • geometry.humanoid.customSlim — slim, brazos de 3 píxeles

Equivocarse aquí es la causa habitual de que una skin con proporciones de Alex aparezca con los brazos cuadrados de Steve. La textura está bien; el modelo es el que se está pidiendo. El generador de paquetes lo deduce a partir de las dos columnas que deja vacías un brazo slim (x 54–55) y te permite corregirlo por entrada, pero un skins.json escrito a mano tiene que indicarlo explícitamente, y las dos cadenas difieren en cuatro caracteres al final.

Las entradas también llevan "type": "free", y una capa es un PNG adicional opcional al que se hace referencia desde la misma entrada: la capa viaja dentro del paquete de skins en lugar de como una descarga aparte.

Creador de packs de skins →

Más guías

Ver todas →