BLOGブログ

2019.03.06UE4/Animation

[UE4] All Right Rigを使ってみての感想

執筆バージョン: Unreal Engine 4.21

こんにちは。今回はAll Right Rigを実際にプロジェクトで使った時の感想などを簡単に書いていこうと思います。
使用したプロジェクトはVRで、キャラクター1体をセリフに合わせていくつか動きを作成しました。

ちなみにAllRightRigの公式ページはこちらです。
http://alexallright.com/allrightrig/
どういったことができるのか、どのように使うのかはこちらのサイトのDocumentationのページを見てください。
http://alexallright.com/allrightrig/doc/
公式ページにはサンプルプロジェクトもありますので、ダウンロードしてみてください。

・AllRightRigの良いところ
なんといってもDCCを行ったり来たりする必要がなく、ゲームで使用するレベル上で作業できる点です。
シーケンサーで作業するので、ゲーム実行時にそのシーケンサーを呼び出せば、Rigがついている作業中のキャラクターをゲームを実行しながら確認することができます。
(Rigがついている分、再生は重くなりますが…)

このため、今回は実際ゲームで使用するレベルで作業し、VRで見え方を確認しつつアニメーションを修正することができたので、とても便利でした。

また、Rigとして良い点は、FKリグとIKリグのスナップがあること、逆関節の足などに使えるリグがあることなどです。
下図はサンプルプロジェクトにあるケンタウルスです。前足は通常のIKリグ、後ろ足は逆関節用のIKリグで組まれています。

Rigの作成作業自体も、いくつかのリグの種類を選んで、そこに骨を登録していけばリグが作成されるので簡単でした。
Rigの種類としてはMain(Rootなどに使用)、Custom(腰や頭など単体で動かしたいものや基点となるもの)、SplineIK、FK、FKIK+FaceRigがあり、使用したいカテゴリを選んで骨を登録してRigを作成します。下の画像では背骨分のSpline IKの設定です。

・使いづらいところ
UE4はアニメーション用ソフトではない、というところに尽きるかと思います。
DCCで普通に使っていたものができない、ということが多々あります。
AllRightRigでは、アニメーション作成時にはシーケンサーとセットで使用することになるので、どうしてもシーケンサーの機能に縛られてしまいます。

たとえばRigをシーケンサーに登録するとずらっとトラックが並びますが、キーの移動などの時に選択しづらい点や、アニメーションレイヤーがない、一括でローカル軸での回転ができないなど、DCCでは当たり前のようにできていたことが一部できません。
(これをDCCのようにローカル軸での一括回転を可能にするプラグインがあります。AllRightRigの作者様が制作されています。
プラグイン名:Tramsform Tool http://alexallright.com/transform-tool/

動かしたいリグはシーケンサーのトラックに入れないと行けないため、このようにズラッとトラックが並ぶことになります。(フォルダなどを使えばある程度は整理できますが…)

UE4で親子関係になっているオブジェクトを選択してローカル軸で回転しても、最後に選択したオブジェクトを基点に、
親の方は回転せずそのままついてくる、変わった回転になってしまいます。(左の画像)
前述したPlugin、Tramsform Toolを使用すると下図のようなDCCで一般的にできる、ローカル軸での回転ができます。(右の画像)
 

・おすすめの使い方
以上を踏まえて、AllRightRigは、
DCCツールを使用していない方や、DCCツールなどを使わずにUE4でそのままアニメーションを付けたいとき、
レベル上で仮アニメーションを作成してDCC上でアニメーションを詰めていく、
VRなど、頻繁にUE4上で実行して確認しなければいけないとき、
などに使用すると効果的かと思います。

・使っているときのポイント
最後に使っていて躓いた点や、気が付いた部分を紹介して終わろうと思います。

・Trajectryを表示していると重たい
UE4ではデフォルトですとTrajectry(アニメーションの軌跡。ほかソフトだとモーションパスなどと表記されています。)が表示されていますが、
これが表示されていると場合によってはとても処理が重たくなってしまうときがあります。
AllRightRigを使用していて、重たいな…と感じた時はTrajectryの範囲を狭めてください。
Trajectryの設定は、EditerPreferences>LevelSequenceEditor>Generalにあります。
デフォルトの値は250(250F分のパスのポイントを表示する)になっていますので、こちらのTrajectoryPathCapの値を1にしてください。
(0にするとCapしない状態になるようなので、なるのでなおさら重たくなります)
 

・Rigがなんか変になった
アニメーション作業中にRigのデフォルト位置がずれてしまうことが度々ありました。
このような時はいったんRigを削除し、Rigをまた再生成、マップを開きなおしてシーケンサーでFix Referenceして修正していました。
Rigはテンプレートとして登録しておけば、同じRigを再生成することが簡単に行えます。

・アニメーションアセットへの書き出し
AllRightRigにはシーケンサーとRigでアニメーションしているものを、
アニメーションシーケンスのアセットとして書き出すことができるのですが、
時々書き出したアニメーションの最初の方のフレームに意図していないポーズが入ることがあります。
その場合はアニメーションシーケンスを開いて正しい開始位置にシークバーを持ってきてそれ以前のフレームを切り取りましょう。
 

以上になります。参考になれば幸いです。