Los cuadros y discos personalizados necesitan dos paquetes, y la instalación de uno solo suele ser el problema
El paquete de datos registra el contenido; el paquete de recursos proporciona la textura y el sonido. Solo el paquete de datos lo registra, pero no hay nada que mostrar. Además, el límite de 4x4 y por qué la duración del disco no es solo estética.
Los cuadros y los discos de música son registros reales en la versión moderna de Java, lo que significa que puedes añadirlos en lugar de reemplazar los predeterminados. Nada de lo que añadas desplazará un cuadro o disco existente.
El problema es que el contenido se divide en dos tipos de paquetes diferentes, y cada uno es inútil por sí solo.
Qué va dónde
El paquete de datos registra el elemento:
data/<ns>/painting_variant/<id>.json asset_id, width, height, title, author
data/<ns>/jukebox_song/<id>.json sound_event, description, length, comparator
El paquete de recursos proporciona lo que ves y oyes:
assets/<ns>/textures/painting/<id>.png
assets/<ns>/sounds/<id>.ogg
assets/<ns>/sounds.json
Si instalas solo el paquete de datos, el contenido se registra correctamente (existe, /give lo encuentra), pero simplemente no hay textura ni audio. Este resultado es mucho más confuso que un fallo rotundo, y es la razón habitual por la que un cuadro personalizado "no funciona". La herramienta de esta página envía ambos en un solo archivo zip específicamente para que no puedan separarse.
Observa los dos archivos pack.mcmeta. Son paquetes separados con identidades separadas; no existe un formato combinado que contenga ambos.
Los ID de registro son más estrictos que los nombres de archivo
Un ID solo puede contener a-z, 0-9, _, . y -. Cualquier otra cosa y el paquete no se carga, no solo la entrada rota, sino todo el paquete. Las letras mayúsculas y los espacios son los dos elementos que suelen causar problemas, porque ambos son perfectamente normales en el nombre de archivo que arrastraste.
Cuadros: de 1x1 a 4x4
Los tamaños predeterminados van desde 1 × 1 hasta 4 × 4 bloques, lo que da dieciséis formas posibles. Una variante fuera de ese rango se renderizará (el juego no la rechaza), pero no se podrá colgar en una pared del tamaño que los jugadores esperan, por lo que es prácticamente imposible de colocar en una construcción normal.
El tamaño se declara en el JSON como width y height, en bloques. No se infiere del PNG, por lo que un cuadro de 3 × 1 cuya textura es cuadrada es un archivo válido que se muestra estirado.
La duración del disco no es una etiqueta
length_in_seconds controla dos cosas: la sincronización del Tocadiscos (Jukebox) y la rampa del comparador (comparator ramp): la señal que un comparador lee de un Tocadiscos en reproducción aumenta a lo largo de la duración declarada de la pista.
Por lo tanto, una duración inexacta no es un error estético. Si declaras una pista de 200 segundos como 100, el comparador termina su rampa a la mitad, lo que rompe silenciosamente cualquier mecanismo de redstone que dependa del final del disco. Esta herramienta lee la duración real del archivo en lugar de pedirte que la escribas, precisamente por esa razón.
Las pistas también se escriben con "stream": true en sounds.json. La música es larga, y cargar una pista completa en la memoria antes de reproducirla provoca tartamudeos; la transmisión (streaming) es la opción correcta para cualquier cosa con duración de disco, y la incorrecta para un efecto de sonido corto.