ブループリントでアクタをスポーン、破棄する

このガイドではブループリントを使って、ボタンが押されたときにオブジェクトをスポーンし、再度ボタンが押されると破棄します。

Windows
MacOS
Linux
On this page

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

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

HeroImage.png

ステップ

ここでは Starter Content Enabled (スターター コンテンツを有効にした状態)Blueprint Third Person Template を使います。

  1. メイン ツールバー[ブループリント] ボタンをクリックして、次に [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. グラフ内で右クリックして、Enter 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 ActorTarget ピンに接続します。

    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

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

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

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

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

  15. Set ノードの参照ピンを引き出します。AttachToActor ノードを検索して追加します。

    SpawnDestroy_15.png

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

  16. Get Player Character ノードを使って以下のようにアタッチして、Location RuleRotation 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 回めに押すと、エフェクトを破棄する代わりに、それを非アクティブにして関連サウンドをフェードアウトさせます。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback