MC Toolkit

Hướng dẫn / Xây dựng & tài nguyên

Miếng bọt biển và khối cấu trúc không cùng một tệp

Một tệp .schem, một tệp .litematic và một tệp .mcstructure của Bedrock trông có vẻ thay thế được cho nhau, cho đến khi bạn chuyển đổi một tệp và mọi rương, thực thể lẫn trạng thái khối đều biến mất.

Một .schem và một .litematic đều lưu trữ một công trình, và việc chuyển đổi qua lại giữa chúng là lúc phần lớn người chơi phát hiện ra hai định dạng này chưa bao giờ thống nhất với nhau về việc một công trình là gì. Một bên lưu một vùng khối duy nhất. Bên kia có thể chứa nhiều vùng được đặt tên, mỗi vùng có bảng khối (palette) riêng. Chuyển một thị trấn từ định dạng này sang định dạng kia thì những ngôi nhà vẫn còn nguyên trong khi đồ đạc bên trong thì không.

Mỗi định dạng thực sự chứa những gì

Định dạngChạy ở đâuTrạng thái khốiKhối thực thểThực thể
.schemJava, WorldEdit/Spongecócócó
.litematicJava, Litematicacócócó
khối cấu trúc .nbtJava, khối cấu trúccócócó
.mcstructureBedrockcócócó

Các cột trông giống hệt nhau, và đó chính là cái bẫy. Khác biệt nằm ở cách xử lý bảng khối và không gian tọa độ, chứ không phải ở danh sách tính năng.

Bảng khối mới là phần mong manh

Mỗi định dạng trong số này đều lưu khối dưới dạng chỉ mục vào một bảng khối (palette) — danh sách các loại khối duy nhất mà tệp sử dụng, với mỗi vị trí giữ một con số trỏ vào danh sách đó. Một công trình dùng vài trăm loại khối khác nhau sẽ mang theo bảng khối có kích thước tương ứng, còn các vị trí chỉ là số nguyên.

Điều đó nghĩa là tệp chỉ đọc được nếu bên đọc giải mã được mọi mục trong bảng khối. Một khối được thêm vào trong bản Java mới hơn hoàn toàn không có tương đương bên Bedrock, nên việc chuyển đổi từ Java sang Bedrock buộc phải thay thế hoặc loại bỏ nó. Không khí (air) là thứ thay thế thường dùng, và một bức tường thiếu khối một cách khó hiểu gần như luôn là do chuyện này, chứ không phải tệp hỏng.

Java và Bedrock gọi cùng một khối bằng tên khác nhau

Đây là chỗ Java và Bedrock thực sự rẽ nhánh. Bedrock ghi trạng thái khối dưới dạng block_type cộng với một tập trạng thái khóa-giá trị; Java ghi một ID có không gian tên cộng với bảng trạng thái. Cùng một khối vật lý có thể là minecraft:oak_stairs[facing=east,half=bottom] ở bên này và weirdo_direction cộng với upside_down_bit ở bên kia — tên và giá trị trạng thái khác nhau, chứ không phải cùng một bộ được sắp xếp lại.

Cầu thang, phiến, hàng rào, tường, cửa và các linh kiện redstone là những thứ hay bị lật ngược. Một cầu thang bị dựng ngược sau khi chuyển đổi là do lỗi ánh xạ trạng thái, chứ không phải tệp hỏng.

Khối cấu trúc không lưu những gì bạn tưởng

Một khối cấu trúc khi lưu thành .nbt sẽ ghi một hộp giới hạn, và hộp đó bị giới hạn ở 48 khối mỗi trục. Trò chơi không tự chia nhỏ một công trình lớn hơn — bất cứ thứ gì nằm ngoài hộp đơn giản là không có trong tệp. Nếu một công trình sau khi chuyển đổi bị mất phần đầu xa, hãy kiểm tra hộp giới hạn gốc trước khi nghi ngờ công cụ chuyển đổi.

Thực thể được lưu tách biệt khỏi khối trong mọi định dạng kể trên. Khung vật phẩm, giá để giáp, tranh và mob không phải là khối, và một công cụ chuyển đổi chỉ duyệt qua bảng khối sẽ âm thầm bỏ rơi chúng.

Xem trước trước khi tin tưởng

Danh sách vật liệu là cách kiểm tra nhanh nhất: nếu số lượng khối của tệp sau khi chuyển đổi không khớp với tệp gốc, thì đã có thứ gì đó bị thay thế. Bản xem trước theo lớp cho thấy điều đó ngay lập tức, từng lát cắt ngang một, mà không cần nạp công trình vào thế giới.

Chuyển đổi giữa .litematic, .schem, cấu trúc Java .nbt và .mcstructure của Bedrock, kèm bản xem trước theo lớp và danh sách vật liệu, tại Trình chuyển đổi sơ đồ.

Trình chuyển đổi schematic →

Hướng dẫn khác

Xem tất cả →