Language:
Page Info
Engine Version:

アニメーション リターゲット(異なるスケルトン)

Retarget1_1.jpg

注記:この機能はエンジンのバージョン 4.5 以前では利用できません。

アニメーションのリターゲット (異なるスケルトン) は、同じスケルトン アセットを共有しないキャラクター間でアニメーションを再利用できるようにする機能です。同じスケルトン アセットを共有するキャラクター間でアニメーションをリターゲットする アニメーション リターゲット とは異なります。

異なるスケルトンを持つキャラクター間でアニメーションをリターゲットするプロセスでは、リグ というアセットを使用し、あるスケルトンから別のスケルトンにボーン情報を渡します。リグを選択したら、ソース スケルトンとターゲット スケルトン (アニメーションをリターゲットする対象のスケルトン) の間でリグを共有します。これを行ったら、次にターゲット スケルトンのボーンを、リグに格納されているノードと一致させます。

ターゲット スケルトンの全ボーンがリグでセットアップされたら、ソース スケルトンで使用されているアニメーションをターゲット スケルトンにリターゲットすることができます。全ての関連データと合わせて Animation ブループリント全体をリターゲットすることも可能です。こうすることで、あるスケルトンから別のスケルトンに全アニメーション アセットを迅速に移動したい場合に時間を短縮することができます。

はじめよう

異なるスケルトン間でアニメーションのリターゲットを開始するには、両方のスケルトンで共有するためにリグ アセットを選択する必要があります。このセクションでは、エンジン コンテンツの一部として同梱される Humanoid Rig を使用するためにアクセスして割り当てる方法を説明します。

マーケットプレイス から無料で入手可能な 2 つのアセット パックも使用します。このアセットパックには、リターゲットに使用できる複数のスケルトンとアニメーションが入っています。使用可能な状態のスケルトン アセットが 2 つあったら、以下の注記をスキップし、そのアセットを使用してください。アセットの準備が整っていなかったら、以下の注記の 2 つのパックを追加する手順に従ってください。

この例では、マーケットプレイス から入手可能な以下のアセットを使用しています。

  • 使用するソース スケルトンは Animation Starter Pack に入っている UE4_Mannequin_Skeleton です。

  • 使用するターゲット スケルトンは Mixamo Character Pack に入っている SWAT_Skeleton です。

上記のパックをインストールしたら、アンリアル ランチャーの [Add to project (プロジェクトに追加)] ボタンを使用してプロジェクトに追加することができます。

AnimationStarterpack2.jpg

Animation Starter Pack には、いくつかのアニメーションが入っており、Mixamo Character Pack のキャラクターにリターゲットします。

ご利用のアンリアル エンジン 4 のバージョンは上記のものとは異なる場合があります。

