gohud

สามชั้น

← ธีม

พรีเซ็ตหนึ่งอันรวมทั้งสามชั้นไว้ด้วยกัน ช่องที่ปล่อยว่างจะย้อนกลับไปใช้ค่าเริ่มต้น

ชั้นกำหนดอะไรเปลี่ยนอย่างไร
Theme สี ขนาด สเกลตัวอักษร และรูปทรงของทุกอย่างที่เอนจินเป็นคนวาด — พาเนลของปุ่ม ช่องกรอก แท็บ ภาพของสวิตช์ เขียนไฟล์ .tres เอง หรือให้ tools/make_theme.py สร้างให้
GoSkin รูปทรงของทุกอย่างที่โค้ดเป็นคนวาด — จอยสติ๊ก หน้าควิกสล็อต วงแหวนโค้ชมาร์ก ชิป สเกเลตัน เส้นคั่น หัวข้อส่วน สืบทอดคลาสแล้วเขียนทับเฉพาะเมธอดที่สนใจ
GoIconSet ไอคอนที่เรียกด้วยชื่อ — ภาพค่าเริ่มต้น 84 ชิ้น หรือภาพสลัก 16 ชิ้นของชุดยุคกลางที่ทับลงไป จะเป็นเท็กซ์เจอร์แพ็กหรือไอคอนฟอนต์ก็ได้ โค้ดที่เรียกใช้เหมือนกันทั้งสองทาง ใส่ชุดไอคอนเข้าไป หรือเขียนทับเฉพาะบางชื่อ
ทำไม Theme อย่างเดียวถึงไม่พอ มุมมนคือมุมชนิดเดียวที่ StyleBoxFlat มี — ตั้งรัศมีเป็นศูนย์แล้วได้มุมฉาก ไม่มีอะไรอยู่ระหว่างนั้นเลย ส่วนมุมตัดเฉียง ขอบหนาด้านเดียว และแสงเรืองรอบนอกนั้น เอนจินไม่วาดให้สักอย่าง ยิ่งกว่านั้น จอยสติ๊กกับโค้ชมาร์กถูกวาดใน _draw() ซึ่งเป็นที่ที่ธีมเอื้อมไม่ถึงเลย

เลือกพรีเซ็ต

GoUi.use_preset(GoThemePresets.SCIFI_DARK)

บรรทัดเดียวนั้นสลับทั้งธีม สกิน และไอคอน ถ้าทำจากเอดิเตอร์ ให้ไปที่ Project Settings → Gohud → Theme → Preset ถ้าทำจากรีซอร์สตั้งค่า ให้ใช้ GoConfig.preset

เก็บบางช่องไว้เป็นของตัวเอง

GoUi.use_preset(GoThemePresets.SCIFI_DARK)
GoUi.config.icons = my_icons     # ไอคอนของคุณ ที่เหลือใช้ของพรีเซ็ต

การกำหนด theme, skin หรือ icons ไว้ตรง ๆ จะชนะพรีเซ็ต

พรีเซ็ตที่มีมาให้ทั้ง 6 แบบ

พรีเซ็ตพาเนลสกิน · ไอคอน
default_dark · default_lightพาเนล StyleBoxFlat มุมมน บนสเกลเงาที่ไล่ระดับ ปุ่มหลักยกตัวขึ้นและยุบลงเมื่อถูกกดGoSkin · ไอคอนค่าเริ่มต้น 84 ชิ้น
scifi_dark · scifi_lightพาเนล GoStyleBoxCut มุมตัดเฉียง พร้อมขอบนีออนและแสงเรือง เครื่องหมายโฟกัสแบบ GoStyleBoxBracketGoSkinSciFi — จอยสติ๊กหกเหลี่ยม · ไอคอนค่าเริ่มต้น
medieval_dark · medieval_lightกรอบตีขึ้นรูป GoStyleBoxMedieval — เหล็กและหนัง หรือกระดาษหนัง พร้อมหมุดย้ำและลวดลายมุมบนเมนูGoSkinMedieval · ไอคอนสลัก 16 ชิ้นทับบนชุดค่าเริ่มต้น

ยุคกลาง: เหล็ก หนัง และกระดาษหนัง

medieval_dark จับคู่เหล็กดำและหนังเข้ากับทองโบราณ ส่วน medieval_light ใช้กระดาษหนังและหมึก ทั้งคู่ใช้ GoSkinMedieval วิดเจ็ตชุดเดิม และไอคอนออริจินัล 16 ชิ้น ที่มีรายละเอียดลายสลัก ส่วนไอคอนนำทางย้อนกลับไปใช้ชุดเดิม

GoUi.use_preset(GoThemePresets.MEDIEVAL_DARK)
# หรือ: GoUi.use_preset(GoThemePresets.MEDIEVAL_LIGHT)

