アクタをスポーンおよび破壊する

この操作ガイドでは、スポーンするための独自のアクタ、およびボタンをクリックするとアクタをスポーンする aActor Spawner を作成することができます。

Choose your operating system:

Windows

macOS

Linux

実装方法を選んでください。

Blueprints

C++

ビデオゲームではしばしば、プレイヤーは自分のキャラクタ新しいアイテムや武器を手に入れることでエンゲージメントを維持し、時には新しい敵が現れて敗北することもあります。

ゲームの中に、ゲームプレイ中にレベルにアイテムや敵を動的に追加したいと感じる場合があります。これをスポーンといいます。

この操作ガイドでは、ボタンを押した時にアクタ スポナーからスポーンされる Actor クラスを作成します。また、別のボタンを押すとスポーンされたアクタを破壊するロジックを作成します。

![image alt text](image_0.gif)(convert:false)

作成しているゲームの種類に関係なく、最初はレベルに配置していない何かを実行時に登場させたい場合があります。 ワールドにオブジェクトをスポーンさせるという概念は、 ブループリント ビジュアル スクリプティング を使って実現できます。また、ゲームプレイ中に スポーン された (またはスポーンされていなかった) オブジェクトを 破棄 すなわちデスポーンさせる機能も実現できます。

このガイドでは、ボタンを押して アクタ をスポーンし、それをキャラクターにアタッチして、再度ボタンを押すと 変数 参照を使用して破棄する操作を行います。

HeroImage.png

手順

