Language:
Page Info
Engine Version:

5.ゲーム内の一時停止メニューの作成 / スクリプティング


最後に、シンプルな一時停止 (Pause) メニューを作成します。このメニューを使ってプレイヤーはゲームを一時停止または終了できます。

ビジュアル:一時停止メニューのレイアウト

このセクションでは基本的な一時停止メニューの視覚的レイアウトを作ります。

  1. Pause Menu Widget ブループリントを開きます。

  2. [Designer (デザイナ)] タブで、パレット からウィジェットを Hierarchy にドラッグ&ドロップして以下のようにセットアップします。

    Pause1.png

    キャンバス パネル には、テキスト 付き Vertical Box が 1 つ、およびそれぞれ テキスト を持つ 2 つの ボタン を含む Border が 1 つあります。

  3. Designer ウィンドウで、 Border をサイズ調整して点線のウィンドウ全体を占有するようにします (画面を満たす)。

    Pause2.png

    [詳細] パネル内の Brush Color オプションから色を変更することもできます。

    Pause3.png

    色の Alpha0.5 に設定して、少し透明にします。ゲームプレイ中に一時停止メニューが開くと、Border が画面を満たしますが、少し透明にすることでバックグラウンドでゲームが見えるようにします。

  4. [詳細] パネルの Border で、画面を満たすアンカーを使用するようにしてください。

    Pause4.png

    これにより、画面サイズに関係なく Border が画面を満たすようになります。

  5. [Hierarchy]Vertical Box を選択します。次に、 [詳細] パネルで水平方向、垂直方向ともセンタリングします。

    Pause5.png

  6. Vertical Box の下にある Text を選択して、コンテンツ[詳細] パネルで Pause Menu と入力します。

    Pause6.png

  7. 他の 2 つの テキスト ブロックに ResumeQuit を入力します。

    Pause7.png

  8. Ctrl を押したまま、Hierarchy にある両方の Button を選択します。次に [詳細] パネルの StyleHovered に対して色を割り当てます。

    Pause8.png

  9. [詳細] パネル内で ButtonResumeQuit にそれぞれ名前変更します。

    Pause9.png

スクリプト:一時停止メニューの機能

ビジュアル面を設定したら、次にスクリプティングした機能を一時停止メニューに設定します。

  1. [Widget Blueprint Editor] ウィンドウの右上隅にある [グラフ] ボタンをクリックします。

  2. [My Blueprint] ウィンドウの [グラフ] タブ上で、 QuitButton をクリックします。 [Details (詳細)] パネルで OnClicked Event を追加します。

    PauseScript1.png

  3. ResumeButton にも OnClicked イベントを追加します。

  4. Graph ウィンドウで 右クリック し、 Get Player Controller ノードを追加します。

    PauseScript2.png

  5. Get Player Controller から Set Input Mode Game Only を使用し、次に Remove from ParentSet Game Paused を以下のように使用します。

    PauseScript3.png

    Resume Button をクリックすると、入力モードはゲームのみになり、一時停止メニューが有効な時に表示されるカーソルが取り除かれます。Set Game Paused ノードを使用して Paused のチェックは外して一時停止状態から離れる前に、Remove from Parent ノードを使用して、実際の Pause Menu ウィジェットを取り除きます。

  6. Remove HUD という新しい Function を作成します。

    PauseScript4.png

    一時停止メニューが有効になると、これを使用してプレイヤーのビューから HUD を取り除きます。

  7. この関数内で Get Player Character ノードを追加し、 Return Value から、Cast ToFirstPersonCharacter ノードを追加します。

    PauseScript5.png

    これで、プレイヤーが使用する Character ブループリントとプレイヤーが使用しているゲームの HUD にアクセスできます。

  8. 以下の画面のように As First Person Character から Get HUD Reference を使用し、次に Remove from Parent を使用します。

    PauseScript6.png

    これでプレイヤー キャラクターが使用する HUD にアクセスし、ゲームをやめるときにビューポートから取り除きます。

  9. イベントグラフGet Player Controller から、True に set された Set Show Mouse Cursor ノードを使用します。

    PauseScript7.png

    Quit をクリックすると、メインメニューに戻るときにメニューを移動するためにマウス カーソルがオンになります。

  10. 上記で作成した Remove HUD 関数を追加し、その後に Open Level (Main または独自のメインメニューがあるレベルの名前に設定) を追加し、以下のように接続します。

    フルサイズ表示するにはここをクリック

    ボタンを両方ともセットアップしたので、最後にやるべきことはプレイヤーが一時停止メニューを呼び出し、ゲームを停止できるようにすることです。

  11. コンテンツ ブラウザContent/FirstPersonBP/BlueprintsFirstPersonCharacter ブループリントを開きます。

    PauseScript9.png

  12. グラフ内で M Key Event と Create Widget ノード (Pause Menu に設定) を追加し、その Return Value を変数に昇格します。

    PauseScript10.png

    一時停止メニューを表示させるために M Key を入力として使用しましたが、どのキーでもご利用いただけます。昇格した変数に対して、作成した一時停止メニューへの参照を格納するため変数 Pause Menu Reference を呼び出しました。

  13. Ctrl を押しながら、MyBlueprint ウィンドウから変数をドラッグしてそれを IsValid ノードに接続します。

    PauseScript11.png

    一時停止メニュー ウィジェットが作成され、この変数に格納されたかを確認します。

  14. Is Not Valid ピンを Create PauseMenu_C Widget に接続します。

    PauseScript12.png

  15. 右クリック して、Get Player Controller ノードを追加し、次に Set Input Mode UI Only を追加し、以下のように接続します。

    PauseScript13.png

    M を押すと、一時停止メニューに以前アクセスしたことがあれば、再度作成する必要なく、代わりにこの変数にアクセスします。もしこれが一時停止メニューに初めてアクセスする時であれば、それを作成し、変数として格納して後でアクセスできるようにします。いずれの場合も、一時停止メニューを表示する (これは以下で行います) 前は、入力モードは UI のみに設定されます。

  16. Pause Menu Reference 変数から Add to Viewport ノードを使用し、次に Set Game Paused (PausedTrue に設定) を使用します。

    フルサイズ表示するにはここをクリック

    一時停止メニューをセットアップしたので、テストします。

  17. コンパイル ボタンと 保存 ボタンをクリックします。次に、エディタで再生するために 再生 ボタンをクリックします。

    ゲーム内で、M Key (または割り当てた任意のキー) を押すと、ゲームが一時停止し、一時停止メニューが表示されるのがわかります。ここから Resume ボタンでゲームプレイを再開するか、Quit ボタンを使用して終了してメインメニューに戻ります。

次のセクションでは、 **UMG (Unreal Motion Graphics)** と **ブループリント** を使用した作業に関する追加情報を提供します。