Unreal Engine には、キャラクター間でアニメーションをリターゲティングするための柔軟なツールが用意されています。リターゲティング方法の一つとして、IK リグ を IK リターゲッタ と組み合わせて使用する手法があり、これによって大幅に異なるスケルトン階層と比率を持つキャラクター間でのリターゲティングが可能になります。アニメーションのリターゲティングは、Unreal Engine の外部で新たにアニメーションを作成および管理することなく、複数の異なるスケルトン間でアニメーション データを共有する手段です。
このドキュメントでは、2 つの異なる二足歩行キャラクター間でアニメーションをリターゲティングするこれらのツールの使用方法について、その概要を説明します。
前提条件
- プロジェクトに少なくとも 2 つの異なる二足歩行キャラクターが含まれている。この例では、サードパーソン テンプレート と Stack O Bot から入手可能な Unreal Engine マネキンを使用しています。
- 両キャラクターにそれぞれ異なるスケルトン アセットとボーン階層が備わっており、このようにリターゲティングする十分な合理性がある。それ以外の場合、たとえばそれぞれのキャラクターに同じような階層や比率が備わっている場合は、互換スケルトン を使用するほうが適切な場合があります。
ソースおよびターゲット IK リグの設定
IK リグでのリターゲティングには ソース と ターゲット のスケルタルメッシュが必要になり、これらはそれぞれのメッシュに対して IK リグ アセット で定義されます。そのため、リターゲティング プロセスで使用するそれぞれのキャラクターに対して IK リグ を作成しておく必要があります。
- コンテンツ ブラウザを開いて [+Add (+追加)] > [Animation (アニメーション)] > [IK Rig (IK リグ)] > [IK Rig] をクリックします。
- リグを追加する先のスケルタルメッシュを選択します。
- この作業を両方のキャラクターで行い、その後にそれぞれの IK リグ アセットを開きます。

ルートをリターゲティングする
両方の IK リグ アセット内で各キャラクターの ルート を定義する必要があります。通常は 骨盤 または 臀部 のボーンです。これを行うのは、キャラクターのルート モーションを定義し、比率に合わせて移行することが目的です。
[Hierarchy (階層)] パネルでボーンを右クリックして [Set Retarget Root (リターゲティング ルートを設定)] を選択します。これを両方の IK リグ アセットで行います。

完了すると、選択したボーンが [Hierarchy] パネルと [IK Retargeting (IK リターゲティング)] セクションで Retarget Root (リターゲティング ルート) として表示されます。

リターゲティング チェーン
リターゲティング プロセスで移行する手足および他の付属要素についても、ソースとターゲットの両方の IK リグで定義する必要があります。このプロセスは、Autodesk MotionBuilder や Maya などの他のアプリケーションにおけるリグの「キャラクター化」に似ています。主な違いは、個々のボーンではなく ジョイント チェーン で定義する点です。これにより、ボーン構造が大きく異なる各キャラクターのリターゲティングにおける柔軟性が高まります。
チェーンは、リターゲティングするすべての主要な手足部分に対して作成する必要があり、指などの小さい部分のチェーンについては任意です。この例では、両方の IK リグで以下のチェーンを作成します。
- Spine (背骨)
- Left Arm (左腕)
- Right Arm (右腕)
- Neck (首)
- Head (頭)
- Left Leg (左脚)
- Right Leg (右脚)

チェーンを作成するには次のステップに従います。
- [Hierarchy] パネルでチェーンの最初のボーンを選び、次にその下の階層にあるすべてのボーン (チェーンの最後のボーンまで) を選択します。
- これらのボーンを右クリックして [New Retarget Chain from Selected Bones (選択ボーンからリターゲティング チェーンを新規作成)] を選択します。
- [Add New Retarget Chain (新規リターゲティング チェーンを追加)] ダイアログ ウィンドウで [Chain Name (チェーン名)] が適切に設定されていることを確認し、[OK] をクリックします。ほとんどの場合、この値は IK リグによってその 共通チェーン名 のリストから自動的に割り当てられます。
- [Add Goal to New Chain (新しいチェーンに目標を追加)] ダイアログ ウィンドウで [No Goal (目標なし)] を選択します。通常は、リターゲティングで 速度プランティング や ストライド ワープ、または ソースへのブレンド といった追加の IK 調整が必要にならない限り、IK 目標 を追加する必要はありません。

両方の IK リグ アセットの主要なすべてのチェーンに対して、このステップを繰り返します。完了すると、[IK Retargeting] パネルに複数のチェーンが表示されます。

単一のボーンのみを含むチェーンも有効です。こうしたチェーンは、肩や首、または頭のボーンなどで生じることがあります。このような場合も、[Hierarchy] パネルで単一のボーンを右クリックし、[New Retarget Chain from Selected Bones] を選択できます。このチェーン エントリには、[Start Bone (開始ボーン)] フィールドと [End Bone (終了ボーン)] フィールドで定義された同じボーンが含まれます。
IK リターゲティング
必要なボーン チェーンを作成したら、IK リターゲッタ でのリターゲティング プロセスを始めることができます。IK リターゲッタは、ソースとターゲットの両方の IK リグを参照するアセットです。IK リターゲッタ エディタでは、ソースとターゲット間でアニメーションを移行する方法をカスタマイズできます。
IK リターゲッタを作成して設定する
IK リターゲッタを作成するには次のステップに従います。
- コンテンツ ブラウザで [+ Add] をクリックし、[Animation] > [IK Retargeter] を選択します。
- 表示されるダイアログ ウィンドウで、アニメーションをリターゲティングする元の IK リグを選択します。
- リグを選択したらその新しい IK リターゲッタ アセットに名前を付け、それをダブルクリックして IK リターゲッタ エディタで開きます。

