คู่มือ / การก่อสร้างและทรัพยากร
ข้อมูลโมเดลแบบกำหนดเอง: ให้ไอเทมหนึ่งชิ้นมีหลายโมเดลโดยไม่ต้องแทนที่อะไรเลย
ระบบ item-model แทนที่ CustomModelData predicate แบบเก่าแล้ว นี่คือโครงสร้างโฟลเดอร์ JSON ที่จับคู่ค่ากับโมเดล และสาเหตุที่เท็กซ์เจอร์ของคุณแสดงเป็นลูกบาศก์สีม่วง
โมเดลไอเทมแบบกำหนดเองช่วยให้เซิร์ฟเวอร์แจก "ไม้กายสิทธิ์" ที่จริง ๆ แล้วคือแคร์รอตติดเบ็ดที่มีโมเดลต่างออกไป กลไกนี้เปลี่ยนไปแล้ว แต่บทสอนส่วนใหญ่ยังอธิบายแบบเก่าอยู่
อะไรเปลี่ยนไป
วิธีเก่า — บล็อก predicate ภายในไฟล์โมเดลของไอเทมหลัก โดยอ้างอิงจาก custom_model_data เป็นตัวเลข:
{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }
วิธีปัจจุบัน — คำนิยาม items/ ที่เลือกโมเดล:
assets/minecraft/items/carrot_on_a_stick.json
{
"model": {
"type": "minecraft:range_dispatch",
"property": "minecraft:custom_model_data",
"fallback": { "type": "minecraft:model", "model": "minecraft:item/carrot_on_a_stick" },
"entries": [
{ "threshold": 1, "model": { "type": "minecraft:model", "model": "minecraft:item/wand" } }
]
}
}
fallback คือสิ่งที่แคร์รอตติดเบ็ดธรรมดายังดูเป็นอยู่ หากไม่มีมัน ทุกชิ้นที่ไม่ถูกแก้ไขในโลกจะแสดงเป็นลูกบาศก์โมเดลหายสีม่วงดำ
โครงสร้างโฟลเดอร์
pack.mcmeta
assets/minecraft/
├── items/carrot_on_a_stick.json the dispatch
├── models/item/wand.json the model
└── textures/item/wand.png the texture
models/item/wand.json แบบง่ายที่สุด:
{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }
สังเกตว่าเส้นทางเท็กซ์เจอร์ไม่มีคำนำหน้า textures/ และไม่มี .png — นั่นคือสาเหตุที่พบบ่อยที่สุดของลูกบาศก์สีม่วงดำ
การให้ไอเทม
/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]
คอมโพเนนต์รับออบเจ็กต์ที่มีลิสต์แบบมีชนิดแล้ว ไม่ใช่จำนวนเต็มเปล่า ๆ custom_model_data=1 คือไวยากรณ์เก่า และคำสั่งตอนนี้ปฏิเสธมันว่าไม่ถูกต้อง
ทำไมมันแสดงเป็นลูกบาศก์สีม่วง
เรียงตามความน่าจะเป็น:
- เส้นทางเท็กซ์เจอร์ผิด — มี
textures/หรือ.pngรวมอยู่ หรือไฟล์ไม่ได้อยู่ที่ที่เส้นทางบอก - ตัวพิมพ์ของชื่อไฟล์ — เกมแยกตัวพิมพ์เล็กใหญ่ แม้ระบบปฏิบัติการของคุณจะไม่แยก
pack.mcmetaล้าสมัย — 26.x ต้องการmin_formatและmax_formatหมายเลขฟอร์แมตปัจจุบันในpack_formatเปล่า ๆ ทำให้แพ็กแสดงว่าไม่เข้ากัน- บีบอัดผิด —
pack.mcmetaต้องอยู่ที่รากของไฟล์ zip ไม่ใช่ข้างในโฟลเดอร์ที่อยู่ใน zip
ตัวเลือกอื่น
range_dispatch บนตัวเลขเป็นเพียงตัวเลือกเดียว คุณยังสามารถแยกตาม minecraft:display_context (โมเดลต่างกันเมื่อถือในมือเทียบกับในกรอบ), minecraft:using_item หรือ minecraft:selected — ซึ่งเป็นวิธีที่คันธนูแสดงสถานะดึงสาย
สร้าง JSON สำหรับแยก, ไฟล์โมเดล และคำสั่ง give ไปพร้อมกันได้ที่ เครื่องมือโมเดลและคอมโพเนนต์ไอเทมแบบกำหนดเอง