バリアントのアクティベーション時に関数を呼び出す

バリアントを有効にする際は、プロパティの値を変更するのではなく、関数を呼び出します。

Choose your operating system:

Windows

macOS

Linux

コンテンツ

バリアントにアクタをバインドする場合は、現在のバリアントが有効に切り替わった際に、そのアクタ内の変更するプロパティを選択するよう Variant Manager によってプロンプトが表示されます。ただし、バインドされたアクタのプロパティ値の変更に加えて (またはその代わりに)、そのアクタ上で Variant Manager によって呼び出す関数 (複数可) を指定することもできます。

Variant Manager は、バインドしたアクタによって公開されている関数を呼び出すよう設定することができます。また、バインドされたアクタを入力値として受け入れる独自のブループリント関数を新規に作成することもできます。このページの以下の手順では、これら両方の操作について説明します。

手順

バリアントのアクティベーション時にブループリント関数は以下の手順で呼び出します。

  1. コンテンツ ブラウザ Level Variant Sets アセットをダブルクリックし、Variant Manager の画面で開きます。

    Open your Level Variant Sets Asset

  2. Variant Manager 画面の左側のパネルで、設定するバリアントを選択します。

  3. バリアントに呼び出す関数を含むアクタをバインドしていない場合は、これを [World Outliner (アウトライナ)] パネルから Variant Manager の [Actors (アクタ)] 列にドラッグします。

    キャプチャするプロパティを選択するよう Variant Manager によってプロンプトが表示されたら、すべてのプロパティをオフの状態にします。 [Select (選択)] をクリックして続行します。

  4. バリアント上でバインドされているアクタのリストで目的のアクタを右クリックし、コンテキスト メニューの [Add function caller (関数の呼び出し元を追加)] を選択します。

  5. [Properties (プロパティ)] 列の最後のほうにある新しい [Function caller (関数の呼び出し元)] 項目を見つけて、 [Values (値)] 列のドロップダウン リストを使用して、呼び出す関数を選択します。

    [Create New Function (新しい関数を作成)] を選択して新しいブループリント関数を作成するか、呼び出す関数がすでにアクタに設定されている場合は、 [Create Quick Binding (バインディングを迅速に作成)] リストから既存の関数を選択します。

  6. Variant Manager で LevelVariantSetDirector と呼ばれる特殊なブループリント クラスが開き、必要に応じてこれを編集することができます。このブループリントは Level Variant Sets アセットが所有するもので、バリアントのアクティベーションに対して実行する必要のあるすべてのロジックを保存する役割を担っています。

    Variant Manager により、 LevelVariantSetDirector ブループリント内に新しい関数が自動的に作成されます。バリアントのアクティベーション時には Variant Manager によってこの関数が自動的に呼び出されます。バリアントのアクティベーション時にトリガーされるブループリント ロジックをさらにカスタマイズする場合は、このグラフでカスタマイズすることができます。

    前の手順で新しい関数を作成した場合は、デフォルトの名前が付いた空の新しい関数が作成されます。この空の関数に、実行する必要のあるブループリント ロジックを入力します。

    Result of creating a new function

    Variant Manager は、ブループリント グラフの作成に役立つ情報を新しい関数に渡します。

    パラメータ

    説明

    Target

    前の手順で [Function Caller] で設定したバインド済みのアクタへの参照。

    Level Variant Sets

    この LevelVariantSetDirector ブループリントが制御するレベル バリアント セットへの参照。同じアセットに設定した他のバリアントおよびバリアント セットすべての情報を取得するために使用することができます。

    Variant Set

    現在のバリアント (アクティベートされたばかりのバリアント )を含むバリアント セットへの参照。

    Variant

    アクティベートされたばかりのバリアント (Function Caller で設定したバインド済みアクタを含むバリアント) への参照。

    アクタで公開されている既存の関数への迅速なバインディングを作成する場合は、Variant Manager によってその関数への呼び出しが自動的に追加され、その呼び出しによって LevelVariantSetDirector ブループリント内で作成される新しい関数に接続されます。アクタ上で呼び出される関数にその他の入力値が必要な場合は (下の画像にある [New Actor Enable Collision] オプションなど)、このグラフで設定できます。

    Result of creating a quick binding

    デフォルトでは、Variant Manager はバリアントがランタイムで有効になるときにのみ関数を呼び出します。エディタ内でバリアントを有効にした際にも関数を実行させるには、 LevelVariantSetDirector ブループリント内で目的の関数ノードを選択し、 [Details (詳細)] パネルの [Call in Editor (エディタでの呼び出し)] 設定を有効にします。

  7. 新しい関数、または LevelVariantSetDirector ブループリント内での迅速なバインディングの設定が完了したら、ブループリントを コンパイル して 保存 します。保存したら、ブループリント エディタを終了して Variant Manager のウィンドウを閉じることができます。

最終結果

関数の呼び出し元に設定したバリアントをランタイムで有効に切り替えると、 LevelVariantSetDirector ブループリントで定義した関数が Variant Manager によって自動的に実行されます。

LevelVariantSetDirector ブループリント内で関数に対して [Call in Editor (エディタでの呼び出し)] オプションを有効にした場合は、Unreal Editor 内でこのバリアントを有効に切り替えた際にも Variant Manager によってその関数が自動的に実行されます。

バリアントのアクティベーション時にアクタで複数の関数を呼び出す必要がある場合は、バインド済みの単一のアクタに複数の関数呼び出し元を追加することができます。

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