Allright Rigを使ってUE4上でアニメーションを調整する 〜実践編〜

Labyrinth

はじめに

本記事の内容

この記事は、Unreal Engine 4で使用可能な有償プラグイン「Allright Rig」の解説記事です。

これまでにセットアップ、リグ操作について紹介してきました。

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

2019年12月22日

Allright Rigを使ってUE4上でアニメーションを調整する 〜リグ操作編〜

2019年12月24日

今回はいよいよ実際にアニメーションを作成する流れを紹介します!

わんちゃん
複数回に分けてきた投稿も今回でようやく終わりです!

大まかな流れ

Allright Rigでアニメーションを作成する大まかな流れは以下の通りです。

  1. レベルシーケンスとリグセットアップ済みアクターを配置する
  2. シーケンサーの機能を使ってアニメーションを作成する
  3. アニメーションをベイクしてアニメーションアセットに書き出す

注意事項

  • 本記事の内容は私たちそらまめゲームスでの制作事例の紹介ですので、AllrightRigの全ての機能を網羅しているわけではありません。もっと良いノウハウがあるよという方は是非ご教示ください!
  • この記事の筆者はプログラマですのでアニメーションに関しては素人です!アニメーターの方からすると見当違いな事を言っているかもしれませんので、その時はご指摘頂けるとありがたいです…。

下準備

Allright Rigセットアップ済みキャラクターを用意する

以前の記事で作成したAllright Rigのアニメーションブループリントをレベルに配置します。

前回のおさらいです。以下の手順でAllright Rigのオン/オフを切り替えることができます。

リグを作成する

  1. アニメーションブループリントを選択した状態で、[RigTools]ウィンドウを開く。
  2. [Anim Class]にAllright Rigのアニメーションブループリントを選択する。
  3. [Prefix]は接頭詞をつけることができる。(ここでは「Shibu_」とする)
  4. [Presets]>[Load Preset]にて作成済みのリグを選択する。
  5. 一番上の[Rig]が選択可能になるのでクリックしてリグを生成する。

セットアップ済みのリグを適用する

リグを削除する

  1. 生成したリグのルートである、Mainを選択する。(アウトライナ上だと選択しやすい)
  2. [RigTools]ウィンドウの[Delete Rig]を選択する。

上記の操作によって、リグのオン/オフを簡単に切り替えることができます。

レベルシーケンスを用意する

Allright RigはUE4のシーケンサーを使用してアニメーションを作成します。シーケンサーはカットシーンを作成するために用意された機能で、Adobe Premiereのようなビデオ編集ソフトに近いイメージです。

レベルシーケンスとはシーケンサーの編集内容を保存しているアセットで、Allright Rigでアニメーションを作成する際にはレベルシーケンスを用意する必要があります。

ここでは例として一から用意していきます。

まず、[右クリック]>[アニメーション]>[レベルシーケンス]を選択してレベルシーケンスアセットを作成します。

作成したレベルシーケンスアセットをダブルクリックするとシーケンサーウィンドウが開きます。
レベルシーケンスアセットをレベルに配置して、プロパティの[Auto Play]にチェックを入れておきます。

シーケンスエディタにリグセットアップ済みキャラクターを追加する

以下の手順で、アニメーションを編集するための準備をします。

  1. レベルシーケンサーを開いて、Allright Rigのアニメーションブループリントをシーケンサーに追加する。
  2. アニメーションブループリントを選択した状態で、[RigTools]>[Rig]を選択してリグを生成する。
  3. 生成された「xxxRig」というアクターをシーケンサーに追加する。

    アクターが2つ追加された状態

  4. 生成されたリグのコントローラーを一括でシーケンサーに追加する。
  5.  コントローラーが多すぎるのでフォルダ機能を使って中に入れておく。

    ARというフォルダを用意してコントローラーを入れた状態

これでアニメーションを作成する準備は整いました!

アニメーション作成中にリグを[Delete Rig]で削除した場合、シーケンサーからも削除されますので、作成途中のアニメーションは消去されてしまいます。中断したい場合はリグごとレベルに残しておくか、一旦アニメーションアセットに書き出して、改めて編集する際にはそのアニメーションアセットをリグにベイクして編集再開することができます。

基本的な操作

アニメーションを作成する上での基本的な操作を紹介します。

キーを打ってみる

各種リグを操作するとキャラクターが連動して動きます。シーケンサー上でリグのコントローラーに対してTransformのキーを打つことで、いわゆる手付けアニメーションを作成することができます。

アニメーションアセットを読み込んでみる

アニメーションアセットを読み込んでAllright Rigのリグにベイクします。これが本記事の主題でもあります。

  1. リグ生成済みの場合は、一旦[Delete Rig]で消す。
  2. シーケンサーに追加されているアニメーションブループリントに対してアニメーションアセットを設定する。

    アニメーションをセットしたのにキャラクターに反映されない場合は、アニメーションブループリントのアニムグラフの対応が漏れている可能性があります。コチラをご確認ください。
  3. アニメーションブループリントを選択した状態で[RigTools]>[Bake]>[Bake from Sequence]を選択して、アニメーションをベイクした状態のリグを生成する。
  4. 「xxxRig」アクターと、各コントローラーが生成されるので、先ほど同様にシーケンサーに追加する。

これでアニメーションを読み込んでリグに適用することができました!

アニメーションをベイクした際に目がおかしくなる

アニメーションを読み込むと、目の位置がおかしくなってしまうので、これを修正します。

