Language:
Page Info
Skill Level:

3.アクタのセットアップとテスト

この最後のセクションでは、Widget ブループリントを Widget コンポーネントとしてアクタに追加し、プレイヤーが Enter ボタンをクリックすると何が起こるかを定義し、入力されたテキストが GoalText と同じになるかをチェックします。 何もかも配置した状態で、テストして最終結果を見てみます。コードが正しければ Success と画面に表示され、コードに誤りがあれば Wrong Code と表示されます。

ステップ

  1. KeypadDisplay ブループリントを開き、クラスを [KeypadDisplayWB][Draw at Desired Size] に設定した Widget コンポーネントを追加します。

    Keypad15.png

    [Draw at Desired Size] は、レンダー ターゲットを Widget ブループリント内で必要なサイズに簡単に自動的にマッチさせる方法です。

  2. Keypad ブループリントを開き、クラスを KeypadWBDraw at Desired Size に設定した Widget コンポーネントを追加します。

  3. この Widget コンポーネントの [Window Focusable] オプションのチェックを外します。

    Keypad16.png

    このコンポーネントによって、Keypad Display ウィジェットからフォーカスが外されないようにするため、チェックを外す必要があります。

  4. Keypad 内で、Enable Hit Testing を false に設定した WidgetInteraction コンポーネントを追加します。

    Keypad17.png

    この WidgetInteraction コンポーネントを追加したのは、プレイヤー キャラクターでこの WidgetInteraction コンポーネントを参照する必要をなくすためです。Hit Testing を無効にしたのは、ホーバー エフェクトを生成しないようにするためです。デフォルトでは、WidgetInteraction コンポーネントは、作成時に Virtual User Index 0 に設定されており、すべてのコンポーネントは Virtual User Index ID を使用して通信します。プレイヤー キャラクターの WidgetInteraction コンポーネントも、Virtual User Index 0 を使用しているため、それを参照することと同じです。

  5. Keypad のグラフで、Event Begin Play から、Widget コンポーネントと Get User Widget Object、そして Cast to KeypadWB を取ります。

    Keypad18.png

  6. As Keypad WB ピンから Widget Interaction を Set し、ステップ 4 の WidgetInteraction コンポーネントを渡します。

  7. As Keypad WB ピンから、Assign Enter Pressed を呼び出します。これにより、Enter Pressed Custom Event を作ります。

    Keypad19.png

    Enter ボタンをクリックすると、この Custom Event が呼び出されます。これを使って、正しいコードが入力されたかをチェックすることができます。

  8. TargetDisplay と呼ばれる Keypad Display Actor 型の Variable を作成して Editable に設定します。

    Keypad20.png

  9. GoalText と呼ばれる Text 型の Variable を作成します。次に Compile し、Default Value1212 に設定します。

    Keypad21.png

  10. Ctrl キーを押しながら、TargetDisplay をドラッグして、WidgetUser Widget Object を get し、Cast to KeypadDisplayWB につなげます。

    Keypad22.png

  11. As Keypad Display WB ピンから、Editable Text BoxGetText(Text Box) を get し、Goal TextEquals (等しい) かどうかを確認します。

    Keypad23.png

  12. 2 つの Print String を持つ Branch を追加します。True (Success を使用) と False (Wrong Code を使用) の 2 つです。

    Keypad24.png

  13. Keypad ブループリントと KeypadDisplay ブループリントをレベルにドラッグして、必要に応じて回転/配置します。

  14. Keypad アクタの [Details] パネルで、Target Display 変数をレベル内の KeypadDisplay に設定します。

    Keypad25.png

  15. レベルでプレイします。

最終結果

キーパッド表示にアプローチし、その中で 右クリック して、フォーカスします。ボタンを見て、右クリック し、Send Key Char コマンドを発行し、その値をディスプレイに渡します。 右マウスボタンを使ってレベル内のこのウィジェットとインタラクションしますが、代わりにゲームパッドやモーション コントローラーのボタンを押すようにすることもできます。

この例では、正しいコードが入力されたか否かを単に画面に表示していますが、ドアを開く何らかのイベントを発行したり、敵や他のゲームプレイ関連のイベントをスポーンさせることもできます。