คู่มือ / การก่อสร้างและทรัพยากร
สลิมหรือคลาสสิก: เกมอ่านจากบัญชีของคุณ และเครื่องมือต้องเดาจาก 24 พิกเซล
เกมเลือกสลิมหรือคลาสสิกจากค่าสกินในบัญชีของคุณ ไม่ใช่จากไฟล์ PNG เครื่องมือที่ได้แค่ PNG เปล่า ๆ ต้องเดาจากสองคอลัมน์ที่แขนสลิมเว้นว่างไว้ พร้อมแผนที่ UV แบบเต็มและเหตุผลที่สกิน 64×32 แบบเก่าถูกมิเรอร์
ไม่มีอะไรในไฟล์ PNG ของสกินที่บอกว่า "สลิม" ไม่มีแฟล็กและไม่มีธรรมเนียมการตั้งชื่อไฟล์ — และเกมก็ไม่เคยดูที่พิกเซลเพื่อหาคำตอบ เกมรับโมเดลจากค่าที่ model ซึ่งบัญชีของคุณผูกไว้กับสกิน (ตัวเลือกที่คุณเลือกตอนอัปโหลด) และโปรไฟล์ที่ไม่มีสกินจะได้สกินเริ่มต้นหนึ่งใน 18 แบบ เป็นสลิม 9 แบบและคลาสสิก 9 แบบ โดยเลือกจาก UUID ของมัน
มีเพียงเครื่องมือที่ได้แค่ PNG เปล่า ๆ — โปรแกรมแก้ไข ตัวสร้างแพ็ก หรือโปรแกรมดู — เท่านั้นที่ต้องอนุมานโมเดล และมันทำโดยดูที่สี่เหลี่ยมขนาด 2 × 12 ที่เจาะจง แล้วนับว่ามีพิกเซลอยู่จริงกี่พิกเซล
การทดสอบ
sample x 54–55, y 20–31 — 2 wide, 12 tall = 24 pixels
count pixels with alpha > 0
slim if fewer than 6 are opaque
แขนคลาสสิกกว้าง 4 พิกเซล ส่วนแขนสลิมกว้าง 3 หน้าของแขนสลิมถูกจัดเรียงแคบลงหนึ่งพิกเซล ดังนั้นหน้าด้านข้างและหน้าด้านหลังจึงเลื่อนไปทางซ้าย และ สองคอลัมน์สุดท้ายของบล็อกแขน คือ x 54–55 ถูกเว้นว่างไว้ บนสกินเริ่มต้นของ Mojang เอง สี่เหลี่ยมนั้นมีค่า 0 จาก 24 ที่ทึบในสกินสลิมทั้งเก้าแบบ และ 24 จาก 24 ในสกินคลาสสิกทั้งเก้าแบบ — ยี่สิบสี่พิกเซลก็เพียงพอที่จะแยกได้
เกณฑ์คือ 6 จาก 24 ไม่ใช่ 1 — ต้องเติมหนึ่งในสี่ของคอลัมน์ก่อนจึงจะนับเป็นคลาสสิก ความคลาดเคลื่อนนี้สำคัญ: สกินสลิมที่มีพิกเซลแปลกปลอมไม่กี่พิกเซลในคอลัมน์ที่ตายแล้วก็ยังอ่านเป็นสลิม ซึ่งเป็นสิ่งที่คุณต้องการ เพราะพิกเซลแปลกปลอมเหล่านั้นแทบจะเป็นอุบัติเหตุจากการแก้ไขมากกว่าเจตนา
มันยังหมายความว่ารูปแบบความล้มเหลวนั้นเงียบ ถ้าคุณวาดสกินคลาสสิกแต่ใช้คอลัมน์เหล่านั้นเพียงเบา ๆ — เส้นขอบบาง ๆ พิกเซลแรเงาสองสามจุด — คุณอาจต่ำกว่า 6 และถูกตรวจจับอัตโนมัติเป็นสลิม เสียความกว้างแขนไปหนึ่งพิกเซลโดยไม่มีอะไรอธิบายว่าทำไม ถ้าสกินออกมาเป็นโมเดลผิดในเครื่องมือ คอลัมน์เหล่านั้นคือจุดที่ต้องดู — และในเกม ค่าที่บัญชีของคุณคือจุดนั้น
แผนที่ UV แบบเต็ม
ทุกส่วนของสกินเป็นสี่เหลี่ยมคงที่ และแต่ละส่วนมีเลเยอร์โอเวอร์เลย์อยู่ที่อื่นบนแผ่น:
| ส่วน | ฐาน | โอเวอร์เลย์ | ออฟเซต | ขนาด |
|---|---|---|---|---|
| หัว | (8, 8) | หมวก (40, 8) | 32 ไปทางขวา | 8 × 8 |
| ลำตัว | (20, 20) | แจ็กเก็ต (20, 36) | 16 ลง | 8 × 12 |
| แขนขวา | (44, 20) | แขนเสื้อ (44, 36) | 16 ลง | 4 × 12 |
| ขาขวา | (4, 20) | กางเกง (4, 36) | 16 ลง | 4 × 12 |
| แขนซ้าย | (36, 52) | แขนเสื้อ (52, 52) | 16 ไปทางขวา | 4 × 12 |
| ขาซ้าย | (20, 52) | กางเกง (4, 52) | 16 ไปทางซ้าย | 4 × 12 |
โอเวอร์เลย์ห้าในหกอันอยู่ห่างจากฐาน 16 พิกเซลพอดี — แต่ไม่ใช่ในทิศทางเดียวกัน สามส่วนดั้งเดิมไป 16 ลง ส่วนแขนซ้ายและขาซ้ายที่เพิ่มมาทีหลังและถูกยัดเข้าไปในครึ่งล่างซึ่งไม่มีที่ว่างด้านล่าง กลับไป 16 ทางด้านข้างแทน — และไปในทิศทาง ตรงข้าม กัน
หมวกเป็นอันเดียวที่ไม่ได้ห่าง 16 เลย: มันอยู่ 32 ไปทางขวา ในแถวเดียวกับหัว
ดังนั้น "โอเวอร์เลย์อยู่ใต้ฐาน" จึงเป็นกฎที่ใช้ได้กับแค่ครึ่งเดียวของแผ่น การคัดลอกสี่เหลี่ยมฐานแล้วเลื่อนลงเพื่อหาโอเวอร์เลย์ใช้ได้กับลำตัว แขนขวา และขาขวา แต่จะไปลงผิดส่วนแบบเงียบ ๆ สำหรับอีกสามส่วน
บนสกินสลิม สี่เหลี่ยมแขนกว้าง 4 ทุกอันจะถูกอ่านเป็น กว้าง 3 แทน หน้าด้านหน้าไม่ขยับ แต่ทุกอย่างหลังจากนั้นขยับ: หน้าด้านข้างและหน้าด้านหลังเริ่มเลื่อนไปทางซ้ายอีกหนึ่งพิกเซล และหน้าด้านหลังแคบลงหนึ่งพิกเซล ซึ่งเป็นสิ่งที่ทำให้ x 54–55 ว่าง
แบบเก่า 64 × 32 ไม่มีด้านซ้ายเลย
สกินก่อน 1.8 มีขนาด 64 × 32 — ครึ่งล่างของแผ่นไม่มีอยู่เลย ซึ่งเป็นที่อยู่ของแขนซ้ายและขาซ้าย ไม่มีอะไรให้วาดมันได้
วิธีแก้คือการมิเรอร์: ขาขวา (0, 16) ถูกคัดลอกไปที่ (16, 48) และแขนขวา (40, 16) ไปที่ (32, 48) ทั้งคู่พลิกแนวนอน นั่นคือเหตุผลที่สกินเก่ามีความสมมาตรสมบูรณ์แบบและสกินใหม่ไม่จำเป็นต้องเป็น — ความไม่สมมาตรเป็นสิ่งเดียวที่รูปแบบ 64 × 32 แสดงออกไม่ได้ และสกินเก่าทุกอันที่คุณแปลงจะถูกบังคับให้สมมาตรไม่ว่ามันจะต้องการหรือไม่
ไฟล์แก้ไข 128 × 128 คือเลย์เอาต์เดียวกัน ขนาดสองเท่า
Java ยอมรับ 64 × 64 หรือแบบเก่า 64 × 32 และปฏิเสธอย่างอื่น โปรแกรมแก้ไขสกิน Bedrock ของไซต์นี้ทำงานที่ 128 × 128 และไม่ยอมรับอย่างอื่น — แต่ไฟล์นั้นคือเลย์เอาต์ UV เดียวกันที่วาดด้วยความละเอียดสองเท่า ทุกส่วนอยู่ที่พิกัด Java สองเท่า ไม่ใช่รูปแบบที่ต่างออกไป
กำแพงอยู่ที่เครื่องมือ ไม่ใช่ที่เลย์เอาต์ ไปป์ไลน์เท็กซ์เจอร์ของโปรแกรมแก้ไขแต่ละบิลด์ถูกปรับขนาดตามตัวเลขของตัวเอง ดังนั้นทั้งคู่จะไม่เปิดไฟล์ของอีกฝ่าย และ PNG ขนาด 128 × 128 ที่ส่งให้ Java จะถูกปฏิเสธแทนที่จะแสดงที่ขนาดครึ่งหนึ่ง การแปลงคือการปรับขนาด 2× เชิงกลไก ซึ่งเป็นเหตุผลที่โปรแกรมแก้ไขสกินถือว่าทั้งสองเป็นบิลด์แยกกันมากกว่าจะเป็นผืนผ้าใบเดียว