Audio2Faceで書き出したフェイシャルアニメーションをMetaHumanに適用する
フォトリアルな3DCGキャラクターを動かしてみたいのに、一からやるには難易度が高すぎて何から手をつけたら良いやら…というCG初心者の方、たくさんいらっしゃるのではないでしょうか?
そんな方向けに、Audio2Face・Unreal Engine・MetaHumanを活用して、簡単にアニメーションを適用してデジタルヒューマンを動かす方法をご紹介します。
画面キャプチャとともに手順も細かく記載しているので、ご興味のある方は記事を読みながら、ぜひ一緒に画面操作をしてみていただけると嬉しいです😊
※ 動作環境によって各種名称や設定項目が変更になっている可能性もあるので、ご注意ください
※ Audio2Faceを活用したフェイシャルアニメーションの作成方法は、こちらの記事をチェック 👀
動作環境
-
Windows11
-
Omniverse Audio2Face 2023.2.0
-
Unreal Engine 5.1.1
Audio2Faceからアニメーションを書き出す
ブレンドシェイプ用のモデルを読み込む
【手順】
-
Audio2Faceにて、Contentパネルの以下のフォルダパスにあるusdファイルをドラッグアンドドロップでStageパネルにコピーする
omniverse://localhost/NVIDIA/Assets/Audio2Face/Samples/blendshape_solve/male_bs_46.usd
ブレンドシェイプアニメーションに変換する
【手順】
-
「A2F Data Conversion」タブの「BLENDSHAPE CONVERSION」欄で、「Input Anim Mesh」と「Blendshape Mesh」を指定する
-
「Input Anim Mesh」→
/World/mark/char_mark_model_hi/c_headWatertight_hi
-
「Blendshape Mesh」→
/World/male_bs_46/neutral
-
-
「SET UP BLENDSHAPE SOLVE」をクリックする
- 「BlendShape Solver(s)」にパスが追加されたらOK!
※「Audio2Face Tool」タブの「AUDIO PLAYER」欄で音声を再生すると、左側のグレーのモデルに連動して右側の青いモデルも動くようになります
アニメーションを書き出す
【手順】
-
「A2F Data Conversion」タブの「COMMON SETTINGS」欄で書き出し先のディレクトリとファイル名を指定する
※ デフォルトでは、
Documents/Kit/shared/capture
に保存されます -
「Playback FPS」でフレームレートを指定する
- 映像を作る際のノーマルなフレームレートは、24.0 FPS か 30.0 FPS
※ Unreal Engineと連携する際は、双方で設定を合わせる必要があります
-
「BLENDSHAPE & JOINT CONVERSION」欄の「BlendShape Solver(s)」に表示されているパスをクリックする
※ 選択できている場合は、下図のように青い表示に変わります
-
「Format」で「USD」を選択して、「EXPORT WEIGHTS」をクリックする
-
その後、表示されるポップアップにて「EXPORT」をクリックし、アニメーションを書き出す
MetaHumanにアニメーションを適用する
Unreal EngineにMetaHumanを読み込む
【手順】
- Unreal Engineのプロジェクトブラウザで、「ゲーム」>「Blank」を選択し、任意の名前をつけて新規プロジェクトを作成する
- コンテンツブラウザパネルで「追加」ボタンをクリックし、「Quixel コンテンツを追加」を選択する
-
「Quixel Bridge」のポップアップが開くので、左メニューで「MetaHumans」>「MetaHuman Presets」を選択する
-
プリセットのMetaHumanが表示されるので使用するモデルを選択し、「Download」>「Add」をクリックする
-
必要なツールセットが不足している場合は警告が出るので、その場合は「不足しているものを有効にする」をクリックする
※ 新規設定を適用するには、再起動が必要になります
アニメーションをインポートする
【手順】
-
コンテンツブラウザの「コンテンツ」>「MetaHumans」>「Taro」>「BP_Taro」をビューポートにドラッグアンドドロップして配置する
※ 今回はプリセットのキャラクター「Taro」を使用します
-
コンテンツブラウザ内のスペースで右クリックし、「Import USD Animation」を選択する
-
「Input USD File」で、Audio2Faceでエクスポートしたファイルを指定する
-
「Animation」内の「Skelton」で「Face_Archetype_Skelton」を選択、「Animation Source」で「Audio2Dace MetaHuman Curves」を選択し、「OK」をクリックする
※ その他は、デフォルトのままで大丈夫です
※ アニメーションがインポートされると、「コンテンツ」>「MetaHumans」>「Taro」フォルダに「アニメーションシーケンス」が追加されます
音声をインポートする
【手順】
- コンテンツブラウザの「インポート」をクリックし、リップシンクのアニメーション作成の際に利用した音声ファイルをインポートする
レベルシーケンスを作成する
【手順】
- ビューポートパネルのカチンコのアイコンから「レベルシーケンスを追加」をクリックする
-
アセットを保存するポップアップが出てくるので、任意で名前をつけて保存する
※ アセットを保存すると、画面下部にシーケンサーが表示されます
シーケンサーに音声とMetaHumanを登録する
【手順】
- アウトライナーパネルから「BP_Taro」を選択し、追加したレベルシーケンスのシーケンサーパネルへドラッグアンドドロップする
-
シーケンサーの左側で右クリックし、「オーディオトラック」を選択する
-
事前にインポートしたオーディオを選択する
※ オーディオが追加されると、以下のような表示に変わります
シーケンサーにアニメーションを追加する
【手順】
- 「BP_Taro」の「Face」内「Face_ControlBoard_CtrlRig」をミュートにする
-
「Face」の「+ トラック」を押下し、「アニメーション」でインポートしたいアニメーションシーケンスを選択する
※ アニメーションの候補には、事前にコンテンツブラウザ内でインポートしたアニメーションシーケンスのみが表示されます
動作デモ
シーケンサーを再生すると、音声に合わせてフェイシャルアニメーションが動くことを確認できます。動画編集ツールのように、アニメーションを組み合わせていくことで一連の動きを作ることも可能です。
デモ動画ではセリフが説明口調だったり、感情表現や頭の揺れ、体のアニメーションがなかったりするので少しぎこちなく感じてしまう方もいらっしゃるかもしれませんが、Audio2Faceの設定次第で表情豊かに話す様子をMetaHumanで表現できます。
まとめ
今回は、Audio2Faceで書き出したフェイシャルアニメーションをMetaHumanに適用する方法をご紹介しました。人間と見間違えるほどのリアルさを追求したいという方は、視線や表情などデジタルヒューマン特有のちょっとした違和感を感じられるかもしれません。そういう場合は細かくチューニングを行ったり、モーションキャプチャーを取り入れたりすることで、より自然な動きを作るために手を加えていく必要があるかと思います。
しかし、少し3DCGに挑戦してみたいという方であれば、ベーシックな設定のままで十分素敵なアニメーションを作ることができます👏
生成AIが急速に進化してきている今、全体のモーションもプロンプトを入力するだけで自動生成できるようになり始めています。何年後かには言葉で指示するだけで、自動でアニメーションを生成できるようになるかも!?技術の進化が楽しみですね!