Anleitungen / Bauen & Ressourcen
Ein Bedrock-Skinpaket besteht aus vier Dateien, und zwei seiner Fehlerquellen sind stumm
Zwei UUIDs, die sich unterscheiden müssen, eine lang-Datei, die nicht optional ist, und Skin-Schlüssel, die Satzzeichen entfernen — so werden „My Skin!" und „My Skin?" zu einem einzigen Skin, ohne Fehlermeldung.
Ein .mcpack ist eine ZIP-Datei mit einer anderen Endung, und ein Skinpaket darin braucht genau vier Arten von Dateien:
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
Drei der vier sind leicht richtig hinzubekommen. Die interessanten Fehler entstehen alle aus der Beziehung zwischen ihnen.
Die beiden UUIDs müssen sich unterscheiden
manifest.json trägt eine UUID in seinem header und eine weitere in seinem skin_pack-Modul:
{
"format_version": 1,
"header": { "name": "…", "uuid": "…", "version": [1, 0, 0] },
"modules": [ { "type": "skin_pack", "uuid": "…", "version": [1, 0, 0] } ]
}
Es sind zwei getrennte Identitäten — das Paket und das, was sich im Paket befindet — und denselben Wert für beide zu verwenden, ist ein echter Fehler, auch wenn beim Erstellen nichts gemeckert wird.
Es gibt eine zweite, subtilere Konsequenz: Ein erneuter Import mit denselben UUIDs wird als dasselbe Paket behandelt, und Minecraft behält stillschweigend die Kopie, die es bereits hat. Ein Paket zu bearbeiten, es mit denselben Bezeichnern neu zu erstellen und erneut zu importieren, sieht aus, als hätte es nichts bewirkt. Jeder Build von dieser Seite bekommt genau aus diesem Grund frische UUIDs, weshalb auch das erneute Importieren eines bearbeiteten Pakets einen frischen Download erfordert statt eines erneuten Zippens des alten.
Die lang-Datei ist nicht optional
skins.json enthält niemals einen Anzeigenamen. Sie enthält einen Schlüssel, und texts/en_US.lang ordnet diesen Schlüssel einem Text zu:
skinpack.<PackKey>=My Pack
skin.<PackKey>.<SkinKey>=My First Skin
Liefert man das Paket ohne die lang-Datei aus, gibt es keinen Fehler — jeder Skin erscheint im Spiel einfach unter seinem rohen Schlüssel. Das ist der häufigste Grund, warum ein von Hand zusammengestelltes Paket kaputt aussieht, während es einwandfrei validiert.
Schlüssel entfernen Satzzeichen, und Duplikate fallen zusammen
Ein Schlüssel muss alphanumerisch sein. Alles andere wird entfernt:
| dein Name | Schlüssel |
|---|---|
My Skin! | MySkin |
My Skin? | MySkin |
Skin #2 | Skin2 |
!!! | Skin1 (Fallback, nach Position) |
Die ersten beiden Zeilen sind die Falle. Zwei von einem Menschen deutlich unterschiedlich benannte Skins werden zu einem Schlüssel, und ein doppelter Schlüssel führt nicht zu einem Fehler — er fällt stillschweigend zu einem einzigen Skin im Spiel zusammen. Du lädst zwölf Skins hoch, bekommst elf, und nichts sagt dir, welcher fehlt.
Der Builder hier wehrt sich dagegen, indem er an jeden bereits verwendeten Schlüssel einen Zähler anhängt, sodass der zweite MySkin zu MySkin2 wird. Wissenswert, wenn man ein Paket von Hand zusammenstellt: Die Prüfung, die man braucht, gilt für die bereinigten Namen, nicht für die, die man eingegeben hat.
Ein Name, der ausschließlich aus Satzzeichen besteht, lässt gar nichts übrig, also fällt er auf Skin plus seine Position in der Liste zurück.
Slim braucht den richtigen Geometrie-String
Jeder Eintrag benennt ein Modell, und es gibt zwei:
geometry.humanoid.custom— klassisch, 4 Pixel breite Armegeometry.humanoid.customSlim— slim, 3 Pixel breite Arme
Das falsch zu machen, ist die übliche Ursache dafür, dass ein Skin mit Alex-Proportionen mit Steves klobigen Armen auftaucht. Die Textur ist in Ordnung; das Modell ist das, das angefordert wird. Der Paket-Builder errät es aus den beiden Spalten, die ein schlanker Arm leer lässt (x 54–55), und lässt dich es pro Eintrag korrigieren, aber ein von Hand geschriebenes skins.json muss es explizit angeben, und die beiden Strings unterscheiden sich am Ende um vier Zeichen.
Einträge tragen außerdem "type": "free", und ein Umhang ist ein optionales zusätzliches PNG, auf das aus demselben Eintrag verwiesen wird — der Umhang reist im Skinpaket mit statt als separater Download.