Animation Montage の概要

Animation Montage アセットはどのように機能するか、または何に使えるかについて説明します。

Choose your operating system:

Windows

macOS

Linux

アニメーション モンタージュ (略して モンタージュ ) を使うと、ブループリントまたは C++ のコードで Animation アセットを直接制御することができます。 アニメーション モンタージュを使うと、複数の種類の アニメーション シーケンス をひとつのアセットに結合して、それを セクション に分けて、個別または組み合わせて再生することができます。 モンタージュ内で イベント を発行して、様々なローカルのタスクやレプリケートしたタスクを行うことができます。例えば、サウンド キューやパーティクル エフェクトの再生、弾薬数などのプレイヤーの値を変更、アニメーションでルート モーションが有効になっていることを前提にネットワーク ゲームで ルート モーション のレプリケートをすることもできます。

モンタージュの例

以下は、キャラクターがショットガンをリロードするアニメーション シーケンスです。モンタージュの実用的なユース ケースです。

上の動画では、キャラクターが弾倉をつかみ、リロードし、アイドル ポーズに戻ります。 リロードのアニメーションとして問題なく使用できますが、モンタージュの使用でさらに制御を高めることができます。 例えば、常に同じ量ではなく、キャラクターがリロードする量に変化をつけます。 このアニメーションを、3 つの部分 (弾倉をつかむ、リロードする、アイドルに戻る) に分けて、モンタージュ内で組み合わせることで、セクションに分けて任意のセクションを選んで、またはすべてのセクションを再生することができます。

以下はショットガンのリロードを処理するために使うモンタージュの例です。 Start Loop 、および End の 3 つのセクションに分けました。

Montage Example

ブループリントまたは C++ を使って、プレイヤーがボタンを押すと、アニメーションが Start セクションから始まり再生されます。 Loop (ループに設定) というループの中間セクションは、 Start セクションの直後に続き、モンタージュ内で永続的にループする設定になっています。 プレイヤーがリロード ボタンを解放するか、ショットガンに弾丸を充填すると、アニメーションのループは停止して End セクションにジャンプし、以下のようにアニメーションを終了します。

リロードの動きは、ベイクしたシーケンスよりも若干速くなります。ただし、ループ アニメーションの再生速度を必要に応じて調整することもできます。リロードの動きを終了して、アイドル ポーズにいつ戻るかを制御する機能もあります。 同様の例では、キャラクターが空中でジャンプし、空中にいるか、落下しているアニメーションをループしてから着地のシーケンスを再生するというものが考えられます。空中にいる時間は様々であり、モンタージュのどのポイントでも終わらせることができます。

他にも以下のような使用方法があります。

  • Animation ブループリント EventGraph からアニメーションを再生する

  • アニメーションの複雑なシーケンスを 1 つのアニメーションとしてつなげる

  • 1 つ、あるいは複数のアニメーションの特定部分のみをコードやブループリント スクリプトに基づいてループする

  • コードやブループリント スクリプトに基づいた複数アニメーションをイベントベースの切り替えで管理する

  • コードやブループリントで切り替え可能な指定スロットへ複雑なアニメーションシーケンスを割り当てる

  • コードやブループリント スクリプトに基づいて、さまざまなアニメーション シーケンス間で正確な切り替えを行う

モンタージュの UI

モンタージュの作成 を行い、 アニメーション エディタ 内で開いたら、 [Asset Editor (アセット エディタ)] セクションでモンタージュの機能を定義することができます。

Montage Window

[Asset Editor] パネルの領域は以下のように分類できます。

  1. Montage (モンタージュ)

  2. Sections (セクション)

  3. Element Timing (エレメントのタイミング)

  4. Notifies (通知)

  5. Curves (カーブ)

Montage 領域

Montage (モンタージュ) の領域は以下のように分類できます。

