俺に解るように説明する "Unreal.Engine.4" 入門+

UnrealEngine4とかチュートリアルとか入門とか

【日本語】 UE4 ホッケーゲーム part.27 ゲームポーズ、終了、ロード 【チュートリアル】

ゲームオーバー時の処理を完成させよう。問題だったのは、10点とっても、マレットやパックが動くので、得点が加算されていくこと。マレットの動きを効かなくするとか、パックを一時的に消してしまってもイイのだが、一番簡単なのが、ゲームをポーズ(pause)させてしまうことだ。これで、パックもマレットも止まる。なんと、このゲームポーズは、たった1つのノードで出来てしまう。[Set Game Paused] だ。恐るべし。

f:id:ore2wakaru:20160503225551j:plain

----------

これで、ゲームは止まり(ゲームのTickが処理されない)、パックもマレットも動かなくなる。だが、マウスは動くし、ウィジェットのボタンも受け付ける。非常に好都合な状態になる。では、ウィジェットのボタンを機能させるよう、ノードを追加していこう。

  1. "WG_YouWin" の [Graph] モード
  2. [My Blueprint] の [Variables] の "Button_PlayAgain" を選択
  3. [Details] の [Events] の [On clicked] の "+" をクリック
  4. シュルシュルっと [OnClicked (Button_PlayAgain)] が出る
  5. "Button_Quit" も同様にして [OnClicked (Button_Quit)] を出し
    それぞれ、
    [Open Level] につなぐ。[Level Name] は "LV_2_Game"
    [Quit Game] につなぐ

f:id:ore2wakaru:20160504001650j:plain

【追加の解説】

[1]~[4] ボタンの場合は、以前もやったように、勝手に変数化してくれて、しかも、イベントも選べるようにしてくれるので楽だった。しかしコレ、実は、[Designer] モードの方で、[Is Variable] にチェックが入っている必要がある。[Is Variable] にチェックがあるから、[My Blueprint] で変数(variable)に追加されていたのだ。UE4が勝手にやってくれるので、あたりまえのことと思ってしまうが、一応意識しておこう。

[5] [Open Level] は最初の頃に出てきたもので、レベル移動するためのノードだった。ゲームをもう一度したい時は、再度、2面(LV_2_Game)をオープンしなおしてやればイイということ。

[Quit Game] はその名の通り、ゲームを終了させるノード。他に、[Execute Console Command] で "Quit" と書き込み、終了させる方法もある。

"WG_YouLose" も同様に作れば、ゲームオーバーの処理は完成だ。

----------

f:id:ore2wakaru:20160504003552j:plain

ポーズも、ゲーム終了も、ちゃんとノードが用意されていて便利。今日はあっという間に終わった。これでほぼ、

  1. ゲームの開始
  2. ゲームのメイン
  3. ゲームの終了

という、ゲームに必要な最短の流れが、完成と言える。あとは、敵側のマレットを動かせればイイかな。あ、マテリアルか。というわけで、ここまで。では、また。

"Save All"。