Language:
Page Info
Tags:
Skill Level:
Engine Version:

ブループリントでアクタをシーケンサーとリバインドする

ゲームプレイ目的でシネマティックスを作成する場合、ランタイムに動的にスポーンされるオブジェクトをシーケンサーでアニメートしたいと思うことがあるかもしれません。 例えば、シーケンサー内でパスに沿って移動するオブジェクトを作成し、アニメートすることができますが、そのオブジェクトがゲームプレイ中にスポーンしプレイヤーによって定義可能なものであるとします。 ブループリント ビジュアル スクリプティング で、Get Sequence Bindings ノードを使ってレベル シーケンスからバインディング識別子を公開し、こうしたバインディングを自分の設定でオーバーライドすることができます。

この例では、Empty Actor をアニメートしパスに沿って動かし、プレイヤーがボタンを押すことでオブジェクトを別のエフェクトに変更できるようにします。

EndResult.png

ここでは Starter Content を有効にした状態で Blueprint Third Person Template を使います。

ステップ

  1. [Modes] パネルの[Basic] から、 Empty Actor をレベルにドラッグします。

    DynamicAnim_01.png

    これからシーケンサー内で Empty Actor をアニメートし、Sequence Bindings をオーバーライドして、アクタを異なるパーティクル エフェクトに変更します。

  2. メイン ツールバーから [Cinematics (シネマティックス)] ボタンをクリックし、[Add Level Sequence (レベル シーケンスを追加)] を選択してシーケンスに任意の名前を付けます。

    DynamicAnim_02.png

  3. レベル内で Empty Actor を選択します。次に Empty Actor をシーケンサーに追加します。

    DynamicAnim_03.png

  4. Empty Actor で Track ボタンをクリックし、 Transform を選択します。

    DynamicAnim_04.png

  5. Transform トラックにキーフレームを追加し、レベル内の現在の位置で Empty Actor を初期化します。

    DynamicAnim_05.png

  6. タイムラインをフレーム 75 まで動かします。次に、レベルで Empty Actor を動かし、新しい位置にキーフレームを追加します。

    DynamicAnim_06.png

  7. シーケンサーでひとつめのキーフレームを右クリックして、フレーム 150 まで動かし、右クリックして Transform キーを Paste します。

    DynamicAnim_07.png

    ひとつめのキーをコピーして、それを最後に貼り付けると、ループ可能な滑らかなシーケンスになります。

  8. レベル シーケンスの [Details (詳細)] パネルで、[Auto Play] を有効にし、[Loop][Loop Indefinitely] に設定します。

    DynamicAnim_08.png

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

    DynamicAnim_09.png

  10. レベル ブループリント で右クリックして Flip Flop に接続された F keyboard event を追加します。

    DynamicAnim_10.png

  11. Spawn Actor from Class ノードを 2 つ追加し (ひとつは Blueprint Effect Fire を使用し、もうひとつは Blueprint Effect Sparks を使用)、以下のように Make Transform ノードに接続します。

    DynamicAnim_11.png

  12. SpawnActor Blueprint Effect Fire ノードの Return Value で右クリックして、Promote to Variable を選択し、Fire BP と名前を付けます。

    DynamicAnim_12.png

  13. SpawnActor Blueprint Effect SparksReturn ValueSparks BP に昇格させます。

  14. レベル シーケンスに参照を追加して、そこから Add Binding ノードを追加します。

    DynamicAnim_13.png

  15. 別の Add Binding ノードを作成し、それぞれを以下のように接続し、Actor として Fire BPSparks BP を入力します。

    DynamicAnim_14.png

  16. Get Sequence Binding ノード (以下でハイライトされているオプション) を右クリックして、それを両方の Add Binding ノードに接続します。

    DynamicAnim_15.png

    Get Sequence Binding ノードで対象のレベル シーケンスとオーバーライドする Binding を指定することができます。 この例では、レベル シーケンス (Empty Actor) にリストされたトラックがひとつだけあり、これをオーバーライドすることができます。 オーバーライド可能なレベル シーケンスに追加されたオブジェクトが、ドロップダウン メニューに表示されます。

  17. Sparks BP 変数と Fire BP 変数を取り込んで、IsValid ノードを使って、オブジェクトが有効ならば Destroy Actor (アクタを破棄) します。

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

    スクリプトが完成し、炎または火花のエフェクトがスポーンし、レベル シーケンスの Empty Actor をオーバーライドし、他のパーティクル エフェクトを破棄します (有効な場合)。

  18. エディタで再生し、F キーを押して、スポーンしたアクタ間で循環させます。

最終結果

エディタで再生し、F キーを押すと、Empty Actor がスポーンした炎または火花のエフェクトに置き換わりますが、Empty Actor に適用したアニメーションを使い続けます。

バインディングを追加できるだけでなく、以下を行うこともできます。

  • Remove Binding (バインディングを取り除く) で、指定したアクタを指定したバインディングから取り除きます。

  • Reset Binding (バインディングをリセット) で、指定したバインディングをそのデフォルト設定に戻します。

  • Reset Binding (バインディングをリセット) で、すべてのオーバーライドしたバインディングをそのデフォルト設定に戻します。

  • Set Binding (バインディングの設定) で指定したバインディングを、指定したアクタでオーバーライドします。

AdditionalFunctions.png

Tags