gohud

スキン — テーマが届かない場所

← テーマ

メソッド決めるもの
surface_box · floating_box · overlay_boxカードとパネルの面、浮かぶサーフェス、ゲームやマップの上に重ねるピル
chip_box · chip_inkチップのパネルと、その上で読めるままのラベル色
slot_box · slot_inkクイックスロットの面とその文字
disc_boxアバターやバッジの背後にある円
alert_box · skeleton_box · segment_boxインラインのアラート、プレースホルダー、セグメント選択
coach_ring_boxコーチツアーが対象の周りに置く印
draw_joystick · draw_coach_pointer直接描かれるもの — スティックとその指し示し
divider_color · divider_thickness · section_box区切り線とセクション見出し
badge_boxクイックスロットのバッジ — 個数と残り時間
progress_fill_box · notice_box · tint_noticeバーの塗り(溝に対して 3:1 に届かない塗りには輪郭を付ける)とスナックバー
class_name MySkin extends GoSkin

func draw_joystick(canvas: CanvasItem, center: Vector2, knob: Vector2,
        radius: float, knob_radius: float, ink: Color, base: Color, active: bool) -> void:
    # 位置の計算はウィジェット側で済んでいる — ここでやるのは描画だけだ
    canvas.draw_circle(center, radius, Color(base, 0.4))
    canvas.draw_circle(knob, knob_radius, ink)

StyleBoxFlat では作れない形

クラス描くもの
GoStyleBoxCut斜めに切り落とした角、1辺だけ太いアクセント縁、外へにじむ発光
GoStyleBoxBracket四隅の印だけを引き、中身は囲わない
GoStyleBoxMedieval鍛造の枠 — リベット、角の彫刻、ベベルのハイライト、そして鉄・革・羊皮紙の質感

3つともほかの StyleBox と同じように Theme リソースへ保存される — だからテーマが形まで変えられる。

余白は content_margin_* で与える。 GDScript で StyleBox を継承すると _get_style_margin() は呼ばれない(Godot 4.7 で実測)。組み込みのフィールドを埋めないと、 中身が枠に貼り付いてしまう。