Allright Rigを使ってUE4上でアニメーションを調整する 〜セットアップ編〜

Labyrinth

概要

はじめに

前回の記事で、Perception Neuronでモーションキャプチャー収録したアニメーションデータをBlenderで調整してUE4に持っていく手順を紹介しました。

モーションキャプチャーのデータをBlenderで調整してUE4で使用する

本記事では、UE4に持ってきたアニメーションをレベルシーケンサーで再生しながらAllright Rigを用いて最終調整する方法を紹介します。

Allright Rigとは

Allright Animation Rigは、UE4エディタ上でリグをセットアップしてアニメーションを作成することができる有償プラグインです。非常に優れたプラグインで、アップデートも頻繁に行われています。

ヒストリア社様の技術ブログも是非ご一読ください。

バージョン2.0.7でアニメーションレイヤーが追加され、2.0.8でTransformのLimit機能が追加されたことで一気に活用範囲が広がりました。

特にアニメーションレイヤーの追加のおかげで、IKリグをセットアップして手付アニメーションを作るだけでなく、手持ちのアニメーションアセットが自分の期待する動きと少し合わない場合などに、Allright Rigで簡単に修正することができるようになりました。

Allright Rigでのアニメーション作成の流れ

Allright Rigでアニメーションを作成するには、まずアニメーションを作成したいキャラクターに対して、Allright Rigの機能を組み込んだアニメーションブループリントを用意してあげます。

次に、そのアニメーションブループリントに対してリグを設定していきます。リグは単純なIKや、スプラインIK、IK/FK切り替え可能なリグなど複数種類用意されていて、それらをどのボーンに適用するか、どんなパラメータで制御するかなどを設定していきます。

ここまでがセットアップの作業です。本記事ではここまでを紹介します!

実際にアニメーションを作成 / 修正する際は、UE4のシーケンサーの機能を使用して行います。それはまた次回の記事で紹介させていただきます!

下準備

必要なソケットを作成する

これからリグを作成するにあたって、UE4のスケルトンアセットにてソケットを作成しておきます。

これは、体の位置の目印のようなもので、ボーンが存在しない箇所に対してリグを指定する際に、ソケットを配置しておくと指定することができるようになります。

今回は両足のつま先とかかとの部分に作成します。

  1. 対象のスケルトンを開く。
  2. 画面左のスケルトンツリーの[Foot_L]を右クリックして[ソケットを追加]を選択する。
  3. 名前をここでは[Socket_Heel_L]にしました。
  4. 同様に、[Ball_L]を右クリックして[ソケットを追加]を選択し、名前を[Socket_Toe_L]にする。
  5. 下図のように、[Socket_Heel_L]をかかとの位置、[Socket_Toe_L]をつま先の位置になるように調整する。
  6. 反対の足も同じように設定する。

手順

プラグインをインストールする

Allright RigはUE4のマーケットプレイスで購入することができます。

Allright Rigはエンジンに対してインストールするプラグインですので、インストールしたバージョンのUE4ならばどのプロジェクトでも利用可能になります。

先述の通りAllright Rigはアップデートが頻繁なため、UE4の最新版に対応していない状況は少ないかと思います!

キャラクターをセットアップをする

アニメーションブループリントを用意する

Allright Rigを使用したいキャラクターに対して、Allright Rigの機能を組み込んだアニメーションブループリントを作成します。

以前まではドキュメントを見ながら手作業で作成していましたが、バージョン2.0.8からはワンクリックで作成されるようになりました!

スケルトンアセットを右クリックして、[Generate ARR Anim Brueprint]をクリックすると作成完了です。めっちゃ楽ですね!

アニメーションブループリントが生成されるので、ここでは名前を「ABP_Haruka_AR」と変更しました。

このアニメーションブループリントに一手間加えます。

アニメーションブループリントのアニムグラフを開き、下図のようにDefault SlotをOutput Poseの前に追加します。

こうすることによって、アニメーションブループリントに対してアニメーションをセットした際に、そちらが再生されるようになります。この対応が、既存のアニメーションアセットをAllright Rigで編集するために必要な下準備となります。

リグを設定する

スケルタルメッシュに対してリグをセットアップしていきます。

Allright Rig公式のサンプルプロジェクトにて、色々な骨格のリグを見ることができます。

以降は、例としてLabyrinthでの設定を紹介します。

Labyrinthでは標準的な人型のモデルを使用しており、UE4のボーン名に合わせています。

下準備として、先ほど作成したアニメーションブループリントをレベル上に配置します。
また、RigToolsウィンドウが表示されていない場合は、[Window]>[Allright Rig]>[RigTools]を選択して表示してください。

基本設定
  1. [Anim Class]に先程生成したアニメーションブループリントを選択する。
  2. [RigTools]>[Rig Class]は[RigModular]を選択する。
  3. [Prefix]に固有の名称を入力する。
    レベル上にAllright Rigのキャラを複数配置する際に名前が重複しないようにするため。
Custom Controllers その1
[Custom Controllers]の右側の[+]を1回クリックして要素数を増やし、以下のように設定します。

  1. [Bone Name]に[Pelvis]を選択する。
  2. [Update]のチェックを外す。
  3. [World Orientation]にチェックを入れる。
  4. [Shape]に[SM_Circle]を選択する。
    SM_Circleが表示されない時は[表示オプション]>[エンジンのコンテンツを表示]を選択
  5. Sizeを2.0にする。
一旦リグ生成 その1

ここまでの設定を間違えなければ、レベル上に配置したアニメーションブループリントを選択状態にすると、RigToolsウィンドウの一番上の[Rig]ボタンがクリック可能になるので、一旦[Rig]をクリックしてアクターにAllright Rigを適用します。

設定したコントローラーがアウトライナに表示されます。

xxx_Mainの子に、カスタムコントローラーのxxx_PelvisCtrlが生成されました(”xxx_”はPrefix名)。このように、[RigTools]ウィンドウで設定したパラメータは、[Rig]ボタンをクリックして生成することで初めて使用することができます。

また、[RigTools]ウィンドウでリグを作成する際に、別のリグを参照で指定したい時があります。その場合、このように一度リグを実際に生成することで、別のリグでPelvisCtrlを指定できるようになります。そのため、[Rig]ボタンをクリックして反映させてから[Delete Rig]で削除するという手順を、途中で何度か行うことになります。

表示を確認したところで、ツリーの一番トップであるxxx_Mainを選択し、[RigTools]ウィンドウの[Delete Rig]をクリックしてリグを解除します。

引き続き残りのリグを設定していきます。

Spline Ik Rigs
[Spline Ik Rigs]の右側の[+]を1回クリックして要素数を増やし、以下のように設定します。

  1. [Root Bone]に[Pelvis]を選択する。
  2. [Tip Bone]に[Spine_03]を選択する。
  3. [Parent Controller]に[PelvisCtrl]を選択する。
    [PelvisCtrl]は先程一旦[Rig]をクリックしてリグを生成したことによって選択できるようになっている。
一旦リグ生成 その2

SplineIKのコントローラーを他のリグから選択したいので、この時点で再び[Rig]をクリックしてリグを生成します。

上図のようにPelvisとSpine_03のIKコントローラーが生成されたことを確認して、再び[Delete Rig]しておきます。

Custom Controllers その2

Spine_03のIKが選択できるようになったので、残りのCustom Controllerを作成します。

[Custom Controllers]の右側の[+]を2回クリックして要素数を2つ増やし、それぞれ以下のように設定します。

  1. 左鎖骨
    1. [Bone Name]を[Clavicle_L]に選択する。
    2. [Parent Controller]に[Spine_03Ik]を選択する。
    3. [Shape]>[Color]をR:1.0 G:0.5 B:0.5 A:1.0 にする。
  2. 右鎖骨
    1. [Bone Name]を[Clavicle_R]に選択する。
    2. [Parent Controller]に[Spine_03Ik]を選択する。
    3. [Shape]>[Color]をR:0.5 G:0.5 B:1.0 A:1.0 にする。
Fk Hierarchy Rigs
[Fk Hierarchy Rigs]の右側の[+]を1回クリックして要素数を増やし、以下のように設定します。

  1. [Hierarchy Depth]に[1]を入力する。
  2. [Tip Bone]に[Head]を選択する。
  3. [Parent Controller]に[Spine_03Ik]を選択する。
  4. [Shape]>[Size]に[0.3]を入力する。
  5. [Follow Parent Property]にチェックを入れる。
一旦リグ生成 その3

Clavicleのコントローラーを他のリグから選択したいので、この時点で再び[Rig]をクリックしてリグを生成します。

上図のようにClavicle_LとClavicle_RのFKコントローラーが生成されたことを確認して、再び[Delete Rig]しておきます。

Fk Ik Rigs

FKとIKに切り替えられるリグを作成します。作成箇所は両手足の4箇所です。

[Fk Ik Rigs]の右側の[+]を4回クリックして要素数を4つ増やし、以下のように設定します。

  1. 左手
    1. [Pole Vector Simple]にチェックを入れる。
    2. [Tip Bone]に[Hand_L]を選択する。
    3. [Parent Controller]に[Clavicle_LCtrl]を選択する。
    4. [Middle Finger]に[Middle_01_L]を選択する。
    5. [Aim Ik to Middle Finger]にチェックを入れる。
    6. [Fk Size]に[0.4]を入力する。
    7. [Fk Color]をR:1.0 G:0.5 B:0.5 A:1.0 にする。
    8. [Ik Size]に[0.4]を入力する。
    9. [Attach Pv to Ik]にチェックを入れる。
      チェックを入れると、手のIKを動かしたときに肘のPvが連動して動くようになります。
    10. [Fingers]にチェックを入れる。
    11. [Fingers Tip Bones]の右側の[+]を5回クリックして要素数を5つ増やし、以下のように設定する。
      1. 一つ目の要素に[Thumb_03_L]を選択する。
      2. 二つ目の要素に[Index_03_L]を選択する。
      3. 三つ目の要素に[Middle_03_L]を選択する。
      4. 四つ目の要素に[Ring_03_L]を選択する。
      5. 五つ目の要素に[Pinky_03_L]を選択する。
    12. 補助ボーンがある場合は、[First Twist Bones]で設定する。
  2. 右手
    左手の設定と基本は同じです。[Fk Color]は R:0.5 G:0.5 B:1.0 A:1.0、[Ik Color]はR:0.0 G:0.0 B:1.0 A:1.0 にします。
  3. 左足
    1. [Arm]のチェックを外す。
    2. [Pole Vector Simple]にチェックを入れる。
    3. [Tip Bone]に[Foot_L]を選択する。
    4. [Parent Controller]に[PelvisIk]を選択する。
    5. [Middle Finger]に[Ball_L]を選択する。
    6. [Aim Ik to Middle Finger]にチェックを入れる。
    7. [Fk Size]に[0.4]を入力する。
    8. [Fk Color]をR:1.0 G:0.5 B:0.5 A:1.0 にする。
    9. [Ik Size]に[0.4]を入力する。
    10. [Attach Pv to Ik]にチェックを入れる。
    11. [Foot Controllers]にチェックを入れる。
    12. [Foot Controllers Data]を以下のように設定する。
      1. [Toe Socket]に下準備で用意した[Socket_Toe_L]を選択する。
      2. [Heel Socket]に下準備で用意した[Socket_Heel_L]を選択する。
      3. [Size]に[0.2]を入力する。
    13. 補助ボーンがある場合は、[First Twist Bones]で設定する。
  4. 右足
    左足の設定と基本は同じです。[Fk Color]は R:0.5 G:0.5 B:1.0 A:1.0、[Ik Color]はR:0.0 G:0.0 B:1.0 A:1.0 にします。
Face Rig Data

