目標
このクイック スタート ガイドでは、Camera Calibration プラグインを使用してビデオ フィードの接続およびキャリブレーションを実行する手順について説明します。
目的
-
ライブ フィードが提供されるようにカメラを Unreal Engine に接続する。
-
Camera Calibration プラグインを使用してカメラをキャリブレーションする。
1 - 必要な設定
このガイドでは、Blackmagic Ultra HD カメラ、Panasonic Lumix レンズ、および HTC Vive Tracker 3 を使用してシーン内の CineCamera アクタを制御します。
Unreal Engine では、現在のところ、一部のウルトラワイド カメラ レンズのみをサポートしています。
-
新しい Unreal Engine プロジェクトを作成します。[Film, Television, and Live Events (映画、テレビ、ライブ イベント)] カテゴリを選択し、 [Next (次へ)] ボタンをクリックします。
-
「Virtual Production」テンプレートを選択し、 [Next] ボタンをクリックします。
-
ファイルの場所とプロジェクト名を入力し、 [Create Project (プロジェクトを作成)] をクリックします。
-
エディタがロードされたら、 [Settings (設定)] > [Plugins (プラグイン)] の順にクリックして [Plugins (プラグイン)] メニュー を開きます。
-
[Virtual Production] カテゴリを選択し、 Camera Calibration プラグインと LiveLinkXR プラグインを オン にします。ポップアップ ボックスで [Yes (はい)] を選択し、 [Restart Now (すぐに再起動)] ボタンをクリックしてエディタを再起動します。
このセクションの結果
Camera Calibration プラグインと LiveLinkXR プラグインを有効化し、エディタを再起動しました。これで、カメラのキャリブレーションの準備が整いました。
2 - シーンを設定する
-
[Place Actors (アクタを配置)] パネルに移動し、「CineCamera Actor」を検索します。このアクタをレベルにドラッグします。
-
[Place Actors] パネルで、「Camera Calibration Checkerboard」を検索します。このアクタをレベルにドラッグします。
-
コンテンツ ブラウザ の [View Options (表示オプション)] ボタンをクリックし、 [Show Engine Content (エンジンのコンテンツを表示)] と [Show Plugin Content (プラグインのコンテンツを表示)] オプションをオンにします。
-
コンテンツ ブラウザ で「CameraCalibration Content」>「Devices」>「Tracker」に移動します。BP_UE_Tracker3 ブループリントをレベルにドラッグします。
-
レベル内の CineCamera アクタ を選択し、 [Details (詳細)] パネルに移動します。[Filmback (フィルムバック)] セクションまで下にスクロールし、 [Sensor Width (センサーの幅)] と [Sensor Height (センサーの高さ)] に、物理カメラと一致する値を入力します。
-
CineCamera アクタ を選択した状態で [Details] パネルに移動し、 [Add Component (コンポーネントを追加)] ボタンをクリックします。Live Link Controller を検索して選択します。
-
[Window (ウィンドウ)] > [Live Link (ライブリンク)] をクリックして、 [Live Link] ウィンドウを開きます。
- [Source (ソース)] > [LiveLinkXR Source (LiveLinkXR ソース)] に移動し、 [Add (追加)] ボタンをクリックして接続済みの Vive トラッカーを追加します。これで、Live Link を使用して接続されたトラッカーが表示されます。
HTC Vive デバイスおよび SteamVR デバイスの開発の詳細情報については、「SteamVR の開発ドキュメント」を参照してください。
-
実際の FIZ ソースを使用していないため、 LiveLink ブループリントの仮想サブジェクト を使用して仮想ソースを作成する必要があります。コンテンツ ブラウザ 内を右クリックして [LiveLink] > [Blueprint Virtual Subject (ブループリントの仮想サブジェクト)] を選択します。ドロップダウンをクリックし、 LiveLinkCameraRole を選択して [OK] ボタンをクリックします。ブループリントに「VirtualPrestonFIZ」という名前を付けます。
-
VirtualPrestonFIZ ブループリントをダブルクリックして開きます。[+ Variable (+ 変数)] ボタンをクリックして新しい変数を追加します。変数の名前を「Focus」にします。[Details] パネルに移動し、 [Variable Type (変数の型)] を [Float (浮動小数)] に設定します。[Instance Editable (インスタンス編集可能)] チェックボックスを オン にします。
-
上記手順を繰り返し、さらに 2 つの浮動小数の変数を作成し、「Zoom」と「Iris」という名前を付けます。
- [Event Graph (イベント グラフ)] 内を右クリックし、「Update Virtual Subject Static Data」を検索して選択します。Update Virtual Subject Static Data ノードを Event On Initialize ノードに接続します。Update Virtual Subject Static Data ノードの Static Data ピンを右クリックし、 [Split Struct Pin (構造体ピンを分割)] をクリックします。
-
以下のように、 [Focal Length (焦点距離)] 、 [Aperture (絞り)] 、および [Focus Distance (フォーカス距離)] を オン にします。
-
[Event Graph] 内を右クリックし、「Update Virtual Subject Frame Data」を検索して選択します。Update Virtual Subject Frame Data ノードを Event On Update ノードに接続します。Update Virtual Subject Frame Data ノードの Frame Data ピンを右クリックし、 [Split Struct Pin (構造体ピンを分割)] をクリックします。このイベントはティックごとにトリガーされ、各フレームで利用可能な FIZ データの更新に使用されます。
-
Zoom 変数を Focal Length ピンに接続します。Iris 変数を Aperture ピンに接続します。Focus 変数を Focus Distance ピンに接続します。ブループリントを コンパイル して、保存 します。
-
[Source] > [Add Virtual Subject (仮想サブジェクトを追加)] に移動し、 [Virtual Subject (仮想サブジェクト)] ウィンドウを開きます。VirtualPrestonFIZ サブジェクトを選択し、 [Add] ボタンをクリックします。
-
コンテンツ ブラウザ で右クリックして、 [Miscellaneous (その他)] > [Lens File (レンズ ファイル)] を選択し、Lens File アセットを作成します。アセットの名前を「LumixLens」にします。
-
CineCamera アクタ を選択し、 [Details] パネルに移動します。[Live Link] セクションまで下にスクロールし、 [Subject Representation (サブジェクト表現)] の横にある ドロップダウン メニュー をクリックします。リストから使用するトラッカーを選択します。
-
CineCamera アクタ を選択した状態で [Details] パネルに移動し、 [Add Component] ボタンをクリックします。別のコンポーネントを追加するために Live Link Controller を検索して選択します。[Live Link] セクションまで下にスクロールし、 [Subject Representation] の横にある ドロップダウン をクリックします。リストから使用する仮想サブジェクトを選択します。
-
[Details] パネルで、 [Camera Role (カメラ ロール)] セクションまで下にスクロールし、 [Lens File] の横にある ドロップダウン メニュー をクリックします。「LumixLens」を検索して選択します。
-
BP_UE_Tracker3 ブループリントを選択して [Details] パネルに移動します。[LiveLink Component Controller (LiveLink コンポーネント コントローラー)] を選択し、 [Live Link] セクションまで下にスクロールします。[Subject Representation] の横にあるドロップダウン メニュー をクリックし、使用するトラッカーを選択します。
-
CameraCalibrationCheckerboard アクタを選択し、 [Details] パネルに移動します。[Calibration (キャリブレーション)] セクションまで下にスクロールし、 行 と 列 、 [Square Side Length (四角形の辺の長さ)] の数を入力します。この例では、測定用に以下の画像を使用します。
-
視性を高めるため、 [Odd Cube Material (奇数のキューブ マテリアル)] および [Even Cube Material (偶数のキューブ マテリアル)] スロットにマテリアルを追加します。
このセクションの結果
このセクションでは、 CineCamera アクタ、 Camera Calibration Checkerboard アクタ、 BP_UE_Tracker3 ブループリントをレベルに追加しました。Live Link を使用してトラッカーを接続し、アクタを正しく設定しました。これで、レンズのキャリブレーションの準備が整いました。
3 - レンズのキャリブレーションを実行する
-
コンテンツ ブラウザ で、 LumixLens アセットをダブルクリックして開きます。[Calibration Steps (キャリブレーション ステップ)] パネルをクリックし、 [Lens Information (レンズ情報)] タブを選択します。[Lens Info (レンズ情報)] セクションに移動し、レンズ情報を入力して [Save Lens Information (レンズ情報を保存)] ボタンをクリックします。
-
[Lens File Panel (レンズ ファイル パネル)] をクリックし、 [Focus (フォーカス)] を選択します。
-
[+] ボタンをクリックし、 [Input Focus (入力フォーカス)] に値「0」を入力します。[Encoder Mapping (エンコーダ マッピング)] に値「100」を入力します。[Add] ボタンをクリックし、このデータ ポイントをグラフに追加します。この手順を繰り返し、 [Encoder Mapping] に値「1000」を、 [Input Focus] に値「1」を入力します。
-
[Iris (絞り)] を選択し、 [Encoder Mapping] に値「1.8」を、 [Input Focus] に値「0」を入力します。[Add] ボタンをクリックし、このデータ ポイントをグラフに追加します。この手順を繰り返し、 [Encoder Mapping] に値「4.5」を、 [Input Iris] に値「1」を入力します。
-
[Calibration Steps (キャリブレーション ステップ)] パネルに戻り、 [Lens Distortion (レンズの歪み)] タブを選択します。チェッカーボードの画像を全画面で開き、カメラをその画面に向けます。チェッカーボード全体を表示した状態で、ビューポートをクリックして画像を撮影します。この手順を複数回繰り返し、複数の画像を撮影します。
このプロセスを複数のズーム レベルとフォーカス値で繰り返し、可能な限り最適なキャリブレーションを行います。
-
さまざまな角度から複数の画像を撮影したら、 [Add To Lens Distortion Calibration (レンズ歪みキャリブレーションに追加)] ボタンをクリックします。ポップアップ ウィンドウで [OK] をクリックし、キャリブレーション データを受け入れます。
-
[Nodal Offset (節点オフセット)] タブを選択し、 [Nodal Offset (節点オフセット)] セクションで、 [Nodal Offset Algo (節点オフセット アルゴリズム)] ドロップダウン メニューをクリックします。[Nodal Offset Checkerboard (節点オフセット チェッカーボード)] を選択します。
-
画面上のチェッカーボードに再度カメラを向けて、ビューポートをクリックします。これにより、画像の角が検出されます。[Apply to Calibrator (キャリブレーターに適用)] ボタンをクリックし、 Camera Calibration Checkerboard アクタを画面のチェッカーボードと位置合わせします。
-
これで、バーチャル カメラの節点オフセットをキャリブレーションできました。[Nodal Offset Algo] を Nodal Offset Points Method (節点オフセット ポイント メソッド) に、 [Calibrator (キャリブレーター)] をトラッカーに設定します。[Calibration Point (キャリブレーション ポイント)] を PointLed に設定します。
-
トラッカーのライトをカメラに向けたままにし、ビューポートのライトをクリックします。この手順を複数回繰り返し、複数のデータ ポイントを作成します。[Add To Nodal Offset Calibration (節点オフセット キャリブレーションに追加)] ボタンをクリックします。
期待した正確さで追跡ができない場合は、他のポイントを使用してこのプロセスを繰り返すことができます。
-
[Lens File] ウィンドウを閉じ、トラッカーを移動したときに CineCamera アクタが正しく動くことを確認します。
このセクションの結果
このセクションでは、Lens File を使用してレンズの情報を入力し、レンズの歪みをキャリブレーションし、正しい節点オフセットを追加しました。また、CineCamera アクタが物理カメラの位置、回転、およびレンズの歪みをシミュレーションするようになりました。