このガイドでは Blueprint Third Person テンプレート Starter Content Enabled (スターター コンテンツを有効) の状態で使用します。

  1. メイン ツールバー [Blueprints (ブループリント)] ボタンをクリックして、次に [Open Level Blueprint (Level ブループリントを開く)] を選択します。

    SpawnDestroy_01.png

    Level ブループリント は、レベルに固有で、レベル全体のグローバル グラフとしての役割を果たす、特別なタイプのブループリントです。

  2. グラフ内を右クリックして、 Spawn Actor from Class ノードを探して追加します。

    SpawnDestroy_02.png

    これでスポーンするクラス (またはオブジェクトの種類) を指定することでスポーンするものを定義することができます。

  3. SpawnActor ノードの Class ピンから Blueprint_Effect_Fire クラスを選択します。

    SpawnDestroy_03.png

    これはプロジェクト作成時に有効にした Starter Content パックの一部として作成された Blueprint クラスです。

  4. グラフ内を右クリックして、 F Keyboard Event を探して追加します。

    SpawnDestroy_04.png

    これは、炎のエフェクトをスポーンし、破棄するキーになります。

  5. 再びグラフ内で右クリックして、 Flip Flop ノードを検索して追加します。

    SpawnDestroy_05.png

    このノードはスイッチとして機能します。1 回めは A ピンを実行し、2 回めは B ピンを実行します。 B ピンを実行したら、その次は再度 A ピンを実行し、A ピンと B ピンとの間で切り替わります。

  6. F ノードの Pressed ピンから左クリックしてドラッグし、それを Flip Flop ノードと Spawn Actor ノードに接続します。

    SpawnDestroy_06.png

    これで Spawn Actor ノードへの呼び出しを実行し (F が押された場合)、Fire エフェクトをスポーンすることができます。

  7. グラフ内を右クリックして、 Destroy Actor ノードを探して追加します。

    SpawnDestroy_07.png

    このノードで、指定するどのアクタでも破棄することができます。

  8. Flip Flop ノードの B ピンを Destroy Actor ノードに接続します。

    SpawnDestroy_08.png

    F キーを 2 回めに押すと、 Flip Flop ノードの B ピンが呼び出されて Destroy Actor ノードを実行します。 この Destroy アクタには、 Target 入力ピンがあり、何を破棄するかをノードに指示します。 デフォルトでこれは Self に設定されており、この場合は null ポインタです。Level ブループリントを破棄できないため、何を破棄するかが不明であることを表します。 この Destroy Actor ノードが Character ブループリント内にあり、Self をターゲットにするように指示したら、キャラクターが破棄されます。

    この場合、Destroy Actor ノードに対して何を破棄するかを指示する必要があります (ブループリントの Fire エフェクト)。 これを行うには、スポーンするブループリントの Fire エフェクトへの参照を作成する必要があります。

  9. Spawn Actor ノード Return Value ピンを右クリックし Promote to Variable を選択します。

    SpawnDestroy_09.png

    この場合の Return Value は、「スポーンするもの」であり、後で破棄できるように参照を保存するものです。

  10. この変数の [Details (詳細)] パネルで、 CurrentFlames などの名前を付けます。

    SpawnDestroy_10.png

  11. MyBlueprint パネルの Variables で、 Ctrl キーを押しながら CurrentFlames 変数をグラフにドラッグ&ドロップし、それを Destroy Actor Target に接続します。

    SpawnDestroy_11.png

    これで Destroy Actor ノードに対して変数の参照を作成したブループリントの Fire エフェクトを対象にするように指示しています。

  12. グラフ内を右クリックして、 Get Player Character ノードを検索して追加します。

    SpawnDestroy_12.png

    これにより、指定したプレイヤー キャラクターを見つけて、そのキャラクターにアクセスして情報を取得することができます。

  13. Get Player Character ノードの Return Value を引き出して、 Get Actor Transform ノードを検索して追加します。

    SpawnDestroy_13.png

    これでプレイヤー キャラクターの Location Rotation Scale がわかり、これを使ってブループリントの Fire エフェクトのスポーン位置を定義します。

  14. Get Actor Transform Return Value ピンを Spawn Actor ノードの Spawn Transform ピンに接続します。

    画像をクリックしてフルサイズで表示

    この時点でグラフはほぼ完成です。 F キーを押すと、プレイヤーの位置でブループリントの Fire エフェクトをスポーンし、それを変数として格納するように指示しました。 F を 2 回めに押すと、作成した変数を破棄します (Fire エフェクトをキルします)。最後に、Fire エフェクトをプレイヤーにアタッチします。 Fire エフェクトをスポーンすると、プレイヤーの位置にスポーンされますが、プレイヤーが炎の周囲を動くと、スポーンした位置にとどまります。

  15. Set ノード参照ピンを引き出します。 Destroy Actor ノードを探して追加します。

    SpawnDestroy_15.png

    このノードを使って炎のエフェクトを他のアクタにアタッチすることもできます。この場合、プレイヤー キャラクターにアタッチします。

  16. Get Player Character ノードを使って以下のようにアタッチして、 Location Rule Rotation Rule Snape to Target に設定します。

    画像をクリックしてフルサイズで表示

    ここでは、炎のエフェクトに対する参照の変数をプレイヤー キャラクターにアタッチし、その位置と回転をプレイヤー キャラクターに合うようにスナップします。

  17. [Compile (コンパイル)] ボタンをクリックし、ブループリントをコンパイルします。

    SpawnDestroy_17.png

  18. メインのレベル エディタ ウィンドウに戻り、 メインツール バー から、 [Play] ボタンをクリックしてエディタ内でプレイします。

    SpawnDestroy_18.png

最終結果

エディタで再生中に、 F キーを押すと炎のエフェクトをスポーンし、プレイヤー キャラクターにアタッチされます。 炎がプレイヤーにアタッチされている状態で、 F キーを押すとエフェクトを破棄して、再度 F キーを押してそれをリスポーンすることができます。

他の方法としては、ブループリントの炎のエフェクト内のパーティクルエフェクトを アクティベート および 非アクティベート にする方法があります。

画像をクリックしてフルサイズで表示

上の例では、ゲーム開始時に Event BeginPlay ノードを使って Blueprint Fire をスポーンして、それをプレイヤー キャラクターにアタッチします。 パーティクル エフェクトも非アクティベートにして、ゲーム開始時に関連するサウンドをフェードアウトします。 F を押すと、ブループリントの Fire エフェクトが既にスポーンされているため (アクティベートはされていません)、代わりにそれをアクティベートして、オーディオをフェードインします。 F を 2 回めに押すと、エフェクトを破棄する代わりに、それを非アクティブにして関連サウンドをフェードアウトさせます。

[INCLUDE:ProgrammingAndScripting/SpawnAndDestroyActors\CPP]
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる