電通総研 テックブログ

電通総研が運営する技術ブログ

UE5 MetaHumanのControlRigを使ってアニメーションを作成する方法

こんにちは、電通総研金融ソリューション事業部の岡崎です。

今回はUE5のMetaHumanとControlRigを使って簡単なアニメーションを作成する方法を紹介します。
アニメーションを本格的にゼロから作るためには、本来はUE以外のツールを使用して作成することが一般的ですが、
簡単な動きの場合はUEだけで作ることができます。
本記事ではMetaHumanがお辞儀をしたり、既存のアニメーションにアレンジを加えて、しゃがみながら歩行する方法などを紹介します。

検証環境/ツール

実装手順

  1. MetaHuman、レベルシーケンスの準備
  2. ControlRigを使用したアニメーションを作成
  3. ControlRigからアニメーションシーケンスを作成
  4. 既存アニメーションをControlRigを使用して変更

1. MetaHuman、レベルシーケンスの準備

今回はMetaHumanに搭載されているControlRigを使用するので、まずはMetaHumanを用意します。

MetaHumanの用意の仕方は、前回のこちらの記事(UE5とLiveLinkを使ってMetaHumanの顔の動きを自由に生成する 前編)にて説明しているので、あわせてご覧ください。

今回のプロジェクト用に用意したレベルマップにMetaHumanを配置させます。

配置後、画面上部からレベルシーケンスを作成します。
今回はこのレベルシーケンス上でアニメーションを作成して、アニメーションシーケンスとしていつでも使えるように変更します。

シーケンサーエディターを開き左のリストにレベルに配置したMetaHumanを追加します。
今回は「BP_meta_male」をレベルに追加しているので、これを選択します。

シーケンサーエディターのリストに「BP_meta_male」があることを確認します。

2. ControlRigを使用したアニメーションを作成

ここでは「BP_meta_male」に任意の動きを作成します。
今回はMetaHumanにお辞儀をさせてみます。

シーケンサーエディターのリストの「BP_meta_male」を開くと「Body」と「Face」があるので、「Body」を選択して、「MetaHuman_ControlRig」を開きます。
(MetaHumanではなく、サードパーソンテンプレートのデフォルトキャラクターを使用する場合は、「ControlRig」という項目があるので、そちらを選択することで同様の作業ができます)

レベルシーケンスの詳細な操作方法はこちらの記事(UE5 レベルシーケンスやShot機能を使った動画制作手順)で説明しています。

MetaHumanの体の周りに赤やオレンジ、青などの枠が付いているのが確認できます。
この枠(輪っか)を回転させることで、腕や足、腰などの関節を動かしていくことができます。

まずはシーケンサーエディターのタイムカーソルを0秒のところへ移動させます。

ここでデフォルトの体勢を作ります。

お辞儀をする前に状態の体勢なので、腕を真っ直ぐ下に伸ばします。
腕や肩の関節にある輪っかを選択して、回転などをして任意の体勢を作ります。


自分の好みの体勢ができたらキーフレームを打ちます。
「MetaHuman_ControlRig」を選択して「S」を押します。

もしくはリストに表示されているキーフレーム追加ボタンからでもキーフレームを打つことができます。

お辞儀が終わった時の体勢でも、この体勢を使用するので、コピーしてタイムカーソルを3秒の位置に変更して貼り付けます。

コピーは右クリックのコピーで行えます。

コピーができたことを確認します。

ではお辞儀で頭を下げている体勢を作ります。

タイムカーソルで1秒の位置に変更します。

MetaHumanの腰の位置にある枠を選択して、前方に回転させます。

必要に合わせて顔の向きや手の位置なども変更します。

頭の下げた体勢を作成できたらキーフレームを追加します。

シーケンサーを再生させるとお辞儀している様子が作成できました。

ここまでの状態では、レベルシーケンス上では任意のアニメーションを作ることはできましたが、アニメーションを他のアクターで使いまわしたり、アニメーションブループリントに追加することはできません。

次に工程でアニメーションシーケンスというファイル形式で保存する方法を紹介します。

3. ControlRigからアニメーションシーケンスを作成

アニメーションシーケンスというのは、特定のスケルタルに対して、動きのみを保存してあるファイルになります。
このファイルを使うことで、同じスケルタル(ボーン構造)を使用したスケルタルメッシュでアニメーションを使いまわすことができます。

レベルシーケンスで作成したアニメーションからアニメーションシーケンスを作成する方法は、
シーケンサーエディター上で「BP_meta_male」の「Body」を選択して
右クリックから「リンクされたアニメーションシーケンスを作成」を選択することで作成できます。

保存するフォルダとアニメーションシーケンスの名前を設定します。

しかしこちらの記事(UE5とLiveLinkを使ってMetaHumanの顔の動きを自由に生成する 後編)で紹介した通り、UE5.2でレベルシーケンスからアニメーションシーケンスを作成しようとするとフリーズしてしまいます。