IK リターゲッタ エディタでは、ビューポートと [Source IKRig Asset (ソース IK リグ アセット)] プロパティにソース スケルタルメッシュのみが表示されます。ターゲット キャラクターを追加するには、[Target IKRig Asset (ターゲット IK リグ アセット)] ドロップダウン メニューをクリックしてターゲット IK リグを選択します。

リターゲティング前のチェックリスト
リターゲティング プロセスを適切かつ正確に行うために、事前に確認すべき項目がいくつかあります。
-
[Chain Mapping (チェーン マッピング)] パネルで、[Target Chain (ターゲット チェーン)] と [Source Chains (ソース チェーン)] の設定が一致することを確認します。ほとんどの場合、それぞれの名前は自動で適切にマッチングされます。適切でない場合は、[Source Chain] のドロップダウン メニューをクリックして、[Target Chain] と一致するようにチェーンの割り当てを変更します。
-
両方のキャラクターに一致する参照ポーズがあることを確認します。一方のキャラクターが T ポーズで、もう一方が A ポーズであるなど、参照ポーズが一致しない場合は、いずれかの リターゲティング ポーズ を変更して両方が一致するようにします。
-
任意ですが、[Details (詳細)] パネルでオフセットとスケールの設定を調整することで、ソースとターゲットの両方のスケルトンを確認しやすくできます。
リターゲティングをプレビューする
[Asset Browser (アセット ブラウザ)] パネルでは、さまざまなアニメーションをダブルクリックして、異なるアニメーション シーケンスでのリターゲティング効果をプレビューできます。

リターゲティング結果をエクスポートする
ターゲット キャラクターでのリターゲティング結果が納得のいくものになったら、そのキャラクターのスケルトンに対応している アニメーション シーケンス にアニメーションをエクスポートできます。そうするには、エクスポートするアニメーションを [Asset Browser] パネルで選択して [Export Selected Animations (選択したアニメーションをエクスポート)] をクリックします。

表示されるダイアログ ウィンドウでエクスポート先のパスを指定して、[OK] をクリックしてアニメーションをエクスポートします。リターゲティングしたアニメーションが、「_Retargeted
」ポストフィックスが付いた出力フォルダにエクスポートされます。

モーションを装飾する
現実的なモーションキャプチャ アニメーションを非現実的なキャラクターにリターゲティングした場合は、結果のアニメーションが不適切または不自然な見かけになることがあります。これは主観的な要素ですが、このような場合は追加のステップを実行し、特定のキャラクターの動きに装飾を加えたり減らしたりすることで、より適切な見かけにすることができる可能性があります。
たとえば、リターゲティングしたロボット キャラクターで走るアニメーションをプレビューしている際に、キャラクターがより飛び跳ねるようにしたい場合があります。これを行うには次のステップに従います。
![]() |
![]() |
---|---|
元のリターゲティング結果 | 調整した設定でのリターゲティング |
IK 目標を作成する
最初のステップでは、IK 目標を作成し、追加のバウンスを加える際にキャラクターの足が地面に着くことを確認します。
IK 目標をまだ作成していないと想定し、ターゲット キャラクターの IK リグ アセットを開きます。[Hierarchy] パネルで足のボーンのいずれかを右クリックし、[New IK Goal (IK 目標の新規作成)] を選択します。

表示されるプロンプトで Limb IK がソルバとして設定されていることを確認して [Add Solver (ソルバを追加)] をクリックし、次のプロンプトで [Assign Goal (目標を割り当て)] をクリックします。

次に、新しく作成した Limb IK ソルバが [Solver Stack (ソルバ スタック)] パネルで選択されていることを確認し、大腿部 (thigh) のボーンを右クリックして [Set Root Bone on Selected Solver (選択されているソルバにルート ボーンを設定)] を選択します。

もう一方の足に対しても上記のステップを行い、2 つの IK 目標と 2 つの Limb IK ソルバを完成させます。

IK リターゲッタのルート設定
次は IK リターゲッタ アセットに戻り、ビューポートでルート デバッグ ビジュアライザを選択するか、[Chain Mapping] パネルの [Root Settings (ルート設定)] をクリックしてルート設定を開きます。

調整するのは、[Scale Vertical (スケール垂直)] と [Translation Offset (平行移動オフセット)] の [Z] の 2 つのプロパティです。
-
[Scale Vertical] は、リターゲティング ルート (ほとんどの場合は骨盤か臀部) のアニメーション カーブの全体的なスケールを増大させます。これによってキャラクターの垂直方向の動きが全体的に増えますが、キャラクターが床よりも高い位置に配置されるようになります。
-
[Translation Offset] の [Z] によってこれを補正します。この値を下げるとリターゲティング ルートの位置が低くなりますが、その全体的なスケールは変わりません。
これらのプロパティをうまく組み合わせて活用することで、リターゲティングしたキャラクターの上下バウンスを増大させることができます。これらのプロパティを調整する度合いは、お使いのキャラクターとアニメーションによって異なります。

この例では、目的のバウンスを達成するために、[Translation Offset] の [Z] を「-173」に、[Scale Vertical] を「6」に設定しました。
