プロキシ、プロキシ テーブル および チューザー テーブル のアセットを組み合わせて、動的アセットの選択ロジックを作成し、プロジェクトの変数に基づいてアニメーションを制御できます。たとえば、プロキシ アセットとプロキシ テーブル アセットを使用すると、さまざまな武器セットなど、キャラクターのためにロードおよび使用されるアニメーション セットの種類を選択できます。または、チューザー テーブルを使用して、キャラクターが攻撃された場所に基づいたさまざまなヒット リアクションなど、個別のアニメーション アセットをプロジェクトのコンテキスト変数によって動的に選択できます。
以下のドキュメントで、Unreal Engine の動的アニメーションの選択システムの詳細についてご確認ください。
このドキュメントは、アニメーション シーケンス、モンタージュまたは AnimInstance クラスなどのアニメーションに関連したアセットの選択にチューザー テーブルとプロキシ テーブルを使用することに重点を置いていますが、システム自体は汎用的で、アセット、オブジェクトまたはクラスのタイプの選択に使用できます。
前提条件
- Chooser プラグインを有効にします。メニュー バー で [Edit (編集)] > [Plugins (プラグイン)] の順に移動して [Animation (アニメーション)] セクションにある チューザー を見つけるか、検索バー を使って検索します。このプラグインを有効にして、エディタを再起動します。

-
プロジェクトには、ランタイム時の状況に応じて動的に選択するアニメーション セットが含まれています。これは、一意の装飾的なアニメーション セット、コンテキスト アニメーション シナリオなどの関連ゲームプレイ アニメーション、または武器などの装備可能なアイテムに関連するアニメーション セットです。
-
プロジェクトには、使用可能なアニメーション ブループリントが含まれていて、動的なアニメーション選択ロジックを作成できます。
アニメーション選択システムを設定する
ここでは、プロジェクトにアニメーション チューザー システムを設定し、ランタイム時のプロジェクトのコンテキストに基づいてヒット リアクションのアニメーション再生を動的に選択する方法を確認できます。
プロキシ アセットを作成する
プロキシ アセット は、プロキシ テーブル アセットがアクティブなコンテキスト情報や他の関連変数の格納に使用されます。
プロキシ アセットを作成するには、コンテンツ ブラウザ の [+ Add (+ 追加)] を使用して、[Miscellaneous (その他)] > [Proxy Asset (プロキシ アセット)] に移動します。

動的にアニメーションを選択する各アニメーション セット用にプロキシ アセットを作成して、アイドル、歩く、走るなど、キャラクターを制御します。
プロキシ アセットを作成した後で、それぞれを開いて設定にアクセスします。

プロキシ アセットごとに、使用しているアニメーション アセット タイプに Type プロパティを設定します。この場合は AnimSequenceBase
です。

[+ Add (+追加)] を使用し、Context Object Type Class オプションを選択して、新しい Index 配列を追加することで、Context Data プロパティを Animation Blueprint オプションに設定します。

Index 配列の設定を展開して、アニメーション ブループリントを使用するように Class プロパティを設定します。この場合は ABP_Manny
です。次に、Direction プロパティを Read に設定します。

アニメーション ブループリントの設定
プロキシ アセットを設定した後、キャラクターのアニメーション ブループリントに変数を作成して、ランタイム時にアクティブなプロキシ テーブルを格納する必要があります。この変数を作成するには、キャラクターのアニメーション ブループリントを開き、[+ Add (+追加)] を使用して、[My Blueprint (マイ ブループリント)] パネルで新しい変数を作成します。次に、変数型を Proxy Table の Object Reference に設定します。変数を作成した後、アニメーション ブループリントを 保存 および コンパイル します。

プロキシ テーブル変数は Evaluate Proxy ノードによってアニメーション グラフで使用され、ランタイム時にアクティブなプロキシ テーブルを決定します。
プロキシ テーブル アセットを作成する
プロキシ テーブル アセットは、ランタイム時に動的に選択できるアニメーション アセット セットの格納に使用されます。たとえば、キャラクターのアイドル アニメーションを格納するプロキシ テーブルもあれば、歩くまたは走るアニメーション セットを格納するプロキシ テーブルもあります。
プロキシ テーブル アセットを作成するには、コンテンツ ブラウザ の [+ Add (+ 追加)] を使用して、[Miscellaneous (その他)] > [Proxy Asset (プロキシ アセット)] に移動します。

非武装のキャラクターおよびピストルやライフルを持ったキャラクターのロコモーション アニメーションなど、さまざまなアニメーション セットが必要なすべての状況用に、プロキシ テーブル アセットを作成します。
プロキシ テーブル アセットを作成した後で、アセットを開いてプロキシ テーブルの値にアクセスします。

