このガイドでは、ヘッドマウント ステレオ カップルからキャプチャしたデータを取得して、Unreal Engine の MetaHuman プラグインで処理する準備をするために必要な手順について説明します。
このプラグインは、データが特定のファイル形式であり、特定のディレクトリ構造を使用することを想定しています。データが正しい形式である場合、再構築に必要なキャリブレーション パラメータを計算しエクスポートできます。次のタスクをサポートするために Python スクリプトおよびキャリブレーション アプリケーションを提供しています。
キャリブレーション アプリケーションをとステレオ パイプライン スクリプトは、マーケットプレイスから配布されるプラグインとともにバンドルされています。
これらは、エンジンの場所と相対的な次のパスで入手可能です。
[engine]\Engine\Plugins\Marketplace\MetaHuman\Content\StereoCaptureTools
このガイドでは、サンプル データを準備するこれらのツールのインストールと使用について説明します。最適なデータのキャプチャ方法のガイダンスについては、「フェイシャル パフォーマンス キャプチャのガイドライン」を参照してください。
インストールとセットアップ
次の手順で、必要なツールをインストールおよびセットアップします。
始める前に、マシンに次のものがインストールされている必要があります。
- Python 3.6 以降。Python.org からこれを入手できます。
- ffmpeg (最新バージョン)。FFMPeg.org からこれを入手できます。
どのディレクトリからも呼び出せるように、これらの両方がシステム パスにあることを確認してください。
次のインストール手順を続行します。[Windows Settings (Windows の設定)] > [Environment Variables (環境変数)] に移動して、新しいエントリを path
変数に追加します。
-
プラグインの場所からツールとスクリプトを見つけます。オプションで、(プラグインの EULA に指定された内容に従って) 望ましい場所にこれらを移動できます。
-
msi
ファイルを使用して、キャリブレーション アプリケーションをインストールします。画面上の指示に従います。キャリブレーション アプリケーションは次のパスにあります。C:\Program Files\Epic Games\Calibration App
-
ディレクトリ「
C:\Program Files\Epic Games\Calibration
」のアプリケーションを Windows 設定のシステム パスの環境変数に追加します。 -
ステレオ キャプチャ ツールを含むディレクトリで
cmd
コンソール を開きます。デフォルトで、これは以下のとおりです。[engine]\Engine\Plugins\Marketplace\MetaHumanTest\Content\StereoCaptureTools\stereo_capture_tools-0.1.9
-
requirements.txt
ファイルを使用して Python 依存関係をインストールします。pip install -r requirements.txt
Python 依存関係をインストールする前に、次のコマンドを使用して仮想環境を作成します (必須ではありませんが、お勧めします)。
python -m venv venv
以下を使用して初期化します。
.\venv\Scripts\activate.bat
これでインストールが完了しました。
ステレオ キャプチャ ツールを使用する cmd
ウィンドウ内で activate.bat
を実行することで、仮想環境を有効にしてください。
データの準備
入力データ
次のセクションでは、キャリブレーション フッテージとパフォーマンス フッテージがあることを想定しています。また、キャリブレーション ショットが 1 つ、アクタのパフォーマンスが 2 つ (1 つはアイデンティティ作成用で、もう 1 つは実際のパフォーマンス用) があることも想定しています。
以下の例では、「example_data」の下にある記録された 3 つのタイプの撮影済みフッテージを参照するために、「calibration」、「identity」、「performance」を使用しています。
すべてのケースで、1 組の mov
形式のビデオ ファイルがあり、1 つはトップ カメラ (top.mov
) 用で、もう 1 つはボトム カメラ (bot.mov
) 用です。パフォーマンス用に、wav
形式 (audio.wav
) のオーディオもあります。
+---example_data
| +---identity
| | audio.wav
| | bot.mov
| | top.mov
| |
| ---performance
| audio.wav
| bot.mov
| top.mov
|
+---calibration
| bot.mov
| top.mov
データの構成が異なっている場合、データ構造に以下の手順を適用します。
データ変換
次の例では、デフォルトの場所からスクリプトを使用することを想定しています。ステレオ フッテージが「C:\MyData\example_data
」にあることも想定しています。
-
cmd
ウィンドウを開きます。 -
準備したデータ用に新しい場所を作成します。
mkdir c:\MyData\example_data_prepared
-
次のコマンドでキャリブレーション データを変換します。
仮想環境を使用している場合、これらのコマンドを実行する前に仮想環境を有効にしている必要があります。
python "C:\Program Files\Epic Games\UE_5.2\Engine\Plugins\Marketplace\MetaHumanTest\Content\StereoCaptureTools\stereo_capture_tools-0.1.9\stereo_capture_tools\mh_ingest_convert.py" top c:\MyData\example_data\calibration\top.mov bot c:\MyData\example_data\calibration\bot.mov c:\MyData\example_data_prepared\calibration
示されているように、名前は top と bot を使用する必要があります。これが完了すると、準備済みデータ フォルダのキャリブレーションのサブディレクトリに、キャリブレーションに必要なメタデータと画像が入っています。
-
アイデンティティの作成およびパフォーマンス データを変換します。
python "C:\Program Files\Epic Games\UE_5.2\Engine\Plugins\Marketplace\MetaHumanTest\Content\StereoCaptureTools\stereo_capture_tools-0.1.9\stereo_capture_tools\mh_ingest_convert.py" --audio-path c:\MyData\example_data\performance\audio.wav top c:\MyData\example_data\performance\top.mov bot c:\MyData\example_data\performance\bot.mov c:\MyData\example_data_prepared\identity
これが完了すると、準備済みデータ フォルダのキャリブレーションのサブディレクトリに、キャリブレーションに必要なメタデータと画像が入っています。
-
パフォーマンス データでプロセスを繰り返します。
python "C:\Program Files\Epic Games\UE_5.2\Engine\Plugins\Marketplace\MetaHumanTest\Content\StereoCaptureTools\stereo_capture_tools-0.1.9\stereo_capture_tools\mh_ingest_convert.py" --audio-path c:\MyData\example_data\performance\audio.wav top c:\MyData\example_data\performance\top.mov bot c:\MyData\example_data\performance\bot.mov c:\MyData\example_data_prepared\performance
これが完了すると、準備済みデータ フォルダのパフォーマンスのサブディレクトリに、パフォーマンスに必要なメタデータと画像が入っています。
必要に応じて追加のフッテージに、上記の手順を繰り返します。
キャリブレーション
準備済みデータでステレオ カメラ キャリブレーション プロセスを開始するには、次のコマンドを実行します。
CalibrationApp -f c:\MyData\example_data_prepared\calibration
-e c:\MyData\example_data_prepared\calibration\calib.json -n 30
このプロセスは数秒かかり、次のように出力されます。
Detection Started!
Detection Finished!
Intrinsic Calibration Started.
bot: 30/30 selected images for intrinsic calibration. (0 blurry images).
top: 30/30 selected images for intrinsic calibration. (0 blurry images).
Intrinsic Calibration Finished.
Extrinsic Calibration Started.
60 selected images for extrinsic calibration.
2.12488e+08 3084.77
Calibration has been saved to: C:\MyData\example_data_prepared\calibration\calib.json
Calibration process complete
Extrinsic Calibration Finished. mse = 0.413976
Calibration Finished.
最後に、「calib.json」ファイルを各パフォーマンス ディレクトリにコピーする必要があります。この場合、次のようになります。
copy C:\MyData\example_data_prepared\calibration\calib.json c:\MyData\example_data_prepared\identity\calib.json
copy C:\MyData\example_data_prepared\calibration\calib.json c:\MyData\example_data_prepared\performance\calib.json
カスタム キャリブレーション ボード
デフォルト以外のさまざまな数の升目とさまざまなサイズの升目があるキャリブレーション ボードを使用できます。これを行うには、「C:\Program Files\Epic Games\Calibration App\default_hmc_config.json
」からデフォルトの設定をコピーして変更します。
キャリブレーション ボードに合うように、patternHeight
、patternWidth
および squareSize
を更新します。
patternHeight
- ボードの高さの中にある角の数。したがって、これは升目の数 - 1 です。patternWidth
- ボードの幅の中にある角の数。したがって、これは升目の数 - 1 です。squareSize
- 各升目の cm 単位のエッジ サイズ。升目以外のグリッドはサポートしていません。
キャリブレーション コマンドを実行すると、-c
パラメータを追加して、カスタム コンフィギュレーション ファイルを指します。たとえば、次のようになります。
CalibrationApp -f c:\MyData\example_data_prepared\calib
-e c:\MyData\example_data_prepared\calibration\calib.json -n 30 -c c:\MyData\example_data_prepared\custom-config.json