はじめに
設定画面で「BGMをオンにする」「フルスクリーンで起動する」といったオン・オフの選択肢を作るとき、真っ先に候補に上がるのが CheckBox です。クリックするたびにチェックが切り替わる、おなじみのUIパーツです。
この記事では、CheckBox の仕組みと使いどころ、よく触るプロパティを紹介します。
CheckBoxとは?
CheckBox は オン・オフの2値を切り替えられるトグルボタンです。クリックするたびにチェックマーク(✓)が付いたり外れたりし、現在の状態を button_pressed プロパティで取得できます。
紙のアンケートに並んでいる「□ BGMを有効にする」のチェックボックスをイメージしてください。空欄をクリックすると✓が入り、もう一度クリックすると外れる——CheckBox はその動きをそのままゲームのUIに再現します。
継承ツリーは CheckBox → Button → BaseButton → Control → CanvasItem → Node です。Button を継承しているため、pressed シグナルや button_pressed プロパティなど Button の機能をそのまま使えます。姉妹ノードの CheckButton(032)はトグルスイッチ風の外見で同じ機能を持ちます。

このノードを使うべき場面
- 設定画面のオプション:「BGMを有効にする」「フルスクリーン」「字幕を表示する」などのオン・オフ設定
- 複数選択フィルター:難易度フィルターや表示項目など、複数の独立したオプションを並べるとき
- チュートリアルの「確認しました」:説明を読んだことを確認させる同意チェックボックス
- クエスト・タスクリスト:完了したタスクにチェックを入れる進捗管理UIとして
- デバッグメニュー:当たり判定の表示・非表示など開発中の機能フラグを切り替えるとき
別のノードが適切な場面:
- スライドスイッチ風のトグルにしたい → 同じ機能を持つ
CheckButton(032)を使う - 複数の選択肢から1つだけ選ばせたい(ラジオボタン) →
Buttonのbutton_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,
}

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

まとめ
CheckBox は 「オン・オフを切り替えるシンプルなトグルUI」 です。
button_pressedで現在の状態を取得・設定できるtoggledシグナルで状態変化を検知し、設定の保存や機能の切り替えに使う- スライドスイッチ風の見た目にしたいときは
CheckButton(032)が同じ機能で使える
次回は、スライドスイッチ風のトグルUI CheckButton を紹介します。
関連性の高いノード解説記事
- Node(基底クラス)
- Node2D
- Sprite2D
- AnimatedSprite2D
- CharacterBody2D
- CollisionShape2D
- Area2D
- RigidBody2D
- Camera2D
- Label
- RichTextLabel
- LineEdit
- Button
- HBoxContainer
- VBoxContainer
- GridContainer
- ScrollContainer
- Panel
- TabContainer
- SplitContainer
- HSplitContainer
- VSplitContainer
- FlowContainer
- MarginContainer
- CenterContainer
- AspectRatioContainer
- SubViewportContainer
- TextureRect
- ColorRect
- ProgressBar
- CheckBox(この記事)
- CheckButton
- OptionButton
- SpinBox
この記事はGodot 4.xをもとに執筆しています。



コメント