EyesController関連の値がおかしい

  1. アウトライナ上で、[xxx_EyesControllerGrp]アクターを[xxx_HeadFk]アクターの子にする。
    視線が顔の動きに追従するようにする。
  2. 下記アクターのTransformを初期値(すべて0)にする。
    1. [xxx_EyesControllerGrp]
    2. [xxx_EyesController]
    3. [xxx_LeftEye]
    4. [xxx_RightEye]
  3. 下記アクターのアニメーションキーを全て削除する。
    1. [xxx_EyesController]
    2. [xxx_LeftEye]
    3. [xxx_RightEye]
  4. [xxx_EyesController]をローカル空間で顔の前側に移動させる。

アニメーションアセットに出力する

アニメーションの作成/編集が完了したら、アニメーションアセットとして保存することができます。

いずれかのコントローラーを選択した状態で、[RigTools]>[Bake]>[Bake to Anim Asset]をクリックして、アニメーションアセットに出力します。

保存先を指定して保存すると、アニメーションアセットとして出力されました!

[Zero Root]にチェックを入れて出力すると、立ち位置が原点から移動しないルートモーション無しのアニメーションとして出力されます。

不要なフレームをカットする

Allright Rigの機能ではなくUE4標準機能を使ってアニメーションアセットの不要なフレームを削除することができます。

  1. コンテンツブラウザからアニメーションアセットを開く。
  2. 画面下部の再生ツールバーの上で右クリックする。
  3. 右クリックした場所のフレーム数を起点に、削除や挿入のメニューが表示される。

狙ったフレームのところで右クリックをしないといけないので、もう少し使い勝手が良くなると嬉しいですね…。

応用編

Allright RigはアップデートによってDCCツール並の機能が追加されてきました。

機能が多いためここでは簡単な紹介だけにさせて頂き、詳細は公式ドキュメントを日本語翻訳して読んでいただければと思います。

Constraints

Constraintsの機能を使用すると、コントローラーの位置、向き、スケールを別のアクターに制御させることができます。Allright Rig同士で手を繋いだり、エイムさせたりといった親子関係をつけるのに役立ちます。

Allright Rig公式サイトより引用

ただし、小物を手に持たせる程度であれば、シーケンサー標準機能の親子付けを使用することで対応可能です。

キャラクターの手に剣を持たせた状態

Anim Offset

Anim OffsetはDCCツールでのアニメーションレイヤーの位置付けです。既存のアニメーションを維持しつつ、別レイヤーとしてアニメーションを作成してブレンドすることができます。この機能が追加されたことで、既存のアニメーションアセットを簡単に改造できるようになりました!

Allright Rig公式サイトより引用

Anim Offsetを作成する

  1. [SequencerTools]ウィンドウが表示されていない場合は、[ウィンドウ]>[Allright Rig]>[SequencerTools]を選択してウィンドウを表示する。
  2. Anim Offsetを作成したいコントローラーを選択状態にする。
  3. [SequencerTools]>[Anim Offset]>[Create Anim Offset]を選択する。
  4. 元のコントローラーは非表示となり、[xxx_Source]と[xxx_AO]という2つのコントローラーが生成される。
  5. [xxx_Source]は元のコントローラーの代わりとして値を引き継いでおり、自動的にシーケンサーに登録されている。
  6. [xxx_AO]は別レイヤーのアニメーション用コントローラーで、緑色で表示されている。
    生成した段階ではシーケンサーに追加されていないので、追加しておく。
  7. [xxx_AO]を操作することで、元のアニメーションを[xxx_Source]側に維持しつつ、別レイヤーとしてアニメーションを作成することができる。

Anim Offsetをベイクする

  1. [xxx_AO]を選択した状態で、[SequencetTools]>[Anim Offset]>[Bake Anim Offset]を選択する。
  2. [xxx_AO]と[xxx_Source]のアニメーションがブレンドされて、元のコントローラーにベイクされる。
レベルシーケンスのショット機能を使ってサブシーケンス内でAllright Rigを使用している場合、Anim Offsetの機能を使用することができません。そういう場合はサブシーケンスをコンテンツブラウザで直接開いた状態でAnim Offsetを作成してください

Curves

Curvesはアニメーションのカーブに対する4つの機能が用意されています。使用頻度の高い機能です。

  1. [Simplify Curve] … カーブをリダクションする。
  2. [Peak Removal] … ピーク(値が飛んでいる箇所)を除去する。

    Allright Rig公式サイトより引用

  3. [Mirror Curve] ,,, カーブを指定した軸を起点に反転する。

    Allright Rig公式サイトより引用

  4. [Buttorworth] … カーブを滑らかにする。

    Allright Rig公式サイトより引用

Copy&Paste

複数のコントローラーのアニメーションをコピーする機能です。(私はあまり活用してないです…)

Allright Rig公式サイトより引用

Remove Static Curves

値の変化がないキーを削除することができます。始めにアニメーションをベイクしてリグを作成した際には全フレームにキーが打たれますので、この機能が活躍します。

まとめ

駆け足でしたが一通りの機能を紹介しました!

Allright RigはUE4上で手付けアニメーションが作れるだけでなく、モーキャプのデータを読み込んで調整したり、既存のアニメーションアセットを自分好みの改造したりと、活用の幅が広がってきています!

安価なアドオンでは無いですが、購入しておくと先々まで活躍してくれる良アセットですよ!

私たちそらまめゲームスでは、Perception Neuronでモーションキャプチャーをした後、Blenderで調整をしてUE4に持っていき、今回紹介したAllright Rigを使用してアニメーションを最終調整しています。

わんちゃん
この記事が少しでもみなさんのお役に立てれば幸いです!