バリアントにアクタをバインドする場合は、現在のバリアントが有効に切り替わった際に、そのアクタ内の変更するプロパティを選択するよう Variant Manager によってプロンプトが表示されます。ただし、バインドされたアクタのプロパティ値の変更に加えて (またはその代わりに)、そのアクタ上で Variant Manager によって呼び出す関数 (複数可) を指定することもできます。
Variant Manager は、バインドしたアクタによって公開されている関数を呼び出すよう設定することができます。また、バインドされたアクタを入力値として受け入れる独自のブループリント関数を新規に作成することもできます。このページの以下の手順では、これら両方の操作について説明します。
手順
バリアントのアクティベーション時にブループリント関数は以下の手順で呼び出します。
-
コンテンツ ブラウザ で Level Variant Sets アセットをダブルクリックし、Variant Manager の画面で開きます。
画像をクリックしてフルサイズで表示
-
Variant Manager 画面の左側のパネルで、設定するバリアントを選択します。
画像をクリックしてフルサイズで表示
-
バリアントに呼び出す関数を含むアクタをバインドしていない場合は、これを [World Outliner (アウトライナ)] パネルから Variant Manager の [Actors (アクタ)] 列にドラッグします。
画像をクリックしてフルサイズで表示
キャプチャするプロパティを選択するよう Variant Manager によってプロンプトが表示されたら、すべてのプロパティをオフの状態にします。[Select (選択)] をクリックして続行します。
-
バリアント上でバインドされているアクタのリストで目的のアクタを右クリックし、コンテキスト メニューの [Add function caller (関数の呼び出し元を追加)] を選択します。
画像をクリックしてフルサイズで表示
-
[Properties (プロパティ)] 列の最後のほうにある新しい [Function caller (関数の呼び出し元)] 項目を見つけて、[Values (値)] 列のドロップダウン リストを使用して、呼び出す関数を選択します。
画像をクリックしてフルサイズで表示
[Create New Function (新しい関数を作成)] を選択して新しいブループリント関数を作成するか、呼び出す関数がすでにアクタに設定されている場合は、[Create Quick Binding (バインディングを迅速に作成)] リストから既存の関数を選択します。
-
Variant Manager で LevelVariantSetDirector と呼ばれる特殊なブループリント クラスが開き、必要に応じてこれを編集することができます。このブループリントは Level Variant Sets アセットが所有するもので、バリアントのアクティベーションに対して実行する必要のあるすべてのロジックを保存する役割を担っています。
Variant Manager により、LevelVariantSetDirector ブループリント内に新しい関数が自動的に作成されます。バリアントのアクティベーション時には Variant Manager によってこの関数が自動的に呼び出されます。バリアントのアクティベーション時にトリガーされるブループリント ロジックをさらにカスタマイズする場合は、このグラフでカスタマイズすることができます。
前の手順で新しい関数を作成した場合は、デフォルトの名前が付いた空の新しい関数が作成されます。この空の関数に、実行する必要のあるブループリント ロジックを入力します。
画像をクリックしてフルサイズで表示
Variant Manager は、ブループリント グラフの作成に役立つ情報を新しい関数に渡します。
パラメータ 説明 Target 前の手順で [Function Caller] で設定したバインド済みのアクタへの参照。 Level Variant Sets この LevelVariantSetDirector ブループリントが制御するレベル バリアント セットへの参照。同じアセットに設定した他のバリアントおよびバリアント セットすべての情報を取得するために使用することができます。 Variant Set 現在のバリアント (アクティベートされたばかりのバリアント )を含むバリアント セットへの参照。 Variant アクティベートされたばかりのバリアント (Function Caller で設定したバインド済みアクタを含むバリアント) への参照。 アクタで公開されている既存の関数への迅速なバインディングを作成する場合は、Variant Manager によってその関数への呼び出しが自動的に追加され、その呼び出しによって LevelVariantSetDirector ブループリント内で作成される新しい関数に接続されます。アクタ上で呼び出される関数にその他の入力値が必要な場合は (下の画像にある [New Actor Enable Collision] オプションなど)、このグラフで設定できます。
画像をクリックしてフルサイズで表示
画像をクリックしてフルサイズで表示
デフォルトでは、Variant Manager はバリアントがランタイムで有効になるときにのみ関数を呼び出します。エディタ内でバリアントを有効にした際にも関数を実行させるには、LevelVariantSetDirector ブループリント内で目的の関数ノードを選択し、[Details (詳細)] パネルの [Call in Editor (エディタでの呼び出し)] 設定を有効にします。
画像をクリックしてフルサイズで表示
-
新しい関数、または LevelVariantSetDirector ブループリント内での迅速なバインディングの設定が完了したら、ブループリントを コンパイル して 保存 します。保存したら、ブループリント エディタを終了して Variant Manager のウィンドウを閉じることができます。
最終結果
関数の呼び出し元に設定したバリアントをランタイムで有効に切り替えると、LevelVariantSetDirector ブループリントで定義した関数が Variant Manager によって自動的に実行されます。
LevelVariantSetDirector ブループリント内で関数に対して [Call in Editor (エディタでの呼び出し)] オプションを有効にした場合は、Unreal Editor 内でこのバリアントを有効に切り替えた際にも Variant Manager によってその関数が自動的に実行されます。
バリアントのアクティベーション時にアクタで複数の関数を呼び出す必要がある場合は、バインド済みの単一のアクタに複数の関数呼び出し元を追加することができます。