電通総研 テックブログ

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

LiveLinkを使ってMetaHumanの顔をモーションキャプチャで動かす 前編

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

今回はLive Link Face for Unreal EngineというiPhoneのアプリを使用して
iPhoneのカメラで撮影した顔のアニメーションをキャプチャし、UnrealEngineのMetaHumanに適応させる方法を
ご紹介します。

また、こちらの山下さんの記事では、Livelinkを用いてリアルタイムにMetaHumanを動かす方法が紹介されていますので、ぜひそちらもご覧ください。

本記事は前編後編に分かれており、この記事では手順4の「MetaHumanIdentityを使用してLiveLink動画を調整」までをご紹介します。

検証環境/ツール

実装手順

  1. LiveLinkを使用した撮影
  2. UnrealEngineの準備
  3. iPhoneで撮影した動画をインポート
  4. MetaHumanIdentityを使用してLiveLink動画を調整
  5. LiveLinkで撮影した動画からアニメーションを作成
  6. レベルシーケンスアニメーションをMetaHumanに付与
  7. MetaHumanの体のアニメーションをリターゲティングで作成
  8. MetaHumanの顔と体のアニメーションを連結

1. LiveLinkを使用した撮影

まずはiPhoneを利用して作成したい顔の動きの動画を撮影します。
今回は自分の顔で驚いた表情をしたり、何かを喋ったりする顔を作成していきます。

iPhoneApp Storeから「Live Link Face」というアプリをダウンロードします。

その後MetaHuman Animatorを選択します。

動画を撮る画面になるので、まずはカリブレーションテイクを撮影していきます。
カリブレーションとは、LiveLinkで撮影した顔をMetaHumanの顔と一致させるために必要な調整のことです。

撮影前に動画の名前を「calibration」に変更します。

撮影ボタンを押した後に、まっすぐ前を向き、左右を向き、最後に歯を大きく見せる動きを撮影します。
(キャプチャはモザイクを追加しています)


モザイクでわかりづらいですが、歯がよく見えるシーンも撮影します。
(キャプチャに関しては、画像素材を合成しています。出典元:歯科素材.comから「きれいな歯」を利用)

一連の動作が全てが終わったら撮影停止ボタンを押します。

次に、モーションキャプチャ用の動画を撮っていきます。
動画の名前を「main」に変更して撮影をします。

動画は割愛しますが、
このショットでは驚いた表情をしたり、なにかを喋ったりする動画を撮影してください。

ここからはUnrealEngineでの作業に移ります。

2. UnrealEngineの準備

まずは、メタヒューマンを使用するために、EpicGamesLauncherから「MetaHuman」「MetaHuman Plugin」の2つを
使用するエンジン(今回の場合はUnreal Engine 5.2.1)にインストールします。

インストールが完了したら、プロジェクトを作成し、任意のレベルを配置します。
「Quixel Bridge」からプロジェクトへMetaHumanをダウンロードします。

今回はこのMetaHumanを使用していきます。

ダウンロードが完了するとコンテンツブラウザ内の「コンテンツ>MetaMumans>BP_Hudson」にファイルが追加されます。

3. iPhoneで撮影した動画をインポート

コンテンツブラウザ内で右クリックを行い、「MetaHumanAnimator>CaptureSouce」を選択します。
今回私は「MetaHumanActor_Source」と命名します。

次に「MetaHumanActor_Source」を開き、「CaptureSourceType」のセレクトボックスから「LiveLinkFaceConnection」を選びます。

「DeviceAddress」の欄には、使用しているPCとiPhoneが同じネットワークに接続しているのを確認して、wifiIPアドレスを記載します。
確認方法は、iPhoneで「LiveLink」アプリを開き、歯車の設定ボタンからOSCサーバーを押しIPアドレスを確認して、「DeviceAddress」の欄に記載します。

次に「MetaHumanActor_Source」を閉じ、画面上部のツールから「CaptureManager」を選択して、左側の「MetaHumanActorSource」を選択すると、
iPhoneで撮影した動画を表示できます。

画面下の「AddToQueue」を押してインポートします。

次の工程で、キャプチャした動画をMetaHumanに適応させるために調整をしていきます。

4. LiveLinkの動画の調整

コンテンツブラウザから、「MetaHumanAnimator>MetaHumanIdentity」を選択して作成します。
「MetaHumanActor_Identity」と命名します。

「MetaHumanActor_Identity」を開き左上から「CreateComponents>FromFootage」を押下し、先ほどインポートしてきた動画のうち、「calibration」の動画を選択します。

下記キャプチャのようにiPhoneで撮影した動画が出てくるので、カメラに対して正面を向いている箇所で動画を停止させます。

左下のプラスマークを押すと、顔の眉毛、目、ほうれい線、唇の辺りに緑色の線が表示されます。

(ぼかしが入っているためわかりづらいですが、緑色の線が出現しています)

調整する必要がないことがほとんどですが、もし顔の眉毛、目、ほうれい線、唇の辺りに緑色の線が、実際の顔とずれている場合は、緑色の線をドラッグで移動させて調整します。

左下のカメラのアイコンを押して、動画を再び動かし、今度は左を向いている部分で停止させます。

先ほどと同じ様にプラスマークを押して、緑色の線を調整します。

右向きも同様の作業を行います。

正面、左、右が終わったら画面上部の「MetaHumanIdentityの解決」を押します。

次に左側のツリーから「Body」の選択欄から任意のメッシュを選択します。

体を選び終わったら、画面上部の「MeshToMetaHuman」から「Auto-rigIdentity(SkeletalMesh + FullMetaHuman)」を選択します。

ここまでで、顔の動きが、ボーンのアニメーション情報に変更できたので、最後に歯も追加します。

左側のツリーから「Poses」を選択して「Add」ボタンを押下します。
「AddPose>AddTeeth」を押します。

動画を再び動かし、歯を見せている部分まで移動して左下のプラスマークを押し緑色の線が歯を覆っているか確認します。

正常に緑の線が作成されていたら、画面上部の「FitTeeth」を押し、処理を進めます。

最後の画面右上の「PrepareForPerformance」をおして、処理が完了するのを待ちます。

ここまででMetaHumanIdentityを使用した調整作業が完了しました。

コンテンツブラウザに戻り「SK_MetaHumanActor_Identity」というファイルが生成されていることを確認出来たら
MetaHumanIdentityを使用した調整作業が無事完了です。

おわりに

今回はiPhoneを使用して撮影した動画をUE内にインポートを行い、MetaHumanに適応させるためにカリブレーション(調整)を行う手順まで紹介しました。
後編では、いよいよMetaHumanをモーションキャプチャで動かして、
自分の動画の動きを再現させる方法をご紹介します。
ぜひそちらもご覧いただけますとうれしいです。

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

参考

執筆:@okazaki.wataru、レビュー:Ishizawa Kento (@kent)
Shodoで執筆されました