以下の手順では、デフォルトのリグとアニメーションのリターゲットについて説明します。

  1. コンテンツ ブラウザGame/AnimStarterPack/UE4_Mannequin/Mesh フォルダ内で UE4_Mannequin_Skeleton アセットを開きます。

  2. [Retarget Manager (リターゲット マネージャ)] ボタンをクリックします。[Set up Rig][Select Rig] ドロップダウンをクリックし、 [Select Humanoid Rig] を選択します。

    画像をクリックしてフルサイズで表示

  3. [Save (保存)] をクリックして、ウィンドウを閉じます。

  4. コンテンツ ブラウザGame/MixamoAnimPack/Mixamo_SWAT/Anims フォルダで SWAT_Skeleton アセットを開きます。

  5. [Retarget Manager (リターゲット マネージャ)] ボタンをクリックします。[Set up Rig][Select Rig] ドロップダウンをクリックし、 [Select Humanoid Rig] を選択します。

    画像をクリックしてフルサイズで表示

  6. リグを割り当てた状態で、次にターゲットのボーンをリグのノードと一致させる必要があります。

    Retarget7.png

  7. ドロップダウン メニューを使用して、リグ上のボーン (ノード) の位置と類似しているスケルトンのボーンを選択します。

    画像をクリックしてフルサイズで表示

    上の画像で、左側はソース スケルトン (Show Bone Names が有効な状態) で、右側はターゲット スケルトン (こちらも Show Bone Names が有効な状態) です。中央は、Set up Rig ウィンドウで、ターゲット スケルトンのどのボーンがソース スケルトンのどのボーンと同じであるか (または位置が類似しているか) を指定します。 各スケルトンの命名規則は異なるかもしれませんが、各スケルトン上で各ボーンがどこにあるかがわかり、それに従って一致させます。すべてのボーンを指定する必要はありません。ニーズに応じて微調整が必要な場合があります。

  8. 引き続き各ボーンをリグ上の対応するノードに指定します。

    以下の表は、 UE4_Mannequin_SkeletonSWAT_Skeleton のセットアップを表しています。

    ノード (リグ) ボーン (スケルトン)
    Root None
    Pelvis Hips
    spine_01 Spine
    spine_02 Spine1
    spine_03 Spine2
    clavicle_l LeftShoulder
    upperarm_l LeftArm
    lowerarm_l LeftForeArm
    hand_l LeftHand
    clavicle_r RightShoulder
    upperarm_r RightArm
    lowerarm_r RightForeArm
    hand_r RightHand
    neck_01 Neck1
    head head
    thigh_l LeftUpLeg
    calf_l LeftLeg
    foot_l LeftFoot
    thigh_r RightUpLeg
    calf_r RightLeg
    foot_r RightFoot

    リグを設定する際に使用可能なコンフィギュレーションが 2 つあります。Base または Advanced です。Base コンフィギュレーション (上の表に記載) では、アニメーションのリターゲットを確実に成功させるために必要な主要要素を用います。Advanced コンフィギュレーションには、リターゲット プロセスの一部に含む追加のボーンがあり、指定することができます。

    上記の例では、左右の手がリターゲット プロセスの一部に含まれます。しかし、個々の指は含まれません。Base コンフィギュレーションでアニメーションをリターゲットすると、基本的な動きが新規スケルトンに確実にコピーされます。しかし、ソース スケルトンにアニメートされた指が含まれるが、ターゲット スケルトンには含まれない場合、リターゲットされるアニメーションでは、指をアニメートせず、こわばった外観の手になります。

  9. [Show Advanced] ボタンをクリックして、[Advanced] コンフィギュレーションを切り替えます。

    RetargetAdd4.png

  10. ターゲット スケルトンのボーンを、Advanced コンフィギュレーションのリグ上のノードに指定します。

    ノード (リグ) ボーン (スケルトン)
    index_01_l LeftHandIndex1
    index_02_l LeftHandIndex2
    index_03_l LeftHandIndex3
    middle_01_l LeftHandMiddle1
    middle_02_l LeftHandMiddle2
    middle_03_l LeftHandMiddle3
    pinky_01_l LeftHandPinky1
    pinky_02_l LeftHandPinky2
    pinky_03_l LeftHandPinky3
    ring_01_l LeftHandRing1
    ring_02_l LeftHandRing2
    ring_03_l LeftHandRing3
    thumb_01_l LeftHandThumb1
    thumb_02_l LeftHandThumb2
    thumb_03_l LeftHandThumb3
    lowerarm_twist_01_l LeftHand
    upperarm_twist_01_l LeftArm
    index_01_r RightHandIndex1
    index_02_r RightHandIndex2
    index_03_r RightHandIndex3
    middle_01_r RightHandMiddle1
    middle_02_r RightHandMiddle2
    middle_03_r RightHandMiddle3
    pinky_01_r RightHandPinky1
    pinky_02_r RightHandPinky2
    pinky_03_r RightHandPinky3
    ring_01_r RightHandRing1
    ring_02_r RightHandRing2
    ring_03_r RightHandRing3
    thumb_01_r RightHandThumb1
    thumb_02_r RightHandThumb2
    thumb_03_r RightHandThumb3
    lowerarm_twist_01_r RightHand
    upperarm_twist_01_r RightArm
    calf_twist_01_l None
    ball_l LeftToeBase
    thigh_twist_01_l LeftUpLeg
    calf_twist_01_r None
    ball_r RightToeBase
    thigh_twist_01_r RightUpLeg

    あるスケルトンでもうひとつのスケルトンには含まれていない追加のボーンがある場合がありますが、これに対応するためにターゲット スケルトンで調整できるため、こうしたボーンは省略することができます。

    IK のリターゲットはまだ開発途中であるため、この例では、Mixamo キャラクターの IK ボーンを None のままにすることもできます。

  11. コンテンツ ブラウザGame/AnimStarterPack で、新規スケルトンにリターゲットするアニメーションを選択します。

  12. アニメーション上で 右クリック して、[Retarget Anim Assets -> Duplicate Anim Assets and Retarget] の順序で選択します。

    RT_DuplicateAnim.jpg

  13. [Select Skeleton (スケルトン選択)] ウィンドウで、ウィンドウ上部にスケルトンが表示されます。それを選択し、[Select] をクリックします。

    Retarget11_2.jpg

  14. リターゲットするために選択したアニメーションのコピーが、ターゲット スケルトンの同じフォルダに作成されます。

    Retarget12.png

    この新規アニメーションはキャラクターで使用できるようになりました。

