Guides / Construction et ressources
Un pack de skins Bedrock, c'est quatre fichiers, et deux de ses modes de défaillance sont silencieux
Deux UUID qui doivent différer, un fichier de langue qui n'est pas optionnel, et des clés de skin qui suppriment la ponctuation — ainsi « My Skin! » et « My Skin? » deviennent un seul skin sans aucune erreur.
Un .mcpack est un zip avec une extension différente, et un pack de skins à l'intérieur de celui-ci a besoin d'exactement quatre types de fichiers :
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
Trois des quatre sont faciles à réussir. Les défaillances intéressantes viennent toutes de la relation entre eux.
Les deux UUID doivent différer
manifest.json porte un UUID dans son header et un autre dans son module skin_pack :
{
"format_version": 1,
"header": { "name": "…", "uuid": "…", "version": [1, 0, 0] },
"modules": [ { "type": "skin_pack", "uuid": "…", "version": [1, 0, 0] } ]
}
Ce sont deux identités distinctes — le pack, et la chose à l'intérieur du pack — et réutiliser une seule valeur pour les deux est une véritable erreur, même si rien ne se plaint au moment de la compilation.
Il y a une seconde conséquence, plus subtile : une réimportation avec les mêmes UUID est traitée comme le même pack, et Minecraft conserve silencieusement la copie qu'il possède déjà. Modifier un pack, le recompiler avec les mêmes identifiants et le réimporter donne l'impression que rien ne s'est passé. Chaque compilation issue de cette page obtient de nouveaux UUID pour exactement cette raison, ce qui explique aussi pourquoi réimporter un pack modifié nécessite un nouveau téléchargement plutôt qu'un simple re-zip de l'ancien.
Le fichier de langue n'est pas optionnel
skins.json ne contient jamais de nom d'affichage. Il contient une clé, et texts/en_US.lang associe cette clé à un texte :
skinpack.<PackKey>=My Pack
skin.<PackKey>.<SkinKey>=My First Skin
Livrez le pack sans le fichier de langue et rien ne plante — chaque skin apparaît simplement dans le jeu sous sa clé brute. C'est la raison la plus courante pour laquelle un pack assemblé à la main semble cassé alors qu'il se valide sans problème.
Les clés suppriment la ponctuation, et les doublons fusionnent
Une clé doit être alphanumérique. Tout le reste est retiré :
| votre nom | clé |
|---|---|
My Skin! | MySkin |
My Skin? | MySkin |
Skin #2 | Skin2 |
!!! | Skin1 (repli, selon la position) |
Les deux premières lignes sont le piège. Deux skins nommés distinctement par un humain deviennent une seule clé, et une clé en double ne provoque pas d'erreur — elle fusionne silencieusement en un seul skin dans le jeu. Vous téléversez douze skins, vous en obtenez onze, et rien ne vous dit lequel a disparu.
Le générateur présenté ici s'en protège en ajoutant un compteur à toute clé déjà utilisée, de sorte que le second MySkin devient MySkin2. Bon à savoir si vous assemblez un pack à la main : la vérification nécessaire porte sur les noms épurés, pas sur ceux que vous avez saisis.
Un nom entièrement composé de ponctuation ne laisse rien du tout, il retombe donc sur Skin suivi de sa position dans la liste.
Slim nécessite la bonne chaîne de géométrie
Chaque entrée nomme un modèle, et il en existe deux :
geometry.humanoid.custom— classique, bras de 4 pixelsgeometry.humanoid.customSlim— slim, bras de 3 pixels
Se tromper ici est la cause habituelle d'un skin aux proportions d'Alex qui se retrouve avec les bras cubiques de Steve. La texture est correcte ; c'est le modèle qui est demandé. Le générateur de pack le devine à partir des deux colonnes qu'un bras slim laisse vides (x 54–55) et vous permet de le corriger entrée par entrée, mais un skins.json écrit à la main doit le préciser explicitement, et les deux chaînes diffèrent de quatre caractères à la fin.
Les entrées portent aussi "type": "free", et une cape est un PNG supplémentaire optionnel référencé depuis la même entrée — la cape voyage à l'intérieur du pack de skins plutôt que comme un téléchargement séparé.