Language:
Page Info
Tags:
Engine Version:

5.岩を破壊する

このステップでは、プレイヤーが発砲した発射物にヒット岩が破壊されるようにします。これを行うためには別の Bind Event を使いますが、それはイベントディスパッチャーにはバインドされません。その代り、岩のコリジョンが何かにヒットすると実行される OnHit と呼ばれるコリジョン イベントを使います。まさにこの状況にぴったりです。

では、岩を破壊してみましょう!

  1. FirstPersonCharacter ブループリント内に戻り、岩をスポーンする Spawn Actor ノードを検索します。

  2. Spawn Actor ノードの Return Value ピンを引き出して、Assign On Actor Hit を選択します。

    OnActorHit.png

  3. Spawn ActorBind Event を接続します。

  4. Spawn Actor ノードの Return Value を引き出して、 Apply Radius Damage (Destructible) を追加します。

    ApplyDamage.png

    Apply Damage を使うこともできますが、パラメータの追加入力が必要です。ここでは簡単な方の Radius Damage を使います。

  5. Apply Radius Damage ノードの以下のフィールドにそれぞれ 50000 と入力し、 Get Actor Location ノードを接続します。

    EnterDamage.png

    これにより、岩を粉々にするのに十分なダメージを確実に与えることができます。

  6. Apply Radius Damage ノードの次に、 Set Score ノードを追加します。

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

    IncreaseScore.png

    これにより、現在の点数を取得し、岩にヒットするたびに 1 が追加されます。

  8. Bind EventSet Score ノードを Delay に接続して 3 秒に設定します。

    DelayNode.png

    (ヒットしたかどうかに関わらず) 岩がスポーンされた 3 秒後に、それを破壊します。

  9. Delay の次に Destroy Actor ノードを追加します。

    DestroyActor.png

    Spawn Actor ノードの Return Value ピンを引き出して、Destroy Actor ノードの Target へつなぎます。

  10. Destroy Actor ノードの次に Set isActive 変数ノードを追加して、チェックを入れないままにします。

    SetIsActive.png

    スポーンされた岩はアクティブではなくなったので、プレイヤーは (引き金を引ける残数が十分ある場合は) 別の岩をスポーンすることができます。

ゲームプレイの中核は設定できました。今エディタで再生すれば、レベル内のランダムなスポーン ポイントからスポーンされた岩をスポーンしたり、射撃して破壊することが確認できます。次のステップでは、HUD と通信して、Character ブループリントからの値に基づいて表示する値を更新していきます。

Tags