Animation Montage の概要

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

Windows
MacOS
Linux

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

モンタージュのサンプル

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

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

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

Montage Example

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

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

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

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

  • 単一アニメーションとして考えたい複雑なアニメーション シーケンスをつなげる

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

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

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

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

モンタージュの UI

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

MontageWindow.png

モンタージュのアセット エディタのパネルは以下の主な領域に分けられます。

  1. Montage (モンタージュ)

  2. Sections (セクション)

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

  4. Notifies (通知)

  5. Curves (カーブ)

モンタージュ

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

MontageArea.png

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

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

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

セクション

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

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

スロット

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

MultipleSlots.png

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

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

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

Anim グループ / スロット

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

セクション

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

SectionsUI.png

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

  2. [Section] ボタン - モンタージュ領域で定義した各セクションに対応するボタンが表示されます。これを、 Section Association (セクション関連付け) に割り当てることができます。 Section Association Tracks (セクション関連付けトラック) - この領域で、[Preview All Sections] をクリックしてアニメーション セクション間の関係を可視化したり、 [Preview] をクリックして個々のトラックを可視化する領域です。

ループ

セクションは無制限にループを設定することができます。繰り返しが必要なアクションなどには非常に便利です。 Section Association Track で同じセクションを複数回以上関連付けることにより、この関連付けをループで実行することができます。 この時、セクションは青色に変わります。例えば、一度に 1 つの砲弾をショットガンにリロードするキャラクターのアニメーションを作成すると仮定します。 キャラクターが砲弾を挿入するセクションのみを取り込んで、これをループさせます。 それから 通知 を利用して、アニメーションが再生されるごとに弾薬カウントをインクリメントするように、ブループリントで Notify Event を作成します。 カウントが設定数に達したら (銃弾の許容量)、キャラクターがレシーバーをクローズするアニメーションに切り替えて、アイドル ステートに戻ります。

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

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

ElementTimingTrack.png

トラックの各ノードにはそのオブジェクトのモンタージュ内でのトリガー順序を表す数字が与えられていて以下のように色分けされています。

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

  • 水色 - 分岐点の通知

  • - Montage のセクション

Element Timing トラックで ElementOptions.png ボタンをクリックすると追加情報を表示 / 非表示にすることができます。

通知

NotifiesSection.png

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

カーブ

CurvesArea.png

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

モンタージュの再生

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

詳細は、アニメーション モンタージュを使用する ページを参照してください。

子モンタージュ

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

ChildMontageOption.png

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

NewChildMontage.png

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

GrayedOut.png

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

RightClickChange.png

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

ReplacedMontage.png

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

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

Select Skin
Light
Dark

新しい Unreal Engine 4 ドキュメントサイトへようこそ!

あなたの声を私たちに伝えるフィードバックシステムを含め、様々な新機能について開発をおこなっています。まだ広く使える状態にはなっていないので、準備ができるまでは、ドキュメントフィードバックフォーラムで、このページについて、もしくは遭遇した問題について教えていただけると助かります。

新しいシステムが稼働した際にお知らせします。

フィードバックを送信