顔(表情)のリグはモデルの構造によって大きく変わりますが、ここではVRoidのモデルに対する設定例を紹介します。

  1. [Face]にチェックを入れる。
  2. [Head Bone]に[Head]を選択する。
  3. [Head Controller Name]に[HeadFk]を選択する。
  4. [Eyes Settings]を以下のように設定する。
    1. [Eyes]にチェックを入れる。
    2. [Left Eye Bone]に[Eye_L]を選択する。
    3. [Right Eye Bone]に[Eye_R]を選択する。
  5. [Morph Controllers]の右側の[+]を23回クリックして要素数を23個増やし、以下のように設定する。
    NameTransform(位置)Shape>ColorMorphTargets
    Face_MTH_AX:-5.0 Y:0.0 Z:-6.0R:1.0 G:1.0 B:0.0 A:1.0MTH A
    Face_MTH_IX:-2.5 Y:0.0 Z:-6.0R:1.0 G:1.0 B:0.0 A:1.0MTH I
    Face_MTH_UX:0.0 Y:0.0 Z:-6.0R:1.0 G:1.0 B:0.0 A:1.0MTH U
    Face_MTH_EX:2.5 Y:0.0 Z:-6.0R:1.0 G:1.0 B:0.0 A:1.0MTH E
    Face_MTH_OX:5.0 Y:0.0 Z:-6.0R:1.0 G:1.0 B:0.0 A:1.0MTH O
    Face_MTH_FunX:-5.0 Y:0.0 Z:-4.0R:1.0 G:0.0 B:0.0 A:1.0MTH Fun
    Face_MTH_SorrowX:-2.5 Y:0.0 Z:-4.0R:1.0 G:0.0 B:0.0 A:1.0MTH Sorrow
    Face_MTH_AngryX:0.0 Y:0.0 Z:-4.0R:1.0 G:0.0 B:0.0 A:1.0MTH Angry
    Face_MTH_JoyX:2.5 Y:0.0 Z:-4.0R:1.0 G:0.0 B:0.0 A:1.0MTH Joy
    Face_MTH_SurprisedX:5.0 Y:0.0 Z:-4.0R:1.0 G:0.0 B:0.0 A:1.0MTH Surprised
    Mouth_UpDownX:8.0 Y:0.0 Z:-5.0R:0.0 G:1.0 B:0.0 A:1.0MTH Up
    MTH Down
    Face_EYE_Close_RX:-3.0 Y:0.0 Z:2.0R:1.0 G:1.0 B:0.0 A:1.0EYE Close R
    Face_EYE_Close_LX:3.0 Y:0.0 Z:2.0R:1.0 G:1.0 B:0.0 A:1.0EYE Close L
    Face_EYE_CloseX:0.0 Y:0.0 Z:2.0R:1.0 G:1.0 B:0.0 A:1.0EYE Close
    Face_EYE_SorrowX:-2.5 Y:0.0 Z:4.0R:1.0 G:0.0 B:0.0 A:1.0EYE Sorrow
    Face_EYE_AngryX:0.0 Y:0.0 Z:4.0R:1.0 G:0.0 B:0.0 A:1.0EYE Angry
    Face_EYE_JoyX:2.5 Y:0.0 Z:4.0R:1.0 G:0.0 B:0.0 A:1.0EYE Joy
    Face_EYE_SurprisedX:5.0 Y:0.0 Z:4.0R:1.0 G:0.0 B:0.0 A:1.0EYE Surprised
    Face_BRW_FunX:-5.0 Y:0.0 Z:6.0R:0.0 G:0.0 B:1.0 A:1.0BRW Fun
    Face_BRW_SorrowX:-2.5 Y:0.0 Z:6.0R:0.0 G:0.0 B:1.0 A:1.0BRW Sorrow
    Face_BRW_AngryX:0.0 Y:0.0 Z:6.0R:0.0 G:0.0 B:1.0 A:1.0BRW Angry
    Face_BRW_JoyX:2.5 Y:0.0 Z:6.0R:0.0 G:0.0 B:1.0 A:1.0BRW Joy
    Face_BRW_SurprisedX:5.0 Y:0.0 Z:6.0R:0.0 G:0.0 B:1.0 A:1.0BRW Surprised
    また、すべての要素に以下の設定をする。

    1. [Transform]>[回転]>[Y]に[90.0]を入力する。
    2. [Translation Limit]を対応するモーフの数によって適時設定する。

全て設定すると、以下のような表情のコントローラーを作成することができます。

リグをプリセットに保存する

ここまでで今回のリグは完成として、プリセットに保存します。

プリセットに保存することで、いま開いていたレベル以外の別シーンでも、同じアニメーションブループリントにすぐ適用できるようになります。

[RigTools]ウィンドウの下の方に[Presets]というセクションがあるので、その中の[Save Preset Name]に保存名を入力し、[Save Rig Settings]をクリックします。

次回からは、Allright Rigのアニメーションブループリントをレベルに配置し、そのアクターを選択した状態で[Load Preset]から保存したプリセットを選択することで使用することができます。

また、このファイルはエクスプローラーの ProjectRoot > Saved > SaveGamesフォルダ以下に .savという拡張子で保存されています。別のUE4プロジェクトで同じリグを使用したい場合には、SaveGamesフォルダ以下にこのファイルをコピーして配置することで使用できるようになります。(AllrightRigのバージョンが異なる場合は使用出来ないこともあります)

一旦まとめ

これでキャラクターのリグを設定することができました!
Allright Rigではこのように、ボーンを指定していけば簡単にリグを組むことができます。

次回はこのリグの基本的な使用方法と、モーションキャプチャーデータの修正作業について紹介します!