ภาพวาดและแผ่นเพลงแบบกำหนดเองโดยไม่ต้องแทนที่ของเดิม
ทั้งสองอย่างกลายเป็น Registry ของ Datapack ทำให้คุณสามารถเพิ่มของใหม่ได้แทนที่จะเขียนทับของเดิม นี่คือไฟล์สองไฟล์ที่แต่ละอย่างต้องการและกฎการกำหนดขนาดที่ภาพวาดต้องปฏิบัติตาม
วิธีเก่าในการสร้างภาพวาดแบบกำหนดเองคือการเขียนทับ paintings_kristoffer_zetterstrand.png และทำให้ภาพวาดเดิมหายไป แต่ตอนนี้ทั้งภาพวาดและแผ่นเพลงเป็น Registry แล้ว คุณจึงสามารถเพิ่มเข้าไปได้เลยแทนที่จะแทนที่
ภาพวาดต้องการสองไฟล์
รายการ Datapack ที่กำหนดภาพวาด:
data/<namespace>/painting_variant/my_art.json
{
"asset_id": "my_pack:my_art",
"width": 2,
"height": 2,
"title": { "text": "My Art" },
"author": { "text": "Me" }
}
และ Resource Pack ที่จัดหารูปภาพ:
assets/my_pack/textures/painting/my_art.png
width และ height เป็นขนาด ในหน่วยบล็อก และพื้นผิว (texture) ต้องมีอัตราส่วนที่ตรงกันที่ 16 พิกเซลต่อบล็อก ภาพวาดขนาด 2×1 บล็อกต้องการพื้นผิวขนาด 32×16 พิกเซล หากอัตราส่วนผิดเพี้ยน ภาพจะยืดออก ไม่มีระบบปรับขนาดอัตโนมัติ
ขนาดภาพวาดเดิมมีตั้งแต่ 1×1 ถึง 4×4 บล็อก ขนาดที่ใหญ่กว่าก็ใช้ได้ แต่ต้องมีผนังที่รองรับขนาดนั้น
ทำให้สามารถหาได้
การเพิ่มรูปแบบใหม่ไม่ได้ทำให้มันปรากฏในเกม มีสองวิธี:
- แท็กการจัดวาง (placement tag) — เพิ่มลงใน
#minecraft:placeableเพื่อให้ไอเทมภาพวาดปกติสามารถสุ่มกลายเป็นภาพวาดนี้ได้ - โดยตรง —
/give @p painting[entity_data={id:"minecraft:painting",variant:"my_pack:my_art"}]
ผู้สร้างแผนที่ส่วนใหญ่ต้องการวิธีที่สอง: ภาพวาดที่เจาะจง ไม่ใช่ภาพวาดแบบสุ่ม
แผ่นเพลงต้องการสามไฟล์
data/<namespace>/jukebox_song/my_song.json
{
"sound_event": { "sound_id": "my_pack:music/my_song" },
"description": { "text": "My Artist - My Song" },
"length_in_seconds": 154,
"comparator_output": 12
}
บวกกับ sounds.json ที่แมป ID เสียงนั้นเข้ากับไฟล์ และ .ogg ตัวมันเอง:
assets/my_pack/sounds.json
assets/my_pack/sounds/music/my_song.ogg
มีสามรายละเอียดที่สำคัญ:
length_in_secondsต้องถูกต้อง มันเป็นตัวกำหนดว่าตู้เพลง (Jukebox) จะหยุดเมื่อใดและกระแสอนุภาค (particle stream) จะสิ้นสุดเมื่อใด ไม่ใช่เสียง ค่าที่ไม่ถูกต้องหมายถึงความเงียบตอนท้ายหรือเสียงที่ถูกตัดออกcomparator_outputมีค่าระหว่าง 1–15 และเป็นค่าที่ Comparator อ่านได้ แผ่นเพลงเดิมแต่ละแผ่นมีค่าที่แตกต่างกัน หากใช้ซ้ำ Redstone จะไม่สามารถแยกแยะได้- สตรีมไฟล์ ogg
"stream": trueในsounds.jsonสำหรับเพลงที่มีความยาว
จากนั้นให้ไอเทม:
/give @p music_disc_13[jukebox_playable="my_pack:my_song"]
ไอเทมแผ่นเพลงใดก็ได้สามารถใช้เป็นตัวพาได้ — ส่วนประกอบ (component) จะเป็นตัวตัดสินว่าจะเล่นอะไร
ทำไมวิธีนี้ถึงดีกว่าการเขียนทับ
แพ็กที่แทนที่เนื้อหาเดิม (vanilla assets) จะขัดแย้งกับแพ็กอื่น ๆ ที่ทำแบบเดียวกัน และจะพังเมื่อ Mojang เปลี่ยนชื่อไฟล์ การเพิ่ม Registry จะถูกจัดเก็บตาม Namespace ทำให้แพ็กสองแพ็กที่เพิ่มภาพวาดสามารถอยู่ร่วมกันได้ นอกจากนี้ยังเป็นวิธีเดียวที่สามารถอยู่รอดได้เมื่อมีการอัปเดตเวอร์ชันโดยไม่ต้องแก้ไข
สร้างรูปแบบภาพวาด เพลงสำหรับตู้เพลง โทเท็ม และอีโมจิแชทลงในไฟล์ zip ของ Resource Pack ที่พร้อมใช้งานด้วย Custom Content Pack Makers