Language:
Page Info
Tags:
Engine Version:

3.射撃対象となる岩をスポーンする

Description:プレイヤーがボタンを押して射撃対象となる岩をスポーンできるロジックを設定します。レベル内にスポーン ポイントを幾つか定義してあります。それらの 1 つを取得するために、イベントディスパッチャー を使って Level ブループリント (次のステップで作成します) 内にイベントを実行して、これらの位置の 1 つを取得して Character プリントに送ります。

それではまず、プレイヤーがキーを押して、射撃対象となる岩をスポーンできるようにしましょう。

  1. FirstPersonCharacter ブループリント内で、グラフをどこか 右クリック して F Key Event を追加します。

    FKeyEvent.png

  2. B を押したまま、グラフ内で 左クリック して、Branch ノードを作成します。

  3. Alt を押しながら isActive 変数をドラッグしてチェックボックスにチェックを入れて、以下のように接続します。

    BranchAdded.png

  4. Control を押しながら、isActive 変数と Pulls 変数をドラッグします。

  5. isActiveNOT Boolean ノード (true でない) に接続し、Pulls> ノード (0 に設定) に接続します。

    TwoNodesAdded.png

    古いバージョンのエンジンでは、NOT Boolean ノードは != ノードと扱われています。

  6. 上記の出力を 2 つとも And ノードに接続し、BranchCondition につなぎます。

    AndAdded.png

    ここで、IsActive 変数が true ではなく、プレイヤーの Pulls 数が 0 より大きいかどうかを確認することにより、プレイヤーが岩をスポーンできるかどうかを判断するロジックを設定します。両方のステートメントが true であれば、Branch ノードの True 側を処理して岩をスポーンします (スクリプトはまだ完全ではないので、以下で設定をします)。

  7. Alt を押しながら Pulls 変数をドラッグして Set IsActive ノードの次に接続します。

  8. Control を押しながら Pulls 変数をドラッグして Int - Int ノード (1 に設定) に接続し、さらに Set Pulls に接続します。

    PullsSet.png

  9. Compile をクリックし、Set Pulls ノードを引き出して ResetShots カスタム イベントを追加します。

    CallCustomEvent.png

    設定はこのようになっているはずです。

    ScriptBeforeEventDispatcher.png

    プレイヤーが岩をスポーンできる時に対するロジックはされました。次はスポーン位置を取得するためにレベルと通信する必要があります。F が押されると呼び出される イベントディスパッチャー を使って行います。Level ブループリント はイベントディスパッチャーをリッスンし、呼び出されると独自のイベントを実行してスポーン ポイントの 1 つの位置を取得し、それを Character ブループリントへ渡します。

  10. [My Blueprint] ウィンドウで [+ Event Dispatcher (イベントディスパッチャーを追加)] ボタンをクリックします。

    AddEventDispatcher.png

  11. 新しいイベントディスパッチャーをクリックして選択した状態で F2 を押して名前を「GetSpawnLocation」に変更します。

    RenameEventDispatcher.png

  12. Reset Shots 関数の次のグラフに、Call GetSpawnLocation ノードを追加します。

    CallEventDispatcher.png

    Event Dispatcher が追加されたことが、ノードの右上端に封筒のアイコンで表示されます。

    NewNodeAdded.png

  13. GetSpawnLocation ノードを引き出して Spawn Actor from Class ノードを追加します。

    SpawnActorNode.png

  14. Spawn Actor ノードの ClassBP_Rock に設定します。

  15. Spawn Actor ノードでも、SpawnLocation 変数を Spawn Transform ピンにドラッグ&ドロップします。

    SpawnActorComplete.png

    射撃対象となる岩をスポーンし、岩をスポーンする Transform 位置を受け取るように、Character ブループリントが設定されました。

次のステップでは Level ブループリント を使用して、Character ブループリントのイベントディスパッチャーが呼び出された時に、スポーン ポイントの 1 つの位置を取得して、その情報を Character ブループリントに渡します (こうすることで、 Character ブループリントから Level ブループリントとその逆という、双方向で情報を渡します)。

Tags