ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
Set Game Paused ノードの基本
Unreal Engine の Set Game Paused ノードは、ゲームをワンクリックで一時停止する公式 API です。Blueprint の任意の場所から呼び出せ、引数は Paused (bool) のみ。Pause メニューを開く際の鉄板コードです。
[Blueprint Node]
Set Game Paused
Paused: true → ゲーム停止
Paused: false → ゲーム再開
戻り値: 成功した場合 true
C++ での呼び方
#include "Kismet/GameplayStatics.h"
// 停止
UGameplayStatics::SetGamePaused(GetWorld(), true);
// 再開
UGameplayStatics::SetGamePaused(GetWorld(), false);
// 現在の状態を取得
bool bPaused = UGameplayStatics::IsGamePaused(GetWorld());
停止中に止まる物 / 止まらない物
Set Game Paused が true のとき、何が止まり何が動き続けるかを理解しておくのが重要です:
| 項目 | 状態 | 備考 |
|---|---|---|
| Actor の Tick | 止まる | 既定動作 |
| Component の Tick | 止まる | 既定動作 |
| Physics Simulation | 止まる | Rigid Body 更新も停止 |
| Animation | 止まる | Anim BP の Tick が止まる |
| Particle System (Cascade) | 止まる | |
| Niagara System | 止まる | |
| Sound | 続く | BGM はそのまま流れる |
| UMG Widget の Tick | 続く | UI は動き続けるので Pause メニューが操作可能 |
| Player Controller | 続く | 入力受付のため |
| Set Timer by Function Name | 止まる | 世界時間に従う |
| Real Time Timer | 続く | Real Time フラグ ON のもの |
Pause 中にも動かしたい Actor を作る
Pause 中にも特定の Actor だけ動かしたい場合 (Pause 中の演出用エフェクト、UI 連動カメラ等):
// AActor の Tick を Pause 中も実行
AMyActor::AMyActor()
{
PrimaryActorTick.bCanEverTick = true;
PrimaryActorTick.bTickEvenWhenPaused = true; // ★
SetTickableWhenPaused(true); // C++ 補助
}
// UActorComponent の場合
PrimaryComponentTick.bTickEvenWhenPaused = true;
Blueprint の場合は Class Defaults > Tick > Tick Even When Paused にチェック。
典型的な Pause メニュー実装
[Player Controller Blueprint]
Input Action: PauseGame (Esc キー想定)
1. Branch: Is Game Paused?
true → Set Game Paused (false)
Remove Widget
Set Input Mode Game Only
Set Show Mouse Cursor (false)
false → Create Widget (PauseMenuWidget)
Add to Viewport
Set Game Paused (true)
Set Input Mode UI Only (target widget)
Set Show Mouse Cursor (true)
C++ 版
void AMyPlayerController::TogglePause()
{
bool bIsPaused = UGameplayStatics::IsGamePaused(this);
if (bIsPaused)
{
// 再開
UGameplayStatics::SetGamePaused(this, false);
if (PauseMenuWidget) PauseMenuWidget->RemoveFromParent();
FInputModeGameOnly InputMode;
SetInputMode(InputMode);
bShowMouseCursor = false;
}
else
{
// 停止
if (!PauseMenuWidget)
{
PauseMenuWidget = CreateWidget(this, PauseMenuClass);
}
PauseMenuWidget->AddToViewport();
UGameplayStatics::SetGamePaused(this, true);
FInputModeUIOnly InputMode;
InputMode.SetWidgetToFocus(PauseMenuWidget->TakeWidget());
SetInputMode(InputMode);
bShowMouseCursor = true;
}
}
Set Game Paused vs Time Dilation
ゲームを完全停止するかスローにするかで使い分けます:
| Set Game Paused | Set Global Time Dilation | |
|---|---|---|
| 動作 | 完全停止 | 時間流速を変更 |
| Tick | 呼ばれない | DeltaTime が縮む |
| UI 操作 | ○(UMG 別系統) | ○ |
| 用途 | Pause メニュー | バレットタイム / スローモーション |
// スローモーション (0.3 倍速)
UGameplayStatics::SetGlobalTimeDilation(GetWorld(), 0.3f);
// 等速
UGameplayStatics::SetGlobalTimeDilation(GetWorld(), 1.0f);
// 個別 Actor だけスロー (他はそのまま)
MyActor->CustomTimeDilation = 0.3f;
Pause 中の入力モード
| 入力モード | 用途 |
|---|---|
| Game Only | 通常プレイ。マウスはキャプチャ |
| UI Only | UI のみ受付。プレイヤー操作不可(Pause メニューに最適) |
| Game and UI | 両方受付。インベントリ等で使用 |
マルチプレイヤーでの Pause
マルチプレイ環境では Set Game Paused が効かないのがデフォルトです。理由は他プレイヤーまで停止させると不公平になるため。サーバ側で AGameModeBase::SetPause(PlayerController) を実装する必要があります:
// GameMode で許可
AMyGameMode::AMyGameMode()
{
bPauseable = true; // 既定 true だが、Networked Game では false にする方が安全
}
// 全プレイヤー停止には GameMode::SetPause で判定
bool AMyGameMode::AllowPausing(APlayerController* PC)
{
return false; // マルチプレイで一切停止を許さない
}
FAQ
Q: Pause メニューが効かない (キー押しても反応しない)
A: ① 入力モードが UI Only になっていない、② InputAction の Bind 先が間違っている、③ Player Controller がない (Pawn から直接 Bind してしまっている) を確認。
Q: Pause 中に BGM も止めたい
A: UAudioComponent の bIsUISound を false にし、SoundClass で個別に音量を下げるか、Audio Volume の Mixer Snapshot で BGM だけミュート。
Q: Pause 中のタイマーが進む
A: SetTimerForNextTick や Tickable Object など Real Time 駆動の物は止まりません。FTimerHandle + GetWorldTimerManager() なら停止対象。
Q: Networked Multiplayer で Set Game Paused が動かない
A: 仕様です。シングルプレイか、AllowPausing で個別判断するか、UI Only モードで擬似 Pause を実装してください。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- 床の上に乗ったらイベントを発生させる方法
- OverlapAllDynamicとOverlapAllの違い
- タイトル画面を作る方法
- サードパーソンテンプレートでのキャラクター表示の仕組みと非表示にする方法
- ボタンに文字を記載する方法
- Event ActorBeginOverlapとOn Component Begin Overlapの違い
- キャラクターに特定のオブジェクトとの当たり判定を付ける
- 特定のオブジェクトに触れたとき、キャラクターが倒れるようにする
- 動いているオブジェクトに静止しているキャラクターが当たり判定を持たない原因と解決方法
- 「On Component Hit」に「Cast To ~」で複数のクラスを指定する方法
- Blenderファイルをインポートする方法
- 鏡を作成する方法
- レベルブループリントでキャラクターの出現を設定する方法
- サードパーソンテンプレートにおけるキャラクター出現の定義
- アイテムに近づいたらボタンを押してイベントを発火させる方法
- 画面の中央にメッセージを表示する方法
- どこからでも呼び出せるカスタムイベントを作成する方法
- カスタムイベントに引数を追加する方法
- 「Get Overlapping Actors」から特定のクラスの場合のみ処理を実行する方法
- オブジェクトに近づいている間だけメッセージを表示する方法
- PCの画面を操作するUIを作る方法
- コンテンツブラウザに画像を追加する方法
- SetInputMode_UIOnlyを取り消す方法
- 特定の画像の上にマウスカーソルを置いたら手マークにする方法
- オブジェクトがアウトライナーで選択できない原因と解決策
- PlayerStartを作成する方法
- メニュー画面を作成して開く方法
- 「Esc」キーを押してメニュー画面を開く方法
- イベントの「On Clicked」と「On Pressed」の違い
- 「Set Input Mode」の種類と使い方
- 「Set Game Paused」の使い方と詳細解説
- Motion Matchingとは?
- 「GameMode」と「GameModeBase」の違い
- マップに配置したTargetPointを取得する方法
- UE5でマップに配置したTargetPointを取得する方法
- TargetPointにタグをつけて取得する方法
- Spawnしたインスタンスがイベントを実行する方法
- 特定の時間ごとに処理を実行する方法
- 数値をランダムで出力する方法
- ThirdPersonテンプレートでキャラクターの移動を歩くように変更する方法
- MaxWalkSpeedを変更する方法
- しゃがむ動作を導入する方法
- キャラクターのアニメーションを設定する方法
- 導入済みのプラグインを確認する方法
- Motion Matchingの導入と必要なプラグイン
- プレイヤーを非表示にする方法
- カメラを傾ける角度を制限させる方法
- 配列からランダムに重ならない要素を特定の数取得する方法
- カメラの映す画面に文字やエフェクトを付ける方法
- キャラクターやメッシュを非表示にした際にカメラが移動しなくなる問題の解決方法
- プライマリーデータアセットを活用する方法
- プレイヤーのHPといった変数を定義する最適な場所
- カメラに映った画面をスクリーンショットとして保存する方法
- スクショ以外の方法でゲーム内のカメラ映像を保存して再表示する方法
- HighResShotを使って画像を保存する方法
- HighResShotで保存した画像のファイル名を取得する方法
- SceneCapture2DとFrameGrabberの画像保存方法の比較
- SceneCapture2Dを使用して画像を保存・取得する方法
- HighResShotとTake High Res Screenshotの違い
- ゲーム終了ボタンを作成する方法
- 「Save Game To Slot」の戻り値がfalseになる問題の解決方法
- 画面上にメッセージを指定された時間表示させる方法
- 「シェーダをコンパイル」を短縮する方法
- 「Take High Res Screenshot」実行時に「シェーダをコンパイル」に長時間待たされる問題とその解決策
- データベースを活用する方法
- UE5.5がインストールされた環境にUE5.4を追加で導入する方法
- World PartitionとWorld Compositionの違い
- オープンワールドテンプレートとは?
- ポーンをスポーンさせても視点を切り替えない方法
- キャラクター同士がすり抜けてしまう問題の解決方法
- キャラクターの外見を動的に変更
- World Partitionでインスタンスが「アンロード済み」になる問題
- データ アセットとデータ テーブルの違い
- コンポーネントイベントグラフ内で親クラスの変数にアクセスする方
- エディターのソースコードの自動保存の頻度を高める方法
- SpawnActorでSpawn Transform Rotationが反映されない理由
- ミニマップを表示し、ポーンの位置を反映する方法
- RInterp ToとVInterp Toの違い
- 毎秒実行するイベントの定義方法
- Niagara のエフェクトにコリジョンを持たせる方法
- 「Overlap」と「Hit」の違い
- Overlapは発生するがHitは発生しない原因
- Overlapした位置の座標を取得する方法
- ブループリントでレベル間のパラメータを受け渡す方法
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- SEO タイトル設計とキーワード配置完全ガイド (CTR / LLMO 対応) 2026-06-10 18:13:56
- Vue.js v-bind 完全ガイド (属性 / クラス / スタイル / Composition API) 2026-06-10 18:13:56
- Twitter (X) プラットフォーム完全ガイド 2026 (API / Premium / 競合) 2026-06-10 18:13:56
- PHP 変数スコープ完全ガイド (global / static / use / Arrow Function) 2026-06-10 18:13:56
- jQuery .height() 完全ガイド (innerHeight / outerHeight / box-sizing) 2026-06-10 18:13:56
- WordPress 主要独自関数完全ガイド (Loop / Enqueue / Hook / Conditional Tag) 2026-06-10 18:13:56
- jQuery 要素・値の削除完全ガイド (remove / detach / empty / val) 2026-06-10 18:13:56
- PHP コメント完全ガイド (// / # / /* */ / PHPDoc) 2026-06-10 18:13:56
- PHP 改行出力 (\n / PHP_EOL / nl2br) 完全ガイド 2026-06-10 18:13:56
- JavaScript 確認ダイアログ完全ガイド (confirm / alert / prompt / dialog) 2026-06-10 18:13:56
- UE5 スクリーンショット保存 (Scene Capture) 完全ガイド 2026-06-10 18:12:53
- UE5 Nav Mesh Bounds Volume 完全ガイド 2026-06-10 18:12:53
- EJS テンプレートの共通化 (include) 完全ガイド 2026-06-10 18:12:53
- UE5 カメラ傾き角度制限完全ガイド (Pitch Min/Max) 2026-06-10 18:12:53
- SQLite 完全ガイド (組み込み RDBMS) 2026-06-10 18:12:53
コメントを削除してもよろしいでしょうか?