Animation Blueprint Linking を使用する

アニメーション グラフのサブセクションを動的に切り替える方法について説明します。

Animation Blueprint Linking システムは Sub Anim Instances の拡張機能です。アニメーション グラフのサブセクションの動的な切り替えが可能になり、使用されていないアニメーション アセットをアニメーション ブループリントがロードしなくなるため、マルチユーザーのコラボレーションとメモリ節約の両方が実現します。

この操作ガイドでは、Linked Animation Blueprint に含まれるアニメーション ポーズを、アニメーション レイヤー インターフェース を介して取得するアニメーション ブループリントを作成します。

Epic Games Launcher[Learn (ラーニング)] タブ にある Content Examples (機能別サンプル) プロジェクトの Animation マップにも Animation Blueprint Linking の例が含まれています。

手順

このガイドでは、スターターコンテンツ を有効にした状態で Blueprint Third Person (ブループリントのサードパーソン) テンプレートを使用します。また、このプロジェクトには、Epic Games LauncherMarketplace (マーケットプレイス) から無料で入手可能な Animation Starter Pack が追加されています。

  1. プロジェクトから [Content (コンテンツ)] > [AnimStarterPack] に移動して、レベルに Ue4ASP_Character を追加します。[Details (詳細)] パネルで、[Auto Possess Player (自動所有するプレイヤー)][Player 0] に設定します。

    AnimationLayer_01.png

    これにより、エディタでのプレイ時にこのキャラクターを制御できるようになります。

  2. コンテンツ ブラウザ 内を右クリックします。[Animation (アニメーション)][Animation Layer Interface (アニメーション レイヤー インターフェース)] をクリックして、「MyLayerInterface」 というアセットを作成します。

    AnimationLayer_02.png

    これらのアセットは ブループリント インターフェース に似ており、レイヤーの数やそれらの名前、属するグループなど、さまざまな入力の定義に使用できます。

  3. MyLayerInterface アセット内でレイヤーに 「ExampleLayer」 と名前を付けます。[Details (詳細)] パネルで [+] (プラス) 記号をクリックして 入力 を追加し、[Compile (コンパイル)] をクリックします。

    AnimationLayer_03.png

    アニメーション レイヤーでは、ブレンディングや他のロジックベースの実装に使用可能な入力パラメータとともに、サブグラフから複数の入力ポーズを公開できます。

  4. UE4_Mannequin_Skeleton (「Animation Starter Pack」フォルダにある) を使用して Animation ブループリントを作成し、「HitReact_AnimBP」 と名前を付けます。

    AnimationLayer_04.png

    これが、この操作ガイドの最初の部分でレベル内に配置したキャラクターに使用する既存の Animation ブループリントにリンクする Animation ブループリントです。

  5. HitReact_AnimBP 内でツールバーの [Class Settings (クラス設定)] ボタンをクリックし、[Details (詳細)] パネルの [Interfaces (インターフェース)] セクションで MyLayerInterface を追加します。

    AnimationLayer_05.png

  6. [Example Layer (サンプル レイヤー)] で、Hit_React_1 アニメーションを アセット ブラウザ からグラフに追加して、Output Pose に接続します。

    レイヤー インターフェースからの Input Pose はポーズ データを取り込み、このレイヤー内で定義されたあらゆるロジックまたはポーズ データとのブレンドに使用できます。

  7. 「Content」 > 「AnimStarterPack」 フォルダに移動して UE4ASP_HeroTPP_AnimBlueprint を開き、Class Settings から MyLayerInterface を追加します。

    AnimationLayer_07.png

  8. Example Layer (サンプル レイヤー) で、次のように Input PoseOutput Pose に接続します。

    AnimationLayer_08.png

    この場合、Input Pose は、Hit React アニメーションの配置先である Linked Anim BP からきています。この例では、Linked Animation Blueprint から直接ポーズを取り込み、それに切り替えます。

  9. アニメーション グラフLinked Anim Layer ノードを追加し (Example Layer に設定)、次のように接続します。

    AnimationLayer_09.png

    デフォルト のステート マシンによって、ポーズが Linked Animation Layer を介して Output Pose に渡されます。Link Anim Class Layers が呼び出されると、基盤となっている Animation ブループリントが実行されます。

    Linked Anim Layer ノードには、デフォルトのレイヤー オーバーライドを指定可能な Instance Class プロパティが含まれています。これは、ロジックを複数の Animation ブループリントに分割する場合に特に便利です。例えば、頻繁に変更される IK ロジックがある場合、これを別の Animation ブループリントに移動して、メインの Animation ブループリントでデフォルトで実行するよう設定することができます。

  10. 「Content」 > 「AnimStarterPack」 フォルダに移動して、Ue4ASP_Character キャラクター ブループリントを開きます。

  11. H キーボード イベント (もしくはその他のキーボード イベント) を追加し、Mesh コンポーネントをドラッグして、HitReact_AnimBP に設定された Link Anim Class LayersUnlink Anim Class Layers ノードの両方を追加します。

    AnimationLayer_10.png

    H キーを押してそのままの状態にすると、In Class として指定された Linked Anim BP が、リンクされたインスタンスとして設定されて実行されます。H キーを離すと、指定されたクラスを実行している Layer ノードのリンクが解除されて、デフォルト値にリセットされます。

    この例では、警告メッセージを解決するための、しゃがむ動作に対する C キーボード イベントもオプションとして追加してあります。

  12. エディタで コンパイル して 再生 します。

最終結果

下のビデオでは、H キーを押して、Layer Node とそれに設定されている Animation ブループリント (Hit React アニメーションを再生) を有効にするまで、Animation ブループリントが通常どおりに実行されます。

Animation Layer と Linked Animation Blueprint により、スケーラビリティを維持して、複雑なキャラクター達を整理することができます。また、これらを使用して、レイヤーを介してロジックを Animation ブループリント内でセクション分けしたり、別の Animation ブループリントに完全に分割して、マスター Animation ブループリントからリンクさせたりすることができます。

追加のユース ケース

次は、Linked Anim Layer が『フォートナイト』でどのように使用されているかを示すシンプルな一例です。

FortniteAnimBP.png

上の画像には、武器と車向けの 2 つのインターフェースが示されています。この両方を同時に有効にすることができます。 また、これらのインターフェースの 1 つを実装する単一の Animation ブループリントで、グラフの複数のポイントをオーバーライドすることもできます (武器で WeaponUpperBodyWeaponAdditive をオーバーライドするなど)。

以下は、上記の設定で可能な操作例です。

  • 車の運転中に、車が全体のポーズを制御します。

  • ショットガンを持っている場合に、車で下半身のアニメーション (座席に座る) を操作し、武器で上半身を制御する。ユーザーが武器を変えた場合は、車で下半身の再生を続けながら、新しい武器の Animation ブループリントで上半身を制御します。

  • 武器で上半身のポーズをオーバーライドする。次に、これがメイン グラフの下半身のポーズと組み合わされて、カスタム加算アニメーション (アイドル ノイズなど) が武器からの全身のポーズ上で再生されます。

『フォートナイト』では、メイン グラフ内のさまざまなポイントを武器でオーバーライドすることができます。例えば、ジャンプ、落ちる、着陸、ジップライン (ワイヤーを滑り降りる) などの状態を含むロコモーションのステート マシンを使用します。

このステート マシンを武器ごとに複製するのではなく、このステート マシンをメイン グラフ内に維持して、それぞれの武器の Animation ブループリントにそれぞれの状態でオーバーライド可能なレイヤーを持たせます。

武器が状態をオーバーライドする必要がない場合は、対応するレイヤーでは出力ポーズに対して何も接続されません。

また、レイヤーを含む Animation ブループリントには独自のイベント グラフが含まれるため、特定の車に対するデータを処理する必要がある場合は、データをこの車の Animation ブループリントのイベント グラフ内に維持しておくことができます。

このページは Unreal Engine の前のバージョン用です。現在リリースされている Unreal Engine 5.3 に対して更新は行われていません。
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル