Model slim atau klasik ditentukan oleh 24 piksel, dan Anda bisa melihat piksel mana saja
Sebuah skin disebut slim jika kurang dari 6 dari 24 piksel pada (46,20)–(47,31) buram. Ditambah peta UV lengkap, mengapa skin 64×32 lama dicerminkan, dan mengapa skin 128×128 Batu Dasar tidak akan pernah dimuat di Java.
Tidak ada dalam PNG skin yang mengatakan "slim". Tidak ada tanda, tidak ada metadata, dan tidak ada konvensi nama file — model disimpulkan dari gambar itu sendiri, dengan melihat persegi panjang 2 × 12 tertentu dan menghitung berapa banyak pikselnya yang benar-benar ada.
Uji coba
sample x 46–47, y 20–31 — 2 wide, 12 tall = 24 pixels
count pixels with alpha > 0
slim if fewer than 6 are opaque
Lengan klasik lebarnya 4 piksel; lengan slim lebarnya 3. Oleh karena itu, skin slim membiarkan kolom lengan keempat kosong, dan kolom itulah yang menjadi tempat sampel. Dua puluh empat piksel menentukan model mana yang dikenakan karakter Anda.
Ambang batasnya adalah 6 dari 24, bukan 1 — seperempat kolom harus terisi sebelum dihitung sebagai klasik. Toleransi itu penting: skin slim dengan beberapa piksel Tualang di kolom kosong masih terbaca sebagai slim, yang memang Anda inginkan, karena piksel Tualang itu hampir selalu merupakan kesalahan pengeditan daripada kesengajaan.
Ini juga berarti mode kegagalannya senyap. Jika Anda menggambar skin klasik tetapi hanya sedikit menggunakan kolom keempat — garis tipis, beberapa piksel bayangan — Anda bisa berada di bawah 6 dan secara otomatis terdeteksi sebagai slim, kehilangan satu piksel lebar lengan tanpa ada penjelasan mengapa. Jika skin keluar dengan model yang salah, kolom itulah tempat untuk mencari.
Peta UV, secara lengkap
Setiap bagian dari skin adalah persegi panjang tetap, dan masing-masing memiliki lapisan overlay di tempat lain pada lembaran:
| bagian | dasar | overlay | offset | ukuran |
|---|---|---|---|---|
| kepala | (8, 8) | topi (40, 8) | 32 ke kanan | 8 × 8 |
| badan | (20, 20) | jaket (20, 36) | 16 ke bawah | 8 × 12 |
| lengan kanan | (44, 20) | lengan baju (44, 36) | 16 ke bawah | 4 × 12 |
| kaki kanan | (4, 20) | celana (4, 36) | 16 ke bawah | 4 × 12 |
| lengan kiri | (36, 52) | lengan baju (52, 52) | 16 ke kanan | 4 × 12 |
| kaki kiri | (20, 52) | celana (4, 52) | 16 ke kiri | 4 × 12 |
Lima dari enam overlay berada tepat 16 piksel dari dasarnya — tetapi tidak dalam arah yang sama. Tiga bagian asli bergerak 16 ke bawah. Lengan kiri dan kaki kiri, yang ditambahkan kemudian dan diperas ke bagian bawah di mana tidak ada ruang di bawahnya, bergerak 16 ke samping sebagai gantinya — dan dalam arah yang berlawanan satu sama lain.
Topi adalah satu-satunya yang tidak berjarak 16 sama sekali: ia 32 ke kanan, pada baris yang sama dengan kepala.
Jadi "overlay berada di bawah dasar" adalah aturan yang berlaku untuk tepat setengah lembaran. Menyalin persegi panjang dasar dan menggesernya ke bawah untuk menemukan overlay-nya berfungsi untuk badan, lengan kanan, dan kaki kanan, dan secara diam-diam mendarat di bagian yang salah untuk tiga lainnya.
Pada skin slim, setiap persegi panjang lengan selebar 4 dibaca sebagai selebar 3 sebagai gantinya. Persegi panjang tidak bergerak; hanya lebar yang dibaca darinya yang berubah.
Warisan 64 × 32 tidak memiliki sisi kiri sama sekali
Skin pra-1.8 adalah 64 × 32 — bagian bawah lembaran tidak ada, di mana lengan kiri dan kaki kiri berada. Tidak ada yang bisa digambar dari sana.
Perbaikannya adalah pencerminan: kaki kanan (0, 16) disalin ke (16, 48) dan lengan kanan (40, 16) ke (32, 48), keduanya dibalik secara horizontal. Itulah mengapa skin lama sangat simetris dan skin modern tidak harus demikian — asimetri adalah satu-satunya hal yang tidak dapat diungkapkan oleh format 64 × 32, dan setiap skin lama yang Anda konversi akan dikenakan simetri apakah ia mau atau tidak.
Batu Dasar 128 × 128 adalah format yang berbeda, bukan yang lebih besar
Java menerima 64 × 64 atau warisan 64 × 32. Batu Dasar menerima 128 × 128 dan tidak ada yang lain. Penampil dari kedua edisi tidak dapat menampilkan file yang lain — ini bukan perbedaan resolusi yang dapat diskalakan, ini adalah tata letak UV yang berbeda dengan ukuran yang berbeda.
Itu adalah batasan keras daripada ketidaknyamanan. Skin Java tidak "meningkatkan skala" ke Batu Dasar, dan skin Batu Dasar yang dimuat ke penampil Java tidak dirender dengan ukuran setengah — ia ditolak. Editor di halaman ini memperlakukan keduanya sebagai build terpisah karena alasan itu.