UE4:ポーズ画面の作り方
どうも僕です。
普段UE4を触っているのですが、GGJ行ってわかったことは案外メニュー画面ってゲーム制作しないとなかなか作る機会ないなと感じました。タイトル画面は作ったんですけど(参照記事:)時間がなくポーズ画面を適当に作ってしまい、GGJ終了後動かした時に不具合の存在に気づいちゃった感じですね。
UE4:タイトル画面でのボタンの設置について - 僕の私のUnrealな日々
で、今暇なのでガッツリ作っていこうと思います。
ポーズ画面を作ろう
今回の仕様:
「P」を押すとWidgetが出てくる。
WidgetのBackを押すとゲームに戻る
Quit Gameを押すとゲーム終了
ポーズ中はゲームが止まる。
作成をクリックしユーザーインターフェースのWidgetブループリントを開きます。
ボタンとテキストを配置します。
ボタン配置などの方法はこの動画がわかりやすいです。
UMG Inventory in UE4 – Part 3 – Scripting and ...
Back、Quit Gameのボタンにイベントを追加します。(ボタンを選択して詳細の一番下のイベント欄にあるViewOnClickをクリック)
Backはゲームに戻るようにするため、Remove from Parentノードにつなげます。このノードはクリックされた時にWidgetを非表示にするノードです。
Quit Gameはゲームを終了するためにQuit Gameノードにつなげます。このノードはクリックされた時にゲームを終了するノードです。
そしてGetPlayerControllerを出しShowMouseCursorノードにつなげます。(チェックは外す)”詳しくはタイトルメニューの作り方を見てね”
次にMyCharacterのBluePrintに移ります。
Pを押した時にWidgetが出るようにするため、プロジェクト設定の入力でActionMappingsを選択しOpenMenuを作成します。
グラフに移り以下のようにノードを設置します。
そしてプレイを押し「P」を押すと
出てきますが、マウスを動かすと
Widgetも一緒に動いてしまいます。これは駄目だ。ということで、
[Set Input Mode UIOnly]ノードを使用します。(参照:Document)
これによってUI用のモードに移ります。そしてボタンが押されたあとこのモードを通常に切り替えるためにWidgetのグラフの方に写り
[Set Input Mode Game Only]ノードを設置します。
(Get Player Controllerにつなげるのを忘れないでね)
これでプレイを押し、「P」を押すとマウスを動かしても視点がかわりません。
しかし、ポーズ画面なのでゲーム自体が止まっていなければなりません。
敵は待ってくれない
(ゴブリンがこっちに向かってくる様子)
なので[GamePause]ノードを設置します。
MyCharacterのBluePrintにはチェックを付けて
Widgetの方にはチェックを付けずに
すると
きちんと止まってくれる。
これで終了です。
よし、これでアクションゲームとか作れそうですね
分かりづらい所があったらすいません。
だらだらと書いてしまいましたが、結構簡単に出来るんじゃないかと思います。
BluePrintとっても面白いね。
以上。