リターゲットの調整

リグをセットアップしてスケルトン間で共有する場合、あるスケルトンが他のボーンにはないボーンを余分に持っている場合があります (例、「はじめよう」のセクションで、例と同じスケルトンを使用した場合、例えば Mixamo Skeleton の手に余分なボーンがあることに気づくことでしょう)。これは、場合によっては問題を生じることがありますが、スケルトンへの移動のリターゲットを再帰的に設定することで修正できます。

例えば、以下は調整前の画面です。

Retarget13.png

リグのセットアップ中に余分なボーンを指定しなかったために指が歪んでいるように見えます。

これは調整を行った後の例です。

Retarget15.png

スケルトン ツリー ビューでボーンの移動のリターゲットを指定することができます。ここでは、各指の最後の指上で 右クリック して、Bone Translation (ボーンの移動) を Recursively Set Translation Retargeting Skeleton(移動のリターゲットのスケルトンを再帰的に設定) に設定します。

Retarget14.png

Animation ブループリントをリターゲットする

2 つのスケルトン アセットで共有するリグをセットアップするプロセスを行い、ソース スケルトンに関連付けられている Animation ブループリント があれば選択して、ターゲット スケルトンで使用するためにリターゲットすることができます。

Animation ブループリント上で 右クリック して、Retarget Anim Blueprints -> Duplicate Anim Blueprints and Retarget オプションの順序で選択します。

RT_AnimBP.jpg

[Select Skeleton (スケルトン選択)] ウィンドウが表示されます。ターゲット スケルトンを選択し、[Select] を押してください。

Retarget11_2.jpg

Animation ブループリントに関連する全アセット (Animation アセット、ブレンドスペースなど) は、Animation ブループリント自体で定義されているロジックがあればそれと合わせてコピーされ、ターゲット スケルトンと同じ場所に置かれます。

Retarget17.png

ベース ポーズをリターゲットする

ソース スケルトンと正確には同じベース ポーズを使用していないスケルトンにアニメーションをリターゲットする場合があるかもしれません。

例えば、以下の右側の画像のスケルトンをご覧ください。

Retarget2_2.jpg

左側のソース スケルトンは、A-Pose であり、ターゲット スケルトンは、T-Pose を使用しています。リグは共有するためにセットアップされていますが、アニメーションを現在の状態のままリターゲットする場合、以下のような問題が生じることがあります。

Retarget19.png

上の画像では、アニメーションはターゲット スケルトンにリターゲットされています。しかし、ベース ポーズが同じではないため、腕が横にクリップしています。アニメーションをリターゲットする前に、ターゲット スケルトンのベース ポーズもリターゲットできます。これにより、上記のような問題発生を減らすか、なくすことができます。

ターゲット スケルトンでは、[Retarget Manager] に、Manage Retarget Base Pose というオプションがあります。

Retarget20.png

[View Pose] ボタンをクリックすると、現在のベース ポーズが表示されます。ボーンをクリックして、Rotation (E) ウィジェットを使用することで調整できます。

Retarget21.png

上の画像では、右腕が調整され、左腕はデフォルトのベース ポーズ (回転ウィジェットを使用して調整可能) を使用しています。ポーズを調整したら、[Save Pose] オプションをクリックして、リターゲットしたベース ポーズを保存することができます。スケルトン間で類似したベース ポーズでは、アニメーションをリターゲットすることができます。スケルトン選択ウィンドウが表示されると、ターゲット スケルトンが、リターゲットしたベース ポーズを使用していることがわかります。

Retarget2_2.jpg

リターゲットしたベース ポーズでアニメーションをリターゲットすると、アニメーションの見栄えがよくなります。

Retarget23.png