วิธีทำงานของ Minecraft bitmap font provider
Resource pack ของ Java Edition สามารถแมปตัวอักษรไปยังเซลล์ใน PNG sprite sheet ได้ ตัวสร้างนี้จะสร้าง JSON ของ bitmap provider ที่เชื่อมตำแหน่ง resource ของ texture, แถวของตัวอักษร, ความสูงของ glyph และตำแหน่ง baseline มันไม่ได้สร้างหรือแก้ไข PNG ดังนั้น character grid ที่กรอกที่นี่ต้องตรงกับรูปภาพที่คุณวางใน pack
แต่ละบรรทัดใน Character grid แทนหนึ่งแถวแนวนอนของเซลล์ที่มีขนาดเท่ากันใน texture อ่านทุกบรรทัดจากซ้ายไปขวาและให้ทุกแถวมีความยาวเท่ากัน ถ้า JSON ระบุตัวอักษรผิดเซลล์ Minecraft จะแสดง glyph ข้างเคียงแทน
ตำแหน่ง resource ของ texture
ใช้ resource location แบบมี namespace เช่น my_pack:font/custom.png รูปภาพที่เกี่ยวข้องต้องอยู่ภายใต้ assets/my_pack/textures/font/custom.png namespace และ path เป็นตัวพิมพ์เล็กและใหญ่ไม่เหมือนกัน ควรใช้ตัวพิมพ์เล็ก
Height และ ascent
Height ควบคุมความสูงของ glyph ที่แสดงผลเป็นพิกเซล Ascent เลื่อน glyph สัมพันธ์กับ baseline ของข้อความ เริ่มต้นด้วย ascent ต่ำกว่า height หนึ่งพิกเซล ทดสอบ pack ใน Minecraft และปรับเมื่อตัวอักษรสูงหรือต่ำเกินไปเมื่อเทียบกับ vanilla font
ตำแหน่งที่บันทึก JSON
ดาวน์โหลด custom.json และวางไว้ภายใต้ assets/<namespace>/font ชื่อไฟล์จะกลายเป็น font resource ID ไฟล์ที่บันทึกเป็น assets/my_pack/font/custom.json สามารถอ้างอิงเป็น my_pack:custom โดย text components ที่รองรับฟิลด์ font
สิ่งที่ตัวสร้างนี้ตรวจสอบ
เครื่องมือนี้ทำให้โครงสร้าง provider ถูกต้องและแปลงแต่ละบรรทัดข้อความเป็นแถวตัวอักษร มันไม่สามารถตรวจสอบ PNG ภายนอก ตรวจสอบขนาดเซลล์ ตรวจจับตัวอักษรซ้ำ หรือยืนยันว่าเซิร์ฟเวอร์ส่ง resource pack ไปยังผู้เล่น
สร้างและทดสอบฟอนต์ Minecraft แบบกำหนดเอง
- เตรียม PNG โปร่งใสที่ glyph เรียงอยู่ในกริดปกติ
- ป้อนตำแหน่ง resource ของ PNG และคัดลอกลำดับตัวอักษรที่แน่นอน หนึ่งแถวรูปภาพต่อหนึ่งบรรทัดข้อความ
- ตั้งค่า height และ ascent จากนั้นดาวน์โหลด custom.json
- วาง JSON และ PNG ในโฟลเดอร์ resource pack ที่ตรงกันและโหลดทรัพยากรใหม่ใน Minecraft
- ทดสอบทุกตัวอักษรที่คุณตั้งใจใช้ จากนั้นปรับ PNG หรือ ascent เมื่อระยะห่างไม่ถูกต้อง
คำถามเกี่ยวกับ Minecraft font JSON
เครื่องมือนี้สร้าง PNG ฟอนต์หรือไม่?
ไม่ มันสร้างเฉพาะ JSON ของ bitmap provider สร้าง sprite sheet โปร่งใสแยกต่างหากและทำให้ลำดับเซลล์ตรงกับ Character grid อย่างแน่นอน
ทำไม Minecraft แสดงตัวอักษรผิด?
สาเหตุปกติคือความไม่ตรงกันระหว่างลำดับเซลล์ PNG และแถว chars ตรวจสอบความยาวแถว เซลล์ว่าง การขึ้นบรรทัดใหม่ namespace เส้นทางไฟล์ และขนาดภาพจริง
สิ่งนี้สามารถแทนที่ฟอนต์เริ่มต้นของ Minecraft ได้หรือไม่?
Resource pack สามารถกำหนด providers ในไฟล์ฟอนต์เริ่มต้นได้ แต่การแทนที่ตัวอักษร vanilla จะส่งผลต่อทุกอินเทอร์เฟซที่ใช้ฟอนต์นั้น ฟอนต์แบบ namespaced แยกต่างหากปลอดภัยกว่าเมื่อมีเฉพาะ text components ที่เลือกเท่านั้นที่ต้องการ glyph ที่กำหนดเอง
ทำไมฟอนต์มองไม่เห็นหลังจากโหลด pack ใหม่?
ยืนยันว่า pack โหลดโดยไม่มีข้อผิดพลาดของ resource, JSON อยู่ใน assets/<namespace>/font, PNG อยู่ใต้ assets/<namespace>/textures และฟิลด์ file ชี้ไปที่ namespace และ texture path เดียวกัน