MC Toolkit

Panduan / Bangunan & Sumber Daya

Paket skin Bedrock itu empat berkas, dan dua mode kegagalannya senyap

Dua UUID yang harus berbeda, berkas lang yang bukan opsional, dan kunci skin yang membuang tanda baca — jadi 'My Skin!' dan 'My Skin?' menjadi satu skin tanpa galat.

.mcpack adalah zip dengan ekstensi berbeda, dan paket skin di dalamnya memerlukan tepat empat jenis berkas:

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

Tiga dari empat mudah dilakukan dengan benar. Kegagalan yang menarik justru muncul dari hubungan di antara mereka.

Kedua UUID harus berbeda

manifest.json membawa UUID di header-nya dan satu lagi di modul skin_pack-nya:

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

Keduanya adalah dua identitas terpisah — paketnya, dan isi di dalam paket — dan memakai satu nilai untuk keduanya adalah galat nyata meskipun tidak ada yang mengeluh saat proses build.

Ada konsekuensi kedua yang lebih halus: impor ulang dengan UUID yang sama dianggap sebagai paket yang sama, dan Minecraft diam-diam mempertahankan salinan yang sudah dimilikinya. Menyunting paket, membangunnya ulang dengan pengenal yang sama, lalu mengimpor ulang akan terlihat seperti tidak terjadi apa-apa. Setiap build dari halaman ini mendapatkan UUID baru justru karena alasan itu, yang juga menjadi sebab mengapa mengimpor ulang paket yang telah disunting memerlukan unduhan baru alih-alih zip ulang dari yang lama.

Berkas lang bukan opsional

skins.json tidak pernah berisi nama tampilan. Ia berisi kunci, dan texts/en_US.lang memetakan kunci itu ke teks:

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

Kirimkan paket tanpa berkas lang dan tidak ada galat — setiap skin hanya muncul di dalam game dengan kunci mentahnya. Inilah alasan paling umum sebuah paket yang dirakit manual terlihat rusak padahal validasinya baik-baik saja.

Kunci membuang tanda baca, dan duplikat menyatu

Kunci harus alfanumerik. Segala hal lainnya dihapus:

namamukunci
My Skin!MySkin
My Skin?MySkin
Skin #2Skin2
!!!Skin1 (fallback, berdasarkan posisi)

Dua baris pertama adalah jebakannya. Dua skin yang dinamai berbeda oleh manusia menjadi satu kunci, dan kunci duplikat tidak menghasilkan galat — ia diam-diam menyatu menjadi satu skin di dalam game. Kamu mengunggah dua belas skin, mendapat sebelas, dan tidak ada yang memberi tahu skin mana yang hilang.

Pembangun di sini mencegahnya dengan menambahkan penghitung ke kunci apa pun yang sudah dipakai, sehingga MySkin kedua menjadi MySkin2. Perlu diketahui jika kamu merakit paket secara manual: pemeriksaan yang kamu butuhkan ada pada nama yang sudah dibuang tanda bacanya, bukan pada nama yang kamu ketikkan.

Nama yang seluruhnya berupa tanda baca tidak menyisakan apa pun, sehingga ia jatuh ke Skin ditambah posisinya dalam daftar.

Slim memerlukan string geometri yang tepat

Setiap entri menyebutkan sebuah model, dan ada dua:

  • geometry.humanoid.custom — klasik, lengan 4 piksel
  • geometry.humanoid.customSlim — slim, lengan 3 piksel

Kesalahan di sini adalah penyebab umum skin berproporsi Alex muncul dengan lengan kotak milik Steve. Teksturnya baik-baik saja; modelnya yang salah diminta. Pembangun paket menebaknya dari dua kolom yang dibiarkan kosong oleh lengan slim (x 54–55) dan membiarkanmu mengoreksinya per entri, tetapi skins.json yang ditulis manual harus menyebutkannya secara eksplisit, dan kedua string itu berbeda empat karakter di bagian akhir.

Entri juga membawa "type": "free", dan cape adalah PNG tambahan opsional yang dirujuk dari entri yang sama — cape ikut di dalam paket skin, bukan sebagai unduhan terpisah.

Pembuat paket skin →

Panduan lainnya

Lihat semua →