Sync Group

Sync Group は、異なる長さのアニメーションを同期します。

Choose your operating system:

Windows

macOS

Linux

Sync Groups は異なる長さであっても関連するアニメーションを互いに同期させます。例えば、歩行サイクルと走行サイクルをブレンドさせて、キャラクターを滑らかに加速または減速させる場合があります。しかし、任意のキャラクターの歩行サイクルは通常、走行サイクルようりも大幅に長くなるでしょうか? そのような場合、あるものをもう 1 つのものに直接ブレンドすると、足のアニメーションの切り替え時に見栄えの悪いビートが生じるなど、不自然な結果が生じることになります。

Sync Group は、主要なアニメーション ノード 1 つを リーダー にし、関連する他の全てのアニメーションの時間の長さがリーダーの長さに一致するようにスケーリングすることで、この問題を解消します。通常、リーダーはブレンド ウェイトが一番大きいノードになります。ウェイトがブレンドされ、フォロワーのウェイトがリーダーのウェイトより重くなったら、このフォロワーがリーダーとなります。このように、2 つのアニメーションが共に円滑に機能して、1 つのモーションから次のモーションへシームレスに遷移します。

ただし、アニメーションの時間はシフトしているので、アニメーションに対して特定の配慮が必要です。例えば、歩行サイクルと走行サイクルをブレンドさせた例では、アニメーションは動き始めと終わりが必ず同じ足になるようにすると思います。こういった標準を早めに作成しておくと、全てのブレンドをもっとスムーズにできるようになります!

グループのロール:リーダーとフォロワー

Sync Group は、 1 つのアニメーションがリーダーとなり、その他は全てフォロワーとなるグループ ロールの概念で機能します。

Leader

  • 全てのフォロワーに使用するマスターとなるアニメーションの長さを提供します。

  • Notifies の全てを実行します。

Follower

  • リーダーに合わせてアニメーションの長さをスケールします。

  • 自分の Notifies を抑止して、リーダーの Notifies に従います。

リーダーとフォロワーは、どちらのアニメーションの方がブレンド ウェイトがあるかによって指定されます。以下がその例です。

画像

説明

diagram_RunAnimation.png

Sync Group 名 WalkRun に設定された元のサイズの走行アニメーションです。

diagram_WalkAnimation.png

Sync Group 名 WalkRun に設定された元のサイズの歩行アニメーションです。

diagram_walkAnimationScaledDown.png

このインスタンスでは、走行アニメーションのブレンド ウェイトが歩行アニメーションより重くなります。これらは同じ Sync グループなので、歩行アニメーションが走行アニメーションの長さに一致するように短縮されます。

diagram_RunAnimationScaledUp.png

ここで、歩行アニメーションのブレンド ウェイトの方が重たくなります。この結果、走行アニメーションは歩行の長さに一致するように拡大されます。

Sync Group の設定

Sync Group の設定を行うには、AnimGraph で Animation ノードを選んで、 [Details (詳細)] パネルを見ます。Sync Group プロパティがあります。

AnimationSyncGroup.png

プロパティ

説明

Group Name

Sync Group を設定する場所です。通常、ブレンド予定の関連するアニメーション (コソコソ歩く、歩行、走行、スプリントなどのボディ モーション) は同じ Sync Group に入れると良いでしょう。

Group Role

グループのメンバーのタイプを設定する場所です。利用可能な値は、 "Can Be Leader" (デフォルト)、 "Always Leader"、 および "Never Leader" です。

Sync Group は、ステートマシーン内、 AnimGraph 内の AnimSequence ノードおよび BlendSpace ノードで設定可能です。

マーカーベースのアニメーション同期

Sync Group を使用する以外に、アニメーション内でマーカーを使ってアニメーションを同期させることもできます。

AddSyncMarker.png

Sync Marker (同期マーカー) を追加するには、アニメーション シーケンスの アニメーション通知 トラック内で右クリックして [Add Sync Marker] を選択します。

Sync Marker で作業する場合に考慮すべきこと

  • 同じ同期グループ内のアニメーションだけが同期され、リーダーが同じ同期グループ内のフォロワーの位置を操作します。

  • 再生レートは常にマスター アニメーションのレートを使用します (現在、再生レートの調整は利用できません)。

  • グループ内のすべてのアニメーションに共通するマーカーのみ同期します。

    • 例えば、アニメーションに 'Right Foot Down' マーカーがなければ、そのフレーム位置の決定時にこれらのマーカーはすべてのアニメーションで無視されます。

  • 位置は、共通マーカーのリーダーの相対位置に基づいて同期します。

    • 例えば、リーダーが左右のフットマーカーの間の 25 % の場所にいたら、フォロワーはそれぞれの左右のマーカーの間の 25 % に同期されます。

  • マーカーベースの同期は、同期グループのアニメーションに一致するマーカーが十分ある場合に使います。それ以外の場合は、元のスケールの長さに同期したビヘイビアが使用されます。

  • AnimMontages もブレンドアウトしながらのマーカーベース同期をサポートしているので、別のアニメーションからシームレスに遷移することができます。

アニメーション内で Animation Modifier をセットアップして適用することで Sync Marker を自動的に追加することもできます。

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