この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:T
更新日時:2026-06-11 07:07:02

タイトル: メニュー画面を作成して開く方法
SEOタイトル: UE5 でメニュー画面を作成・表示・終了する手順(ウィジェットブループリント / Create Widget / Add to Viewport / Set Input Mode)

この記事の要点
  • UE5 のメニュー画面は ウィジェットブループリント(UMG)で UI を作り、Create WidgetAdd to Viewport で表示する
  • ボタンの OnClicked イベントに Open Level / Quit Game / Remove from Parent を結線して、開始・終了・閉じるを実装
  • Set Input Mode UI Only / Game and UI / Game OnlyShow Mouse Cursor で入力モードとカーソル表示を切り替える
  • メインメニューは 専用レベルに置き、Open Level でゲーム本編へ遷移するのが定番構成
  • ポーズメニューは Set Game Paused (true/false) で時間を止めるのがセオリー

UE5 のメニュー画面の基本構成

Unreal Engine 5(UE5)でメニュー画面を作るときは、UMG(Unreal Motion Graphics)と呼ばれる UI システムを使います。具体的には ウィジェットブループリントで見た目を作り、レベルブループリントやプレイヤーコントローラーから Create WidgetAdd to Viewport の流れで画面に表示します。

本ページでは、もっとも頻出するメインメニュー・ポーズメニューの作り方を順を追って解説します。

1. ウィジェットブループリントを作る

  1. コンテンツブラウザで右クリック
  2. ユーザーインターフェース → ウィジェットブループリント
  3. 親クラスは User Widget を選択
  4. 名前を WBP_MainMenu のように分かりやすく付ける

ダブルクリックでウィジェットエディタが開きます。デザイナタブで UI を配置していきます。

2. レイアウトの基本

要素役割
Canvas Panelルートの自由配置パネル(デフォルト)
Vertical Box / Horizontal Boxボタンを縦/横に並べる
Buttonボタン。OnClicked イベントを持つ
Text Blockテキスト表示。ボタン内の文字にも使う
Image背景画像 / アイコン
Spacer余白

メインメニューなら、Canvas Panel の中央に Vertical Box を置き、その中に「PLAY」「OPTIONS」「QUIT」のボタンを縦に並べるのが定番です。

3. ボタンのイベントを設定する

ウィジェットエディタ右上のGraphタブに切り替え、配置したボタンを選択して OnClicked イベントを追加します。

PLAY ボタン:ゲーム本編へ遷移

  • OnClicked (PlayButton)Open Level (by Name) → ゲーム本編のレベル名を入れる
  • Remove from Parent で自身を消す(任意。Open Level するとレベルが変わるので必須ではない)

OPTIONS ボタン:設定ウィジェットを表示

  • OnClicked (OptionsButton)Create Widget(クラス: WBP_Options)→ Add to Viewport
  • 必要に応じてメインメニュー側を Set Visibility → Collapsed で隠す

QUIT ボタン:ゲームを終了

  • OnClicked (QuitButton)Quit Game(Player Controller を渡す)
  • Quit Preference は Quit(モバイルなら Background も可)

4. メインメニューをレベルブループリントから表示する

メインメニュー専用のレベル(例: L_MainMenu)を作り、そのレベルブループリントで以下の処理を組みます。

  1. Event BeginPlay
  2. Create Widget(Class: WBP_MainMenu、Owning Player: Get Player Controller)
  3. Add to Viewport
  4. Set Input Mode UI Only(Player Controller / In Widget to Focus にウィジェット参照)
  5. Set Show Mouse Cursor (true)(Player Controller の関数)

5. ポーズメニュー(ゲーム中の Esc 開閉)

ゲーム本編で Esc キーを押したらポーズメニューを開く処理は、プレイヤーコントローラーのブループリントが置き場所として最適です。

入力アクションの設定

  1. Project Settings → Input → Action Mappings に PauseMenu を追加し、Esc キーをバインド
  2. プレイヤーコントローラーの BP で InputAction PauseMenu イベントを作る

開く処理

  1. Create Widget(Class: WBP_PauseMenu
  2. Add to Viewport
  3. Set Game Paused (true)(UGameplayStatics)
  4. Set Input Mode Game and UI
  5. Set Show Mouse Cursor (true)

閉じる処理(メニュー内の「再開」ボタン)

  1. Remove from Parent(自身のウィジェット参照)
  2. Set Game Paused (false)
  3. Set Input Mode Game Only
  4. Set Show Mouse Cursor (false)

6. 入力モードとマウスカーソル

UI のクリック可否やキャラクター移動可否は、Set Input Mode 系の関数で切り替えます。

関数用途
Set Input Mode UI Onlyメインメニューなどゲーム入力を完全に止めたいとき
Set Input Mode Game and UIポーズメニュー / インベントリ。両方の入力を受け取る
Set Input Mode Game Only通常プレイ。マウスカーソルを隠す
Set Show Mouse Cursorマウスカーソルの表示/非表示

7. よくあるトラブル

症状原因と対処
ボタンが押せないSet Input Mode が Game Only のまま / マウスカーソル非表示 / Z オーダーで別ウィジェットが上に
2 重に開く開く処理にトグル制御が無い。ウィジェット参照を変数に保持して Is Valid で判定
ポーズ中にアニメが動くそのアニメ / コンポーネントが Tick when Paused になっている。普通は Off
レベル遷移後に UI が残るOpen Level 前に Remove from Parent または Remove All Widgets
キーが効かなくなるUI Only に切り替えたまま閉じていない

8. C++ で同じことをする場合

// 例: PlayerController.cpp
void AMyPlayerController::ShowPauseMenu()
{
    if (PauseMenuClass)
    {
        UUserWidget* W = CreateWidget(this, PauseMenuClass);
        if (W)
        {
            W->AddToViewport();
            UGameplayStatics::SetGamePaused(this, true);
            bShowMouseCursor = true;
            FInputModeGameAndUI Mode;
            Mode.SetWidgetToFocus(W->TakeWidget());
            SetInputMode(Mode);
        }
    }
}

まとめ

  1. ウィジェットブループリントで UI をデザイン
  2. 各ボタンの OnClicked にゲーム遷移/設定表示/終了を結線
  3. Create Widget → Add to Viewport で画面に出す
  4. Set Input Mode と Show Mouse Cursor を必ずペアで切り替え
  5. ポーズメニューは Set Game Paused で時間を止める

関連

  • UMG / Widget Blueprint — UE5 の UI システム
  • Create Widget / Add to Viewport — UI の表示
  • Set Input Mode — 入力モード切替
  • Open Level / Quit Game — レベル遷移とゲーム終了
  • Set Game Paused — ゲームの一時停止