Da gầy hay da cổ điển được quyết định bởi 24 pixel, và bạn có thể thấy chính xác đó là những pixel nào
Một skin được coi là gầy nếu ít hơn 6 trong số 24 pixel tại (46,20)–(47,31) là mờ đục. Kèm theo bản đồ UV đầy đủ, lý do tại sao skin 64×32 cũ bị phản chiếu, và tại sao skin 128×128 của Đá nền sẽ không bao giờ tải được trong Java.
Không có gì trong một tệp PNG skin nói rằng "gầy". Không có cờ, không có siêu dữ liệu và không có quy ước đặt tên tệp — mô hình được suy ra từ chính hình ảnh, bằng cách nhìn vào một hình chữ nhật 2 × 12 cụ thể và đếm xem có bao nhiêu pixel của nó thực sự tồn tại.
Bài kiểm tra
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
Cánh tay cổ điển rộng 4 pixel; cánh tay gầy rộng 3 pixel. Do đó, một skin gầy sẽ để cột cánh tay thứ tư trống, và cột đó là nơi mẫu nằm. Hai mươi bốn pixel quyết định mô hình nhân vật của bạn sẽ mặc.
Ngưỡng là 6 trên 24, không phải 1 — một phần tư cột phải được lấp đầy trước khi nó được tính là cổ điển. Sự dung sai đó rất quan trọng: một skin gầy với một vài pixel lạc trong cột trống vẫn được đọc là gầy, đó là điều bạn muốn, bởi vì những pixel lạc đó hầu như luôn là một tai nạn chỉnh sửa chứ không phải là một ý định.
Điều đó cũng có nghĩa là chế độ lỗi sẽ im lặng. Nếu bạn vẽ một skin cổ điển nhưng chỉ sử dụng nhẹ cột thứ tư — một đường viền mỏng, một vài pixel tô bóng — bạn có thể nằm dưới 6 và được tự động phát hiện là gầy, mất một pixel chiều rộng cánh tay mà không có gì giải thích tại sao. Nếu một skin ra sai mô hình, cột đó là nơi để tìm.
Bản đồ UV, đầy đủ
Mỗi phần của skin là một hình chữ nhật cố định, và mỗi phần có một lớp phủ ở một nơi khác trên tấm:
| phần | cơ sở | lớp phủ | độ lệch | kích thước |
|---|---|---|---|---|
| đầu | (8, 8) | mũ (40, 8) | 32 sang phải | 8 × 8 |
| thân | (20, 20) | áo khoác (20, 36) | 16 xuống | 8 × 12 |
| tay phải | (44, 20) | ống tay (44, 36) | 16 xuống | 4 × 12 |
| chân phải | (4, 20) | quần (4, 36) | 16 xuống | 4 × 12 |
| tay trái | (36, 52) | ống tay (52, 52) | 16 sang phải | 4 × 12 |
| chân trái | (20, 52) | quần (4, 52) | 16 sang trái | 4 × 12 |
Năm trong số sáu lớp phủ nằm chính xác 16 pixel so với cơ sở của chúng — nhưng không theo cùng một hướng. Ba phần ban đầu đi 16 xuống. Cánh tay trái và chân trái, được thêm vào sau và ép vào nửa dưới nơi không có chỗ bên dưới chúng, thay vào đó đi 16 ngang — và theo các hướng ngược nhau so với nhau.
Mũ là cái duy nhất không cách 16 pixel: nó cách 32 sang phải, trên cùng hàng với đầu.
Vì vậy, "lớp phủ nằm dưới cơ sở" là một quy tắc chỉ đúng với chính xác một nửa tấm. Sao chép một hình chữ nhật cơ sở và dịch chuyển nó xuống dưới để tìm lớp phủ của nó hoạt động cho thân, tay phải và chân phải, và lặng lẽ rơi vào phần sai cho ba phần còn lại.
Trên một skin gầy, mỗi hình chữ nhật cánh tay rộng 4 pixel được đọc là rộng 3 pixel thay vào đó. Các hình chữ nhật không di chuyển; chỉ có chiều rộng được đọc từ chúng thay đổi.
Skin 64 × 32 cũ hoàn toàn không có mặt trái
Một skin trước 1.8 là 64 × 32 — nửa dưới của tấm đơn giản là không tồn tại, nơi cánh tay trái và chân trái nằm. Không có gì để vẽ chúng.
Cách khắc phục là phản chiếu: chân phải (0, 16) được sao chép sang (16, 48) và tay phải (40, 16) sang (32, 48), cả hai đều được lật ngang. Đó là lý do tại sao các skin cũ hoàn toàn đối xứng và các skin hiện đại không cần phải như vậy — bất đối xứng là điều duy nhất định dạng 64 × 32 không thể thể hiện, và bất kỳ skin cũ nào bạn chuyển đổi đều bị áp đặt tính đối xứng cho dù nó có muốn hay không.
Skin 128 × 128 của Đá nền là một định dạng khác, không phải là một định dạng lớn hơn
Java chấp nhận 64 × 64 hoặc 64 × 32 cũ. Đá nền chấp nhận 128 × 128 và không gì khác. Trình xem của cả hai phiên bản đều không thể hiển thị tệp của phiên bản kia — đây không phải là sự khác biệt về độ phân giải có thể thay đổi tỷ lệ, mà là một bố cục UV khác ở một kích thước khác.
Đó là một bức tường cứng rắn hơn là một sự bất tiện. Một skin Java không "nâng cấp" lên Đá nền, và một skin Đá nền được tải vào trình xem Java không hiển thị ở kích thước một nửa — nó bị từ chối. Trình chỉnh sửa trên trang này coi hai bản dựng là riêng biệt chính vì lý do đó.