深度データからアニメーションを生成するワークフローは、次のステップで構成されています。
コンテンツ ブラウザで右クリックし、[MetaHuman] > [MetaHuman Performance] の順に選択して、新しい MetaHuman Performance アセットを作成します。
MetaHuman Performance アセット エディタを開き、[Details (詳細)] パネルに移動します。
[Input Type (入力タイプ)] として [Depth Footage (深度フッテージ)] を選択します
[Footage Capture Data (フッテージ キャプチャ データ)] フィールドで、パフォーマンス テイクを表すキャプチャ データ アセットを選択します。
[MetaHuman Identity] フィールドで、テイクに登場するパフォーマーの MetaHuman Identity アセットを選択します。
[Visualization Mesh (ビジュアライゼーション メッシュ)] で、[MetaHuman] フェイス メッシュを選択します。
[Process (処理する)] をクリックしてフェイシャル アニメーションを生成します。
深度フッテージ処理要件
[Input Type] を [Depth Footage] に設定している場合、MetaHuman Performance を実行するには、少なくとも次のセットアップが必要です。
[Footage Capture Data] が、パフォーマンスのフッテージを参照している必要があります。
MetaHuman Identity が、そのパフォーマー用に設定された MetaHuman Identity アセット (パフォーマーがパフォーマンス中にどのように見えるか) を参照している必要があります。
2 つの属性が設定されたら、フッテージの処理を開始する準備ができています。
頭と首のトランスフォームはレスト ポーズに対して登録する必要があります デフォルトでは、解決したすべてのフレームを分析して「一番真正面を向いているフレーム」を見つけることで、自動的に実行されます。
頭のレスト ポーズを示すために使用したい特定のフレームがある場合、[Advanced (詳細設定)] 属性セクションでこれを無効にし、参照フレーム (解決された範囲内に存在している必要があります) を手動で入力します。
テイク内のフレームがレスト ポーズを提示しない場合、結果のアニメーションは角度オフセットがこれに「ベイク」され、修正が必要になります。 ヘッドマウント デバイスが最初の場所で望ましい頭の空間の動きを提供しないため、これは固定してマウントされたショットにのみ適用されます。
最大 36,000 フレームを処理できます (60fps では 10 分間、30fps では 20 分間のフッテージに相当)。 キャプチャ データ長はこの最大値よりも長い場合があります。
このアセットの最適な設定の詳細については、「Unreal Engine の推奨プロジェクト設定」のページを参照してください。
深度フッテージ時間/品質パラメータ
[Input Type] が [Depth Footage] に設定されている場合、アニメーションの解決の処理が膨大になり、時間がかかることがあります。
以下に、精度を下げることなくイテレーション回数を改善する方法をいくつか示します。 これらの方法を採用すれば、より処理負荷の高い最終的な解決を実行する前に、結果の品質を精査し、簡単なドライランを行うことができます。
時間のトレードオフに最も一般的なのは、処理フレーム数です。[Start and End Frame to Process (処理する開始フレームと終了フレーム)] の属性を設定することで、処理するフッテージに限度を設け、出力に直接影響を及ぼすことができます。
[Solve Type (解決タイプ)] には、[Preview (プレビュー)]、[Standard (標準)]、[Additional Tweakers (追加の微調整)] の 3 つのオプションがあります。 「品質」パラメータは必須ではありませんが、次のように処理時間の要件があります。
[Preview Mode (プレビュー モード)] ソルバは非常に高速で、アニメーションの解決中にフレーム プレビューを提供するときに使用します。 ユーザーによってはこれだけで十分かもしれませんが、これに加えてフレーム範囲を非常に狭くし、フッテージのドライランを実行して、すべてが正常かどうか確認することもできます。
[Standard] ソルバは完全な品質のソルバで、多数のチャンネルにアニメーションを生成しますが、すべてのチャンネルではありません。 最終的な高品質解決向けと言えるかもしれません。
[Additional Tweakers] ソルバは標準ソルバと似ていますが、微調整コントロールで指定した追加チャンネル用にアニメーションを生成します。
[Skip Filtering (フィルタリングのスキップ)] 属性は、アニメーション カーブをポスト プロセスして滑らかにする必要があるかどうか決定します。 この手順をスキップして未処理のカーブを取得できます。 現時点では、独自のフィルターを MetaHuman パフォーマンス アセットで直接使用することはできません。
[Skip Per Vertex Solve (頂点ごとにスキップして解決)] 属性は、処理時に「頂点ごと」の解決をオンにするかオフにするかを決定します。この属性はデフォルトで有効になっています (つまり、頂点ごとの解決はオフになっています)。 頂点ごとの解決の方が、より正確な可能性があるものの、非常に時間のかかるソルバ オプションであり、ターゲットのソルバに正確に一致するように各頂点に小さなオフセットを追加することで、リグのコンストレイントの「外側」にソルバを移動させることができます。 [Standard] ソルバまたは追加の微調整ソルバで適用できる頂点ごとの解決の結果。
頂点ごとの解決は入力データの質に大きく依存します。通常、最終ターゲットの MetaHuman がアイデンティティとしても使用できる高品質のデジタル ダブル リグである場合などでしか、(このオプションを無効にして) 頂点ごとの解決をオンにするのは割に合いません。 また、パフォーマンスは、適切にキャリブレーションされたステレオ ヘッドマウント カメラ ペアを使用してキャプチャされている必要があります。 このような型のデータを処理する場合以外は、このオプションをオンにすることは通常推奨されません。
最後の [Audio to Tongue (音声に舌を合わせる)] ソルバでは音声が必要ですが、テイクには音声がなかったり、舌のアニメーションが不要かまったく表示されなかったりする場合があります。 [Skip Tongue Solve (舌をスキップして解決)] で、音声に舌を合わせるかどうかを制御できます。
舌ソルバは処理コストがかかるとはいえ非常に小さいため、スキップしても、各フレームの他の解決時間と比較して長時間の節約にはなりません。