アニメーション ブループリント でのブレンド動作を向上するために、同期グループ (Sync Group) を使って、関連するアニメーションの長さと再生をブレンド時に自動的に同期できます。異なる長さの歩くサイクルと走るサイクルの間でブレンドを行う場合に便利です。そのような場合に、同期グループを使用せずにサイクルからもう一方のサイクルに直接ブレンドすると、足の位置が同期しないことで不自然な動きとなる可能性があります。
このドキュメントでは、アニメーション ブループリントにおける同期グループ システムの概要について説明します。
前提条件
- 同期グループは アニメーション ブループリント 内で作成されて管理されるため、ユーザーはこのエディタの基本的な機能について把握しておく必要があります。
概要
同期グループは役割に基づいたコンセプトで機能します。1 つのアニメーションが リーダー となり、他のアニメーションは フォロワー となります。リーダーにより、すべてのフォロワーが使用するマスターのアニメーションの長さが提供されます。また、リーダーは アニメーション通知 のトリガーにおいて優先されます。フォロワーは自身のアニメーションの長さをリーダーのものと一致させて、自身の通知は抑止します。
ブレンド時にはデフォルトで、ウェイトの分布に応じて、リーダーとフォロワーの割り当てを変更することができます。ブレンド影響度の最も高いアニメーションをリーダーとします。
画像 | 説明 |
---|---|
![]() |
例として、歩くサイクル アニメーションと走るサイクル アニメーションを比較できます。通常、これらのアニメーションの長さは一致しません。同期グループを使用しないと、これらのアニメーションの全般的なボディの動きサイクルは揃いません。 |
![]() |
同期グループとともに リーダーとして走るサイクル を使用すると、歩くサイクルの再生速度がリーダーに一致するように調整されます。この場合は歩くサイクルが短縮されて、走るサイクルに一致するようにより速く再生されます。 |
![]() |
同期グループとともに リーダーとして歩くサイクル を使用すると、走るサイクルの再生速度がリーダーに一致するように調整されます。この場合は走るサイクルが延長されて、歩くサイクルに一致するようにより遅く再生されます。 |
同期グループを使ったアニメーションの同期の特性のため、この方法でアニメーションを使用する際には、アニメーションに関する検討すべき制限事項があります。
-
同期するすべてのアニメーションのボディの動きが、開始から終了まで全般的に同じであることを確認します。歩くアニメーションと走るアニメーションについては、開始フレームと終了フレームで同じ側の足を地面に付けることを意味します。
-
また、ブレンドする複数のアニメーション間で、長さに大きな違いがないことを確認します。これにより、一部のアニメーションが他のアニメーションよりも顕著に速くなったり、リーダーとフォロワーのアニメーションが切り替わった際に、再生レートに顕著な「ポップ」 (突然の変化) が生じたりすることがあります。
同期設定
さまざまな方法でアニメーションを同期する際は、[Details] パネルに含まれる次の設定を使って動作を編集できます。
名称 | 説明 |
---|---|
Group Name | 同期グループの名前を定義します。通常は、一緒にブレンドするすべての関連アニメーション (忍び込む、歩く、走る、ダッシュするなどのボディの動き) の名前を同じにして、これらがすべて同じ同期グループに含まれるようにしてください。 |
Group Role | アニメーションのためにリーダーとフォロワーのルールを指定します。以下の選択肢があります。
|
Method | 同期方法を定義します。以下の選択肢があります。
|
同期グループのタイプ
同期グループの設定にはいくつかの方法があり、次のタイプから選択できます。
グループベースの同期
グループベースの同期 では、アニメーションが名前によってグループ化されます。グループベースの同期グループを作成するには、同期する各アニメーション ノードを AnimGraph で選択し、[Details] パネルの [Sync (同期)] カテゴリに移動して、次のプロパティを設定します。
-
[Method] を [Sync Group] に設定します。
-
[Group Name (グループ名)] に名前を入力します。グループ名 は同期するすべてのアニメーションに一致するものである必要があります。

ブレンド時にアニメーションが同期されます。この動作をプレビューにするには、各アニメーションを Blend ノードに接続して Apha (アルファ) を「0.5」に設定します。
![]() |
![]() |
---|---|
グループ同期オフ | グループ同期オン |
同期グループをアニメーション ノードで使用する場合は、同期方法とグループ名が透かしテキストでノードに表示されます。

