こんにちは、電通総研金融ソリューション事業部の岡崎です。
今回はLive Link Face for Unreal EngineというiPhoneのアプリを使用して
iPhoneのカメラで撮影した顔のアニメーションをキャプチャし、UnrealEngineのMetaHumanに適応させる方法を
ご紹介します。
また、こちらの山下さんの記事では、Livelinkを用いてリアルタイムにMetaHumanを動かす方法が紹介されていますので、ぜひそちらもご覧ください。
本記事は前編後編に分かれており、この記事では手順4の「MetaHumanIdentityを使用してLiveLink動画を調整」までをご紹介します。
検証環境/ツール
- OS:Windows 11 pro
- GPU:NVIDIA GeForce RTX 4070 Ti
- Game Engine:Unreal Engine 5.2.1
- iPhone14pro:IOS16.4.1
実装手順
- LiveLinkを使用した撮影
- UnrealEngineの準備
- iPhoneで撮影した動画をインポート
- MetaHumanIdentityを使用してLiveLink動画を調整
- LiveLinkで撮影した動画からアニメーションを作成
- レベルシーケンスアニメーションをMetaHumanに付与
- MetaHumanの体のアニメーションをリターゲティングで作成
- MetaHumanの顔と体のアニメーションを連結
1. LiveLinkを使用した撮影
まずはiPhoneを利用して作成したい顔の動きの動画を撮影します。
今回は自分の顔で驚いた表情をしたり、何かを喋ったりする顔を作成していきます。
iPhoneのApp 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が同じネットワークに接続しているのを確認して、wifiのIPアドレスを記載します。
確認方法は、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」の記事はこちら)。 もし本領域にご興味のある方や、一緒にチャレンジしていきたい方は、ぜひお気軽にご連絡ください!
私たちと同じチームで働いてくれる仲間を、是非お待ちしております!
電通総研採用ページ
参考
- 歯科素材.com
- https://dev.epicgames.com/documentation/ja-jp/unreal-engine/recording-face-animation-on-ios-device-in-unreal-engine?application_version=5.2
- https://www.unrealengine.com/ja/blog/new-live-link-face-ios-app-now-available-for-real-time-facial-capture-with-unreal-engine
執筆:@okazaki.wataru、レビュー:Ishizawa Kento (@kent)
(Shodoで執筆されました)