プロキシ テーブルで、[+ Add Row (+行を追加)] を使用してアセットを選択し、各 プロキシ アセット のエントリを追加します。[Value (値)] 列を使用して、設定から関連するアニメーション アセットを割り当てることができます。

以下のワークフローの例では、ProxyTable_Unarmed
アセットでは Unarmed_Idle
と Unarmed_Walk
アニメーションが ProxyAsset_Idle
行と ProxyAsset_Walk
行にそれぞれ割り当てられます。次に、ProxyTable_Pistol
アセットでは、同じプロキシ アセット行が Pistol_Idle
アニメーションと Pistol_Walk
アニメーションが割り当てられます。
ProxyTable_Unarmed | ProxyTable_Pistol |
---|---|
![]() |
![]() |
[Value] 列には、動的アニメーション選択システムに対して クラス 参照、チューザー アセット、または ルックアップ プロキシ が含まれている場合もあります。
プロキシ テーブルをランタイム時に使用する
Sequence Player ノードで アニメーション ノード関数 を使用して、プロキシ テーブル アセットをランタイム時に使用できます。新しい関数を作成してプロキシ テーブル アセットを選択するには、Sequence Player ノードを選択し、On Update バインディングで新しい関数を追加します。

On Update ノードから Evaluate Proxy ノードを追加します。
次に、ノードを選択し、ドロップダウンを使用して Proxy プロパティでプロキシ アセットを選択します。

次に結果を変数に昇格させ、出力を Sequence Player ノードにつなげます。

その後、チューザー テーブルなど、さまざまな方法を使用して Evaluate Proxy ノードでアクティブなプロキシ テーブル アセットを設定して、キャラクターを制御するアニメーション セットを動的に変更できます。

チューザー テーブル アセットを作成する
チューザー アセットは、コンテキストに基づいて選択および再生できる、さまざまなアニメーションのイテレーションから構成されるアニメーション データ セットの格納に使用されます。たとえば、チューザー テーブルは一連のヒット リアクションのアニメーションが含まれる場合があり、各エントリは攻撃されているボディの各部分 (腕、脚、胸、頭) に基づいて反応するアニメーションです。これは、ヒットの位置など、コンテキスト変数に基づいて選択できます。
チューザー テーブル アセットを作成するには、コンテンツ ブラウザ の [+ Add (+ 追加)] を使用して、[Miscellaneous (その他)] > [Chooser Asset (チューザー アセット)] に移動します。

チューザー テーブルを作成した後で、アセットを開いてそのプロパティにアクセスできます。

[+ Add (+追加)] を使用し、Context Data プロパティで新しい配列要素を作成して、プロパティを Context Object Type Class オプションに設定します。Index 配列を展開して、キャラクターのアニメーション ブループリントを使用するように Class プロパティを設定し、Direction プロパティが [Read (読み取り)] に設定されていることを確認します。使用しているアニメーション アセットに出力オブジェクト タイプを設定できます。このワークフローの例は、アニメーション シーケンスを使用しているので、AnimSequenceBase クラス オプションが選択されています。

[Chooser Table (チューザー テーブル)] パネルで、列の追加を開始し、[+ Add Column (+列を追加)] ボタンを使用して選択プロセスに影響を与えるアニメーション ブループリントから変数を設定できます。列を作成した後で、選択に影響できるアニメーション ブループリントの変数、および各行内でアニメーション シーケンス アセットを選択するためにアクセスする必要がある変数の値または状態を定義できます。

このワークフローの例では、値が false の場合にブール変数 IsCrouching
は MM_HangingIdle
アニメーションを選択し、値が true の場合に MM_Rifle_Walk_Left
を選択します。MoveemntAngle
変数では、値が -100
と 100
の間にある場合に MM_HangingIdle
を選択し、値が 0.0
の場合のみ MM_Rilfe_Walk_Left
アニメーションを選択します。
この選択プロセスを使用してキャラクター アニメーションを制御するために、プロキシ テーブル エントリを [Evaluate Chooser (チューザーを評価)] に設定し、チューザー テーブル アセットを割り当てる必要があります。

アクティブなプロキシ テーブル アセットとチューザー テーブルによる選択の両方に基づいて、選択したアニメーションが変更されるようになります。
アニメーション ブループリント グラフまたはステート マシンで Evaluate Chooser ノードを使用すると、プロキシ テーブルなしでチューザー テーブルを使用することもできます。