マーカーベースの同期
同期グループに加えて、アニメーション シーケンス内で 同期マーカー を使ってアニメーションを同期することもできます。これにより、アニメーションの再生が、アニメーションのタイムラインに沿って配置された各マーカー間における再生の相対位置に基づいて同期されます。
これは、さまざまなブレンド条件下において有用な機能です。
- 全般的なボディの動きに一致する歩数がない場合。例えば、右足が 4 回接地する走るサイクルと、2 回だけ接地する歩くサイクルをブレンドする場合があります。
- 歩幅が同じでない場合。例えば、時間に厳格な行進のアニメーションを、時間に緩い駆け足のアニメーションにブレンドする場合があります。
- 走る、および歩く動作の開始アニメーションと停止アニメーションなど、非ループのアニメーションでブレンドする場合。さらに、このような場合は、開始と停止のアニメーションを [Always Leader] に設定する必要があります。

同期マーカーを追加するには、アニメーション通知 タイムライン内を右クリックして、[Add Sync Marker... (同期マーカーを追加...)] > [New Sync Marker… (新しい同期マーカー...)] を選択します。次に、同期マーカーの名前を入力して Enter キーを押します。

同期マーカーが追加されるとスケルトンに保存されます。追加後は、同期マーカーの名前をさまざまなアニメーションで再利用でき、同じ名前が使用されて標準化されるようになります。保存された同期マーカーは、アニメーション通知のタイムライン内を右クリックして [Add Sync Marker...] > [Existing Sync Markers (既存の同期マーカー)] を選択し、リストから同期マーカーを選択することで追加できます。

同期マーカーは、それぞれのアニメーションが同じ 同期グループ 内にある場合のみに他のマーカーと同期します。つまり、同期マーカーと同期グループの両方の名前を一致させる必要があります。
アニメーション モンタージュ もブレンドアウト中のマーカーベースの同期をサポートしているので、別のアニメーションにシームレスに遷移することができます。アニメーション モンタージュ エディタで、[Asset Details (アセット詳細)] パネル の [Sync Group (同期グループ)] に行き、関連する同期プロパティを編集します。

同期マーカーの使用時に考慮すべき追加事項には次があります。
- グループ内のすべてのアニメーションに共通するマーカーのみが同期される。例えば、1 つのアニメーションに「Right Foot Down」 (右足を下す) マーカーがなければ、そのフレーム位置の決定時に、このマーカーがすべてのアニメーションで無視されます。
- マーカーベースの同期は、同期グループのすべてのアニメーションに一致するマーカーが含まれる場合に自動的に使用される。そうでない場合は、通常の長さの同期動作にフォールバックします。
グラフベースの同期
複雑なアニメーション ブループリントをビルドする際は、名前ベースの同期グループの管理が煩雑になることがあります。そのような場合は代わりに グラフベースの同期 を使って、1 つの同期グループをさまざまなサブグラフおよび子ノードに反映させることができます。グラフベースの同期では、[Method] が [Graph] に設定された子ノードとグラフが必要になります。

グラフベースの同期を使用する際の最初の手法は、Sync ノードを作成することで行われます。このノードは、[Method] が [Graph] に設定されているすべての受信ポーズ ノードに同期動作を反映するものです。グラフに Sync ノードを加えるには、右クリックして [Misc. (その他)] カテゴリから [Sync] を選択します。

すべての受信アニメーション データを同期できるように、通常はこのノードをポーズ ロジックの後に配置してください。

ブレンド スペース グラフ
Sync ノードに加えて、ブレンド スペース グラフ にもグラフ同期機能が備わっています。これにより、同期動作がグラフ内のすべての子サンプルに反映されます。
Sync ノードと同様に、同期動作を反映するためにブレンド スペース グラフでも グループ名 が必要になります。

デフォルトでは、ブレンド スペース グラフのサンプル内で生成された シーケンス プレイヤー により、Blend Space Graph ノードからの同期を受け入れるために、[Graph] 同期方法を使用するようにデフォルト設定されます。
