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

はじめに

「セーブが完了しました」「接続できませんでした」——プレイヤーに一方的にメッセージを伝えて「OK」で閉じるだけのシンプルなダイアログが必要なとき、AcceptDialog が最適です。数行のコードで用意できます。

この記事では、AcceptDialog の仕組みと使いどころ、カスタマイズ方法を紹介します。

AcceptDialogとは?

AcceptDialog は メッセージテキストと「OK」ボタンだけを持つ、最もシンプルなダイアログノードです。ボタンを押すと自動でダイアログが閉じます。Window を継承しているため、タイトルバー・モーダル動作・中央表示が標準で備わっています。

スマホアプリでよく見る「通知が届きました [OK]」のアラートをイメージしてください。AcceptDialog はその「読んでOKを押すだけ」のダイアログをGodotで手軽に実装するノードです。

継承ツリーは AcceptDialogWindowViewportNode です。ConfirmationDialogFileDialog の親クラスでもあり、ダイアログ系ノードの基盤となっています。




AcceptDialog の表示例(メッセージ+OKボタン)
メッセージと「OK」ボタンだけのシンプルなダイアログ

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

  • セーブ完了・エラー通知:「セーブしました」「通信エラーが発生しました」などの1方向メッセージ
  • チュートリアル説明:操作方法をプレイヤーに1ステップずつ伝えるとき
  • 実績・アンロック通知:「新しいステージが解放されました!」などのお知らせ
  • バリデーションエラー:入力値が不正なときに「文字数が足りません」と伝えるとき

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

  • 「はい・いいえ」の確認が必要 → ConfirmationDialog(039)を使う
  • 複雑なフォームやカスタムUIを持つダイアログ → Window(037)で自作する

主なプロパティと機能

プロパティ / メソッド 役割
dialog_text String ダイアログに表示するメッセージテキスト
title String タイトルバーのテキスト(デフォルト: “Alert!”)
ok_button_text String OKボタンのラベル(デフォルト: “OK”)
popup_centered() void 画面中央にダイアログを表示する
add_button(text, right, action) Button OKボタン以外のカスタムボタンを追加する
confirmed(シグナル) Signal OKボタンが押されたときに発火する

コード例:セーブ完了を通知するダイアログ

@onready var dialog: AcceptDialog = $AcceptDialog

func save_game() -> void:
    # セーブ処理...
    dialog.title       = "セーブ完了"
    dialog.dialog_text = "ゲームデータをセーブしました。"
    dialog.ok_button_text = "とじる"
    dialog.popup_centered()

# OKボタンが押されたときの処理が必要な場合
func _ready() -> void:
    dialog.confirmed.connect(_on_dialog_ok)

func _on_dialog_ok() -> void:
    print("ダイアログを閉じた")

コード例:エラー通知をどこからでも呼び出せるヘルパー関数

func show_message(title: String, message: String) -> void:
    var dialog := AcceptDialog.new()
    dialog.title       = title
    dialog.dialog_text = message
    add_child(dialog)
    dialog.popup_centered()
    # 閉じたら自動削除
    dialog.confirmed.connect(dialog.queue_free)




タイトル・ボタンラベルをカスタマイズした AcceptDialog
title・ok_button_text を変えるだけで用途に合ったダイアログになる

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

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

パラメータ・テクニック 変えると何が起きるか
ok_button_text を変える 「OK」を「とじる」「わかった」などに変更でき、文脈に合った表現になる
add_button() でボタンを追加する 「詳細を見る」など追加ボタンを右側に置ける。custom_action シグナルで区別できる
AcceptDialog.new() で動的生成する シーンに置かずコードだけで使い捨てダイアログを作れる。ヘルパー関数化しておくと便利
confirmed シグナルを使う OKを押した後に次の処理(画面遷移・リトライなど)をつなげられる

まとめ

AcceptDialog は 「メッセージとOKボタンだけのシンプルな通知ダイアログ」 です。

  • dialog_textpopup_centered() の2行だけで最低限のダイアログが作れる
  • titleok_button_text を変えるだけで用途に合った表現になる
  • 「はい・いいえ」の選択が必要なら ConfirmationDialog(039)に切り替える

次回は、確認操作に使う「はい・いいえ」ボタン付きダイアログ ConfirmationDialog を紹介します。

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

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

コメント