プロジェクト設定からRHIの設定を変更することでフリーズを回避できるので、アニメーションシーケンスを作成する時だけ設定を変更します。

プロジェクト設定画面を開き検索窓に「RHI」と記入します。

ターゲットのRHIという欄があるので「DirectX12」から「Vulkan(SM5)」に変更します。
再起動をすることで設定が反映されます。

プロジェクト設定を変更することで、フリーズせずにアニメーションシーケンスを生成できます。

作成したアニメーションシーケンスを使用することで、他のMetaHumanにもお辞儀のアニメーションを使用できます。

使用する方法は、レベルシーケンスにMetaHumanを追加します。

(BP_woman2というアクターを配置しています)

次に「Body」の「MetaHuman_ControlRig」を削除します。


アニメーション追加ボタンから、作成したアニメーションシーケンスを追加することでアニメーションの再生をできます。

(アニメーションを再生させる場合はControlRigを削除しないといけないので、動きは基本全てアニメーションシーケンスに変更してからMetaHumanに再生させるのをおすすめします)

4. 既存アニメーションをControlRigを使用して変更

今までの工程ではゼロからアニメーションを作成しましたが、既存のアニメーションや外部サイトからダウンロードしたアニメーションと同様のクオリティのアニメーションを作るのはとても大変です。
なのでこの工程では、既存のアニメーションをControlRigを使用して、自分のプロジェクトに合った形に少し変更する方法を紹介します。

まずは使いたい既存のアニメーションを決めます。
こちらの記事(UE5でMixamoのアニメーションをMetaHumanに適応させる方法)で外部サイトからアニメーションをダウンロードしてMetaHuman用にリターゲティングする方法も紹介しています。

今回はサードパーソンテンプレート内の歩行のアニメーションを使用します。

任意のMetaHumanをレベルシーケンスにセットして歩行のアニメーションシーケンスを追加します。

(BP_Cooperというアクターを配置しています)

前述した通り、ControlRigを削除しないとアニメーションシーケンスを使用できないので、ControlRigを一旦削除します。

アニメーションシーケンスは「MM_Walk_Fwd」を使用します。


次に、このアニメーションシーケンスをControlRigに焼き付けていきます。

「Body」を選択して、右クリックから「コントロールリグにベイク」を選択します。

ControlRigを選択する画面が表示されるので、「MetaHuman_ControlRig」を選択します。

するとシーケンスエディターのタイムライン上で、アニメーションが毎フレームごとに全ての体の部分にキーフレームが打たれた形に変更されます。

ここからキーフレームを変更して任意のアニメーションに変更します。

今回はしゃがみながら歩行をするアニメーションに変更しようと思います。

キーフレームの全ての点を変更するのはとても大変なので、キーフレームを上書きする機能を使います。

「Body」の下にある「MetaHuman_ControlRig」を右クリックして「セクションを追加>加算」を選択します。

これにより、現在のアニメーションをベースに希望する動きを上書きできるようになります。
「MetaHuman_ControlRig」の下にもう一つ加算用の「MetaHuman_ControlRig」が追加されたことを確認します。

加算用に追加された「MetaHuman_ControlRig」を選択して、MetaHumanの腰にある枠を選択して、下に移動させます。
また、少し前屈みにもさせてみます。


加算のControlRigを動かすことで、アニメーションをベイクしたControlRigを毎フレームごとに動かさなくても、アニメーション全体が変更されるようになります。

このまま新しくできたほうの「MetaHuman_ControlRig」にキーフレームを打ちます。

レベルシーケンスを再生させると、しゃがんだまま歩行しているアニメーションができていることが確認できます。

最後にこのアニメーションを前の工程と同じようにアニメーションシーケンスに変更していきます。

以上で既存のアニメーションを自分の必要なアニメーションに変更して、アニメーションシーケンスに変更させる方法の紹介を終わります。

おわりに

今回はMetaHumanのControlRigを使ってアニメーションを作成する方法を紹介しました。
動画制作などを行っていると、キャラクターにもう少し右を向いて欲しい!などの細かく動きを制御したい場面が出てきます。
こういった時に、今回学習した方法は、簡単にアニメーションシーケンスを作れるのでとても有効な手段だと感じました。
今後はゼロからアニメーションを作成する方法なども含めて、動画作成などに必要な技術の学習をさらに頑張っていこうと思います。

最後までご覧くださいまして、ありがとうございました!

現在、電通総研はweb3領域のグループ横断組織を立ち上げ、Web3およびメタバース領域のR&Dを行っております(カテゴリー「3DCG」の記事はこちら)。 もし本領域にご興味のある方や、一緒にチャレンジしていきたい方は、ぜひお気軽にご連絡ください!
私たちと同じチームで働いてくれる仲間を、是非お待ちしております!
電通総研採用ページ
電通総研・最新テクノロジー事業企画・推進担当採用ページ

参考

執筆:@okazaki.wataru、レビュー:@akutsu.masahiro
Shodoで執筆されました