เลือกพรีเซ็ตก่อนสร้าง UI ทั้งนี้ค่า GoConfig.theme, skin หรือ icons ที่กำหนดไว้ตรง ๆ ยังคงมีอำนาจเหนือกว่าอยู่ดี เปิด res://addons/gohud/examples/medieval/medieval.tscn แล้วกด F6 เพื่อดูแผ่นข้อมูลตัวละคร ย่าม และสมุดบันทึกเควสต์ที่ใช้งานได้จริง ปุ่มในนั้นสลับตัวแปรของธีมและเปิดรายละเอียดไอเทมได้

หน้าตัวละคร กระเป๋าของ และเควสต์ ในธีมยุคกลางแบบเหล็ก
เหล็กและหนัง
หน้าตัวละคร กระเป๋าของ และเควสต์ ในธีมยุคกลางแบบกระดาษหนัง
กระดาษหนังและหมึก

กรอบเมนูมีหมุดย้ำและลวดลายมุมเล็ก ๆ ส่วน HUD ที่มองเห็นตลอดเวลายังคงมีขอบเรียบสงบ พลังชีวิต มานา และสตามินา ใช้สีแดง น้ำเงิน และเขียวมะกอกเป็นสีเติม Cinzel ถูกจำกัดไว้ที่หัวข้อและหัวข้อรอง ส่วนเนื้อความยังใช้ฟอนต์ของโปรเจกต์แม่หรือฟอนต์ค่าเริ่มต้น ฟอนต์ที่แถมมามีสัญญาอนุญาตอยู่ที่ assets/fonts/cinzel/OFL.txt

ชุดไอคอนสลักวาดใหม่ให้กับ bag, book, box, coin, crown, flag, heart, key, map, potion, shield, star, sword และ user แล้วเพิ่ม scroll กับ seal เข้ามา ชื่ออื่นทั้งหมดย้อนกลับไปใช้ชุดค่าเริ่มต้น close และ settings จึงคงภาพเดิมไว้ในทุกพรีเซ็ต Cinzel รองรับเฉพาะอักษรละติน ถ้าต้องการหัวข้อในภาษาอื่นให้กำหนดฟอนต์ของมันเองผ่าน shape.fonts

ชุดทดสอบตรวจอะไรบ้างในทั้งสองตัวแปร ตรวจว่าสกินยุคกลางถูกเลือกจริง พาเนลของเมนูและ HUD เป็น กรอบตีขึ้นรูปโดยมีลวดลายเฉพาะบนเมนู หัวข้อใช้ Cinzel ขณะที่เนื้อความยังใช้ฟอนต์ที่สืบทอดมา ไอคอนสลัก ถูกอิมพอร์ตเป็น DPITexture ควิกสล็อตจริงใช้สกินนั้น การแก้ค่าปรับของสกินที่คัดลอกมาส่งผลถึง ตัวสล็อตโดยไม่ต้องแตะพรีเซ็ต และการสลับกลับไปคืนรูปทรงของชุดค่าเริ่มต้นกับชุดไซไฟได้ครบ

สร้างอาณาจักรของคุณเอง

python3 addons/gohud/tools/new_theme.py kingdom --from medieval_dark
# แก้ไข themes/palettes/kingdom.json แล้วสั่ง:
python3 addons/gohud/tools/make_theme.py kingdom
godot --headless --path . --import
# ใน GDScript ก่อนสร้างวิดเจ็ต:
GoUi.use_preset(&"kingdom")

ธีมแบบ JSON สืบทอดจากธีม JSON อื่นได้ ค่าที่ละไว้จะคงการตั้งค่าของธีมแม่ไว้ ส่วนการสืบทอดที่วนเป็นวงจะถูกปฏิเสธ พรีเซ็ตที่สร้างขึ้นจะใช้ชุดไอคอนของธีมแม่ต่อไป

การตั้งค่าผลที่ได้
shape.material0: เหล็ก · 1: หนัง · 2: กระดาษหนัง ควบคุมร่องรอยบนพื้นผิว
shape.grain_alphaความทึบของลายเนื้อวัสดุ ใส่ 0 เพื่อให้พื้นผิวเกลี้ยง
shape.ornament_scale · shape.bevel_strengthขนาดลวดลายมุมของเมนู และความเข้มของแสงไฮไลต์ตามขอบลาด
shape.fontsจับคู่บทบาท title, subtitle, caption, body และ button เข้ากับไฟล์ฟอนต์ res:// ที่อยู่ในแอดออน บทบาทที่ละไว้จะคงฟอนต์ที่สืบทอดมา
skin.dialsรัศมีของควิกสล็อต การแสดงหมุดย้ำ ลายเนื้อ และไฮไลต์ ตารางเต็มด้านล่างแจกแจงทุกค่าปรับ