Montage Area

  1. セクション - モンタージュ内で作成されたセクションを表示します。

  2. スロット - 現在のスロットに追加されたアニメーションを表示します。

  3. グループ / スロット - 現在選択されている Anim Group と Slot を表示します。

セクション

セクション を作ると、スロットを複数部分のアニメーションへ分割することができます。各セクションは、スロットのタイムラインに名前と位置が設定されています。 この名前を使用して、特定のセクションへ直接ジャンプしたり、現在のセクション終了時に次に再生する再生待ちに追加することができます。 ブループリント では、現在のセクションのクエリ、セクションへジャンプ、再生する次のセクションを設定することができます。

セクションをミュージック プレイリストの歌、スロットをアルバムと考えるとわかりやすいかもしれません。 現在セクション (歌) を再生しているが、現在のセクション終了時に再生する再生待ちに追加するか、スロット (アルバム) 内の他のセクションにジャンプすることができます。または、現在再生したいセクションにジャンプします。

Slot

モンタージュ内では、 スロット はアニメーションをいくつでも保持できる単一トラックです。スロットに任意の名前を付けて、その名前を使っその中のアニメーションにブレンドすることができます。 リロードのモンタージュの例に戻ると、キャラクターが直立している時、うつぶせの時で異なるリロード バージョンを持つことができます。 この場合、モンタージュ (下図) の別々のスロット内にそれぞれのアニメーション ポーズを配置し、 Animation ブループリント AnimGraph にある Slot ノードを使って、キャラクターが立っているか、うつぶせかに応じて使用するアニメーション セットを決めます。

Multiple Slots

上の図では、 DefaultProne スロットをキャラクターが立っている時とリロードの時に使用しています。 Prone スロットは、キャラクターがうつぶせでリロードしている時に使用しています。

複数のスロットが割り当てられている場合、エディタでプレビューするスロットに対して [Preview (プレビュー)] ボタンをクリックします。

複数スロットを使用する場合は、関係する複数のアニメーションのタイミングを端から端まで同じ長さにすると最良の結果を得ることができます。

グループ / スロット

Anim Group はスロットの集まりであり、1 つのグループにつきモンタージュを 1 つだけ再生することができます。別のモンタージュを同時に再生する場合、そのモンタージュ用に新しいグループを作成することができます。 Anim Group とスロットは、 [Anim Slot Manager] タブ内の中央にあります。これを開くには、 [AnimSlot Manager] ( 虫眼鏡 ) アイコンをクリックします。ドロップダウン メニューで有効なスロットをの中から選択できます。 新しいモンタージュを作成すると、Slot ノードは 1 つの Default Slot で始まるため、すぐに機能します。

セクション

セクション 領域で、モンタージュ領域で定義したセクション間の関係を作成します。

Sections UI

  1. Create Default / Clear - [Create Default (デフォルトを作成)] ボタンをクリックすると、セクションを交互に並べて、全セクション間のデフォルトの関連付けを作成します。 [Clear (クリアする)] は、すべての関連付けを解消します。

  2. [Section] ボタン - モンタージュ領域で定義した各セクションに対応するボタンが表示されます。これを、 Section Association (セクション関連付け) に割り当てることができます。

  3. Section Association Tracks (セクション関連付けトラック) - [Preview All Sections] をクリックしてアニメーション セクション間の関係を可視化したり、 [Preview] をクリックしてそのトラックを可視化する領域です。

ループ

セクションは無制限にループを設定することができます。繰り返しが必要なアクションなどには非常に便利です。 Section Association Track で同じセクションを複数回以上関連付けることにより、この関連付けをループで実行することができます。 この時、セクションは青色に変わります

例えば、一度に 1 つの砲弾をショットガンにリロードするキャラクターのアニメーションを作成すると仮定します。キャラクターが砲弾を挿入するセクションをループさせます。それから 通知 を利用して、アニメーションが再生されるごとに弾薬カウントをインクリメントするように、ブループリントで Notify イベントを作成します。カウントが設定数に達したら (銃弾の許容量)、キャラクターがレシーバをクローズするアニメーションに切り替えて、アイドル ステートに戻ります。

Element Timing

Element Timing トラックは、様々なセクションのタイミングを合わせるために Montage 領域と Notifies 領域からの情報を受け取ります。

Element Timing Track

トラックの各ノードにはそのオブジェクトのモンタージュ内でのトリガー順序を表す数字が付いており、以下に基づいて色分けされています。

  • - 通知、通知ステート、通知ステートの終了マーカー

  • 水色 - 分岐点の通知

  • - Montage セクション

Element Timing トラックのドロップダウン ボタンをクリックすると、追加情報を表示 / 非表示にすることができます。

Notifies 領域

Notifies Area

アニメーション通知 (または略して Notifies (通知) ) は、アニメーションの特定ポイントでイベントが起こるように設定する手段です。 例えば、上の画像では弾倉をつかみリロード アニメーションが再生するたびに Reload Montage でサウンドを再生する通知を配置しました。 SpawnClip というカスタム イベントも呼び出します。これは、弾薬の挿弾子を表すメッシュをワールドにスポーンするために使用することができます。 最後にループ部分中に Branch イベントを使って、ループを終了するべきか、またはキャラクターがアイドル ポーズに戻るアニメーションの End セクションに移動するかを判断します。

カーブ

Curves Area

アニメーション カーブ は、アニメーション再生中にマテリアル パラメータまたはモーフターゲットの値を変更する方法を指定できます。 このワークフローでは、変更するアセットを指定し (マテリアルまたはモーフターゲットのどちらか)、カーブに適切な名前を付けて、アニメーションの持続期間中のキーフレームを調整します。

モンタージュの再生

Montage アセットは、ニーズに応じて数種類の方法で再生することができます。 スケルタルメッシュで自動的にモンタージュを再生させたい場合、スケルタルメッシュの Anim to Play として割り当てることができます。 ただし、特定の基準が満たされたときだけモンタージュを再生する場合は、モンタージュまたはモンタージュ内のセクションを呼び出す ブループリント スクリプトを Play Montage ノードを使って作成します。 定義した基準に基づき、C++ コードを使ってモンタージュ再生を指示することもできます。

詳細は、 Using Animation Montages ページを参照してください。

子モンタージュ

子モンタージュ は、ゲームプレイに影響を与えずに、複数アセットに対する通知の再作成や維持管理 (その他の詳細) を必要とせずにアニメーションのバリアントを作成することができます。 この使用例としては、RTS ゲームのユニット (部隊) の自動攻撃アニメーションや、RPG やアクション ゲームでキャラクターが持っている武器の種類に応じてアイドル アニメーションを変更するなどが考えられます。 子のアニメーション モンタージュは、コンテンツ ブラウザ でアニメーション モンタージュを右クリックし、既存のアニメーション モンタージュから [Create Child Montage] コンテキスト メニュー オプションを使って作成することができます。

Child Montage Option

新しいモンタージュはオリジナルのものと同じ名前ですが最後に "_Child" が追加されます。

New Child Montage

子モンタージュを開くと、モンタージュ内のすべてのエレメントがグレーアウトされて、子であることを示すテキストが上に表示されます。

Text Grayed Out

Slot Track [Anim Segment] を右クリックして新規アニメーションでオーバーライドすることができます。

Right-click to Change Anim Segment

Slot Track では長さが違ってもアニメーションを別のものと置き換えることは可能です。 Unreal Engine は、置き換えたアニメーションの再生速度、開始時間、終了時間を自動的に調整し、オリジナルと同等の部分を使い、オリジナルと同時に実行するようにします。 親から変更されていないアニメーションは緑で表示されます。オーバーライドされたアニメーションは黄色で表示されます。

Replaced Animations in Montage

上の図では、攻撃のアニメーションを別の攻撃のアニメーションに置き換えました。

子モンタージュは他の子モンタージュの親として使用することはできません。

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