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

スポーン ポイントに設定した位置の 1 つで岩をスポーンするボタンをプレイヤーが押せるようにしてみましょう。

Windows
MacOS
Linux

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 ブループリントとその逆という、双方向で情報を渡します)。

タグ
Select Skin
Light
Dark
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信