คู่มือ / การก่อสร้างและทรัพยากร
ฟองน้ำกับบล็อกโครงสร้างไม่ใช่ไฟล์เดียวกัน
ไฟล์ .schem, .litematic และ .mcstructure ของ Bedrock ดูเหมือนใช้แทนกันได้ จนกระทั่งคุณแปลงมันแล้วพบว่าหีบ เอนทิตี และสถานะบล็อกหายไปหมด
.schem และ .litematic ต่างก็ใช้เก็บสิ่งปลูกสร้าง และการแปลงระหว่างสองรูปแบบนี้เองที่ทำให้ผู้เล่นส่วนใหญ่ค้นพบว่าทั้งสองรูปแบบไม่เคยตกลงกันได้ว่าสิ่งปลูกสร้าง คือ อะไร รูปแบบหนึ่งเก็บพื้นที่ของบล็อก แต่อีกรูปแบบหนึ่งเก็บประวัติการวาง ย้ายเมืองระหว่างสองรูปแบบนี้แล้วบ้านจะรอด แต่สิ่งที่อยู่ข้างในจะไม่รอด
แต่ละรูปแบบเก็บอะไรจริง ๆ
| รูปแบบ | ทำงานที่ไหน | สถานะบล็อก | บล็อกเอนทิตี | เอนทิตี |
|---|---|---|---|---|
.schem | Java, WorldEdit/Sponge | ใช่ | ใช่ | ใช่ |
.litematic | Java, Litematica | ใช่ | ใช่ | ใช่ |
.nbt structure | Java, บล็อกโครงสร้าง | ใช่ | ใช่ | ใช่ |
.mcstructure | Bedrock | ใช่ | ใช่ | ใช่ |
คอลัมน์ดูเหมือนกันทุกช่อง ซึ่งนั่นแหละคือกับดัก ความต่างอยู่ที่ การจัดการพาเลตต์ และ พื้นที่พิกัด ไม่ใช่รายการฟีเจอร์
พาเลตต์คือส่วนที่เปราะบาง
ทุกรูปแบบเหล่านี้เก็บบล็อกเป็นดัชนีชี้เข้าไปใน พาเลตต์ (palette) ซึ่งเป็นรายการชนิดบล็อกไม่ซ้ำที่ไฟล์ใช้งาน โดยแต่ละตำแหน่งเก็บตัวเลขที่ชี้เข้าไปในรายการนั้น สิ่งปลูกสร้างที่ใช้บล็อกต่างชนิดกันไม่กี่ร้อยชนิดก็มีพาเลตต์ขนาดนั้น และตำแหน่งต่าง ๆ ก็เป็นแค่จำนวนเต็ม
นั่นหมายความว่าไฟล์จะอ่านได้ก็ต่อเมื่อตัวอ่านแปลงทุกรายการในพาเลตต์ได้ บล็อกที่เพิ่มใน Java เวอร์ชันใหม่กว่านั้นไม่มีคู่เทียบใน Bedrock เลย การแปลงจาก Java เป็น Bedrock จึงต้องแทนที่หรือตัดมันทิ้ง อากาศคือตัวแทนที่ใช้บ่อย และกำแพงที่บล็อกหายไปอย่างลึกลับก็เกือบ всегдаเป็นเพราะเรื่องนี้ ไม่ใช่ไฟล์เสีย
Java กับ Bedrock เรียกบล็อกเดียวกันต่างกัน
ตรงนี้แหละที่ Java กับ Bedrock แยกทางกันจริง ๆ Bedrock เขียนสถานะบล็อกเป็น block_type บวกชุดสถานะแบบคีย์-ค่า ส่วน Java เขียนเป็น ID แบบมีเนมสเปซบวกแมปสถานะ บล็อกทางกายภาพเดียวกันอาจเป็น minecraft:oak_stairs[facing=east,half=bottom] ในฝั่งหนึ่ง และเป็นชุดสถานะที่เรียงลำดับต่างกันในอีกฝั่ง
บันได แผ่นพื้น รั้ว กำแพง ประตู และชิ้นส่วนเรดสโตนคือพวกที่พลิก บันไดที่เรนเดอร์กลับหัวหลังแปลงคือสถานะเรียงลำดับไม่ตรงกัน ไม่ใช่ไฟล์เสีย
บล็อกโครงสร้างไม่ได้เก็บอย่างที่คุณคิด
บล็อกโครงสร้างที่บันทึกเป็น .nbt จะเขียนกรอบเขต และกรอบนั้นมีขีดจำกัดขนาดตายตัวต่อแกน สิ่งปลูกสร้างที่ใหญ่เกินกรอบจะไม่ถูกบันทึกเป็นไฟล์เดียว เกมจะแยกหรือปฏิเสธ ถ้าสิ่งปลูกสร้างหลังแปลงหายไปทางปลายไกล ให้ตรวจกรอบเดิมก่อนจะสงสัยตัวแปลง
เอนทิตีถูกเก็บแยกจากบล็อกในทุกรูปแบบเหล่านี้ กรอบรูป แท่นวางเกราะ ภาพวาด และม็อบ ไม่ใช่ บล็อก และตัวแปลงที่เดินดูแค่พาเลตต์บล็อกจะทิ้งมันไปเงียบ ๆ
ดูตัวอย่างก่อนเชื่อ
รายการวัสดุคือการตรวจสอบเร็วที่สุด ถ้าจำนวนบล็อกของไฟล์หลังแปลงไม่ตรงกับต้นฉบับ แสดงว่ามีอะไรถูกแทนที่ไปแล้ว ตัวอย่างเลเยอร์แสดงให้เห็นทันที ทีละชั้นแนวนอน โดยไม่ต้องโหลดสิ่งปลูกสร้างเข้าโลก
แปลงระหว่าง .litematic, .schem, โครงสร้าง Java .nbt และ Bedrock .mcstructure พร้อมตัวอย่างเลเยอร์และรายการวัสดุ ได้ที่ Schematic Converter