Godot入門:CheckBoxの使い方と活用法

はじめに

設定画面で「BGMをオンにする」「フルスクリーンで起動する」といったオン・オフの選択肢を作るとき、真っ先に候補に上がるのが CheckBox です。クリックするたびにチェックが切り替わる、おなじみのUIパーツです。

この記事では、CheckBox の仕組みと使いどころ、よく触るプロパティを紹介します。

CheckBoxとは?

CheckBox は オン・オフの2値を切り替えられるトグルボタンです。クリックするたびにチェックマーク(✓)が付いたり外れたりし、現在の状態を button_pressed プロパティで取得できます。

紙のアンケートに並んでいる「□ BGMを有効にする」のチェックボックスをイメージしてください。空欄をクリックすると✓が入り、もう一度クリックすると外れる——CheckBox はその動きをそのままゲームのUIに再現します。

継承ツリーは CheckBoxButtonBaseButtonControlCanvasItemNode です。Button を継承しているため、pressed シグナルや button_pressed プロパティなど Button の機能をそのまま使えます。姉妹ノードの CheckButton(032)はトグルスイッチ風の外見で同じ機能を持ちます。




CheckBox(左)と CheckButton(右)の外見比較
CheckBox はチェックマーク付き四角、CheckButton はスライドスイッチ風。機能は同じで見た目が違う

このノードを使うべき場面

  • 設定画面のオプション:「BGMを有効にする」「フルスクリーン」「字幕を表示する」などのオン・オフ設定
  • 複数選択フィルター:難易度フィルターや表示項目など、複数の独立したオプションを並べるとき
  • チュートリアルの「確認しました」:説明を読んだことを確認させる同意チェックボックス
  • クエスト・タスクリスト:完了したタスクにチェックを入れる進捗管理UIとして
  • デバッグメニュー:当たり判定の表示・非表示など開発中の機能フラグを切り替えるとき

別のノードが適切な場面:

  • スライドスイッチ風のトグルにしたい → 同じ機能を持つ CheckButton(032)を使う
  • 複数の選択肢から1つだけ選ばせたい(ラジオボタン) → Buttonbutton_group を使う

主なプロパティと機能

CheckBox(および親クラス Button・BaseButton)の代表的なプロパティをまとめました。

プロパティ 役割
button_pressed bool 現在チェックされているか(true = ON)。読み書き両方できる
text String チェックボックスの右に表示するラベルテキスト
toggle_mode bool CheckBox は常に true。トグル動作が前提のノード
disabled bool true にするとクリックを受け付けなくなる(グレーアウト状態)
pressed(シグナル) Signal クリックされるたびに発火する
toggled(シグナル) Signal 状態が切り替わったときに新しい状態(bool)を引数として発火する

コード例:設定画面でBGMのオン・オフを切り替える

@onready var bgm_check: CheckBox = $BGMCheckBox

func _ready() -> void:
    # 保存済みの設定を反映
    bgm_check.button_pressed = SaveData.bgm_enabled
    # 状態変化のシグナルを接続
    bgm_check.toggled.connect(_on_bgm_toggled)

func _on_bgm_toggled(pressed: bool) -> void:
    SaveData.bgm_enabled = pressed
    AudioServer.set_bus_mute(AudioServer.get_bus_index("BGM"), not pressed)

コード例:複数の CheckBox の状態をまとめて取得する

@onready var options: Array[CheckBox] = [
    $FullscreenCheck,
    $SubtitleCheck,
    $VibrationCheck,
]

func get_settings() -> Dictionary:
    return {
        "fullscreen": options[0].button_pressed,
        "subtitle":   options[1].button_pressed,
        "vibration":  options[2].button_pressed,
    }




VBoxContainer に CheckBox を並べた設定画面の構成例
VBoxContainer に CheckBox を縦に並べるだけで設定画面の骨格ができる

もっと使いこなす:カスタマイズできるパラメータ

まずは基本を動かしてみてから、余裕が出たら試してみてください。

パラメータ・テクニック 変えると何が起きるか
button_pressed を起動時に設定する 保存済みの設定値を読み込んでUIに反映できる。設定画面の初期化に必須
toggled シグナルを使う pressed より toggled の方が現在の状態(bool)を引数で受け取れて便利
disabledtrue 条件を満たさないと変更できないオプションをグレーアウトして表示できる
Theme Overrides でアイコンを変える チェックマークの画像をカスタム画像に差し替えられる。ゲーム独自のUIデザインに
ButtonGroup を設定する 同じグループ内で1つだけ選択できるラジオボタン動作になる。難易度選択などに応用できる




CheckBox の状態3パターン:未チェック・チェック済み・disabled
未チェック・チェック済み・disabled(操作不可)の3状態を使い分ける

まとめ

CheckBox は 「オン・オフを切り替えるシンプルなトグルUI」 です。

  • button_pressed で現在の状態を取得・設定できる
  • toggled シグナルで状態変化を検知し、設定の保存や機能の切り替えに使う
  • スライドスイッチ風の見た目にしたいときは CheckButton(032)が同じ機能で使える

次回は、スライドスイッチ風のトグルUI CheckButton を紹介します。

シリーズ:Godot 4 ノード解説

この記事はGodot 4.xをもとに執筆しています。

コメント