คู่มือ / การก่อสร้างและทรัพยากร
สกินแพ็กสำหรับ Bedrock ประกอบด้วยสี่ไฟล์ และมีสองโหมดความล้มเหลวที่เงียบงัน
UUID สองตัวที่ต้องแตกต่างกัน ไฟล์ lang ที่ไม่ใช่ตัวเลือกเสริม และคีย์สกินที่ตัดเครื่องหมายวรรคตอนออก — ดังนั้น 'My Skin!' กับ 'My Skin?' จึงกลายเป็นสกินเดียวกันโดยไม่มีข้อผิดพลาด
.mcpack คือไฟล์ zip ที่เปลี่ยนนามสกุล และสกินแพ็กที่อยู่ข้างในต้องมีไฟล์สี่ประเภทพอดี:
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
สามในสี่เป็นเรื่องง่ายที่จะทำให้ถูก ความล้มเหลวที่น่าสนใจล้วนมาจากความสัมพันธ์ระหว่างพวกมัน
UUID สองตัวต้องแตกต่างกัน
manifest.json บรรจุ UUID หนึ่งตัวใน header และอีกตัวในโมดูล skin_pack:
{
"format_version": 1,
"header": { "name": "…", "uuid": "…", "version": [1, 0, 0] },
"modules": [ { "type": "skin_pack", "uuid": "…", "version": [1, 0, 0] } ]
}
พวกมันคือสองตัวตนที่แยกจากกัน — ตัวแพ็ก และสิ่งที่อยู่ภายในแพ็ก — และการนำค่าเดียวกันมาใช้ทั้งสองที่ถือเป็นข้อผิดพลาดจริง แม้ว่าจะไม่มีอะไรบ่นตอนบิลด์ก็ตาม
ยังมีผลสืบเนื่องที่สองที่ละเอียดอ่อนกว่า: การนำเข้าใหม่ด้วย UUID เดิมจะถือว่าเป็นแพ็กเดียวกัน และ Minecraft จะเก็บสำเนาที่มีอยู่แล้วไว้อย่างเงียบ ๆ การแก้ไขแพ็ก บิลด์ใหม่ด้วยตัวระบุเดิม แล้วนำเข้าใหม่จะดูเหมือนไม่ได้ทำอะไรเลย ทุกบิลด์จากหน้านี้จึงได้ UUID ใหม่เสมอด้วยเหตุผลนี้ ซึ่งเป็นเหตุผลว่าทำไมการนำเข้าแพ็กที่แก้ไขแล้วจึงต้องดาวน์โหลดใหม่แทนที่จะ zip ไฟล์เก่าใหม่
ไฟล์ lang ไม่ใช่ตัวเลือกเสริม
skins.json ไม่เคยมีชื่อที่แสดงผล มันมี คีย์ และ texts/en_US.lang จับคู่คีย์นั้นกับข้อความ:
skinpack.<PackKey>=My Pack
skin.<PackKey>.<SkinKey>=My First Skin
ส่งแพ็กโดยไม่มีไฟล์ lang แล้วจะไม่มีข้อผิดพลาดใด ๆ — สกินทุกอันจะปรากฏในเกมภายใต้คีย์ดิบของมัน นี่คือสาเหตุที่พบบ่อยที่สุดที่แพ็กประกอบมือดูเหมือนพังในขณะที่ผ่านการตรวจสอบอย่างราบรื่น
คีย์ตัดเครื่องหมายวรรคตอนออก และรายการซ้ำจะยุบรวม
คีย์ต้องเป็นตัวอักษรหรือตัวเลขเท่านั้น ส่วนอื่นทั้งหมดจะถูกตัดออก:
| ชื่อของคุณ | คีย์ |
|---|---|
My Skin! | MySkin |
My Skin? | MySkin |
Skin #2 | Skin2 |
!!! | Skin1 (สำรอง ตามตำแหน่ง) |
สองแถวแรกคือกับดัก สกินสองอันที่มนุษย์ตั้งชื่อให้แตกต่างกันกลายเป็น คีย์เดียว และคีย์ซ้ำไม่ทำให้เกิดข้อผิดพลาด — มันยุบรวมเป็นสกินเดียวในเกมอย่างเงียบ ๆ คุณอัปโหลดสิบสองสกิน ได้สิบเอ็ด และไม่มีอะไรบอกว่าอันไหนหายไป
ตัวบิลด์ที่นี่ป้องกันปัญหานี้โดยต่อท้ายตัวนับให้กับคีย์ใดก็ตามที่เคยใช้ไปแล้ว ดังนั้น MySkin ตัวที่สองจึงกลายเป็น MySkin2 ควรรู้ไว้หากคุณประกอบแพ็กด้วยมือ: การตรวจสอบที่คุณต้องทำคือตรวจชื่อที่ ถูกตัดแล้ว ไม่ใช่ชื่อที่คุณพิมพ์
ชื่อที่เป็นเครื่องหมายวรรคตอนล้วนจะไม่เหลืออะไรเลย จึงตกไปใช้ Skin บวกกับตำแหน่งในรายการ
Slim ต้องใช้สตริงเรขาคณิตที่ถูกต้อง
แต่ละรายการระบุโมเดล และมีสองแบบ:
geometry.humanoid.custom— แบบคลาสสิก แขนกว้าง 4 พิกเซลgeometry.humanoid.customSlim— แบบ slim แขนกว้าง 3 พิกเซล
การทำให้ผิดคือสาเหตุปกติของ สกินสัดส่วนแบบ Alex ที่โผล่มาแขนเป็นบล็อก ๆ ของ Steve เนื้อผิวปกติดี แต่โมเดลเป็นแบบที่ถูกเรียกใช้ ตัวบิลด์แพ็กจะเดาจากสองคอลัมน์ที่แขนแบบ slim เว้นว่างไว้ (x 54–55) และให้คุณแก้ไขได้ทีละรายการ แต่ skins.json ที่เขียนด้วยมือต้องระบุอย่างชัดเจน และสองสตริงต่างกันสี่ตัวอักษรที่ส่วนท้าย
รายการยังมี "type": "free" และเคปคือไฟล์ PNG เสริมที่เป็นตัวเลือก อ้างอิงจากรายการเดียวกัน — เคปจะเดินทางไปในสกินแพ็กแทนที่จะเป็นดาวน์โหลดแยกต่างหาก