คู่มือ / การก่อสร้างและทรัพยากร
ฟองน้ำกับบล็อกโครงสร้างไม่ใช่ไฟล์เดียวกัน
ไฟล์ .schem, .litematic และ .mcstructure ของ Bedrock ดูเหมือนใช้แทนกันได้ จนกว่าคุณจะแปลงมันแล้วพบว่าทุกหีบ ทุกเอนทิตี และทุกสถานะบล็อกหายไปหมด
.schem และ .litematic ต่างก็ใช้เก็บสิ่งปลูกสร้าง และการแปลงระหว่างสองรูปแบบนี้เองที่ทำให้ผู้เล่นส่วนใหญ่ค้นพบว่าทั้งสองรูปแบบไม่เคยตกลงกันได้ว่าสิ่งปลูกสร้าง คือ อะไร รูปแบบหนึ่งเก็บบล็อกในพื้นที่เดียว อีกรูปแบบหนึ่งเก็บได้หลายพื้นที่ที่มีชื่อกำกับ แต่ละพื้นที่มีชุดบล็อก (palette) ของตัวเอง ย้ายเมืองระหว่างสองรูปแบบนี้แล้วตัวบ้านรอด แต่ของข้างในไม่รอด
แต่ละรูปแบบเก็บอะไรจริง ๆ
| รูปแบบ | ทำงานที่ไหน | สถานะบล็อก | บล็อกเอนทิตี | เอนทิตี |
|---|---|---|---|---|
.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] ฝั่งหนึ่ง และเป็น weirdo_direction บวก upside_down_bit อีกฝั่ง — ชื่อสถานะและค่าต่างกัน ไม่ใช่ชุดเดียวกันที่สลับลำดับ
บันได แผ่นพื้น รั้ว กำแพง ประตู และชิ้นส่วนเรดสโตนคือพวกที่พลิกง่าย บันไดที่เรนเดอร์กลับหัวหลังแปลงคือความผิดพลาดในการจับคู่สถานะ ไม่ใช่ไฟล์เสีย
บล็อกโครงสร้างไม่ได้เก็บอย่างที่คุณคิด
บล็อกโครงสร้างที่บันทึกเป็น .nbt จะเขียนกรอบเขต และกรอบนั้นจำกัดที่ 48 บล็อกต่อแกน ตัวเกมไม่ผ่าสิ่งปลูกสร้างที่ใหญ่กว่าให้ — อะไรที่อยู่นอกกรอบก็แค่ไม่อยู่ในไฟล์ ถ้าสิ่งปลูกสร้างที่แปลงมาแล้วหายไปท่อนปลาย ให้ตรวจกรอบเดิมก่อนจะสงสัยตัวแปลง
เอนทิตีถูกเก็บแยกจากบล็อกในทุกรูปแบบเหล่านี้ กรอบรูป แท่น armor รูปวาด และม็อบ ไม่ใช่ บล็อก และตัวแปลงที่เดินดูแค่ชุดบล็อกจะทิ้งมันไปเงียบ ๆ
ดูตัวอย่างก่อนจะเชื่อ
รายการวัสดุคือการตรวจสอบเร็วที่สุด ถ้าจำนวนบล็อกของไฟล์ที่แปลงมาไม่ตรงกับต้นฉบับ แสดงว่ามีอะไรถูกแทนที่ไปแล้ว ตัวอย่างเลเยอร์จะโชว์ให้เห็นทันที ทีละชั้นแนวนอน โดยไม่ต้องโหลดสิ่งปลูกสร้างเข้าโลก
แปลงระหว่าง .litematic, .schem, Java structure .nbt และ Bedrock .mcstructure พร้อมตัวอย่างเลเยอร์และรายการวัสดุได้ที่ Schematic Converter