このクイック スタート ガイドでは、Camera Calibration プラグインを使用して、レンズの歪みおよび節点オフセットを較正する手順について説明します。
このガイドでの例では、ソース ビデオ入力としてプロダクション カメラ、オプティカル カメラのトラッキング システム、Blackmagic 8k Pro キャプチャー カードを使用しています。
前提条件
以下のハードウェアが揃っている必要があります。
- カメラとレンズ (必須)
- レンズの焦点距離と撮影距離に関する知識
- カメラのセンサーのディメンションと解像度 (クロップ ファクターなど、画像サイズへの影響も含む) に関する知識
- Live Link 対応のレンズ エンコーディング システム (ベスト プラクティス)
- レンズ エンコーディング システムがない場合は、レンズ パラメータを手動で読み取ってバーチャル Live Link サブジェクトに入力します。
- キャプチャー カード (AJA や Blackmagic など) を介した、カメラからの SDI ビデオ フィード (必須)
- Live Link 対応のカメラ トラッキング システム (節点オフセットのキャリブレーションでは必須)
- カメラ トラッキング プロップは、カメラ トラッキング システムから見えるようにカメラの上方に配置し (光学系の場合)、そのルート ボーンと軸がカメラの正面にほぼ揃うようにする必要があります。
- カメラ トラッキングは、節点オフセットのキャリブレーションでは必須ですが、歪みキャリブレーションには必要ありません。
- 印刷されたチェッカーボード (必須)。ディボンドまたはフォーム ボードに印刷されたものをお勧めします。さまざまな焦点距離または撮影距離で較正するには、いくつかのサイズが必要です。小さいチェッカーボードでは近い撮影距離で較正でき、大きいチェッカーボードでは遠い撮影距離で較正できます。焦点距離と同様に、チェッカーボードは大きいほどより広角レンズに使用でき、カバレッジが向上します。
Unreal Engine のプロジェクトで以下のものをセットアップする必要があります。
- Camera Calibration プラグイン
- Live Link を通じてストリーミングする、カメラ トラッキングおよびフォーカス、絞り、ズーム (FIZ) データ。
- 具体的には、以下のコンポーネントが追加されている CineCamera アクタがレベルにある必要があります。
- トラッキング システムからのトランスフォーム データとトラッキング データがある Live Link Component Controller。これはトランスフォーム ロールである必要があります。
- レンズ エンコーディング データを提供するソース付きの Live Link Controller コンポーネント。これはカメラ ロールである必要があります。
- レンズ コンポーネント
一部のカメラ トラッキング システムでは、独自のトランスフォーム データとレンズ エンコーディング データが 1 つのカメラ ロールにまとめられています。その場合は、1 つの Live Link Controller コンポーネントと 1 つのレンズ コンポーネントだけで済みます。
- ソース ビデオ入力
- (必須) SDI カメラ フィードを受け取るための、メディア ソースまたはメディア プロファイルのセットアップ。
- (任意) 同期ジェネレータを使用する場合は、メディア プロファイルでのタイムコードとゲンロックのセットアップ。セットアップ方法については、「メディア プロファイル」を参照してください。
- (任意) 同期とタイムコードを評価するための 時間指定データ モニター。
レンズ ファイル アセットを作成する
レンズ ファイル アセットは、レンズの歪み、節点オフセット、焦点距離など、レンズに関するキャリブレーション データを格納するコンテナです。レンズ ファイルをダブルクリックすると レンズ ファイル アセット エディタ が開きます。これは、そのデータを計算するための便利なツールです。レンズとカメラ ボディの組み合わせごとに、新しいレンズ ファイルを作成する必要があります。
プロジェクトでレンズ ファイル アセットを作成するには、以下の手順を実行します。
-
コンテンツ ブラウザ で、右クリックしてコンテキスト メニューを開き、[Miscellaneous (その他)] > [Lens File (レンズファイル)] をクリックします。
-
レンズ ファイルに、カメラ レンズ トラッカーの組み合わせを表す名前を付けます (例:「CameraModel_50mm_TrackerA」)。
-
レンズ ファイルを Cinecamera アクタのレンズ コンポーネントに割り当てます。
-
レンズ ファイル アセットをダブルクリックすると レンズ ファイル アセット エディタ が開きます。一時的な Composure カメラ アクタがレベルに作成されます。このファイルは、レンズ ファイル アセット エディタが閉じられると削除されます。
-
[Viewport Settings (ビューポート設定)] で、次のように設定します。
-
Camera を [Cinecamera actor (CineCamera アクタ)] に設定します。
-
Media Source を [Media Profile (メディアプロファイル)] または [Media Source (メディアソース)] に設定し、正しいビデオ デバイスを選択します。ビデオが正常に受信されると、コンポジットされたビデオをレンズ ファイルのビューポートで確認できるようになります。
-
-
[Lens Information (レンズ情報)] セクションで、次のように設定します。
-
Lens Model Name と Serial Number を入力します。推奨される命名規則は、カメラ ボディ名と焦点距離を組み合わせたものです。これらは必須ではありませんが、ユーザーに役立つメタデータです。
-
該当する Lens Model ([Spherical (球面)] または [Anamorphic (アナモフィック)]) を設定します。
-
Sensor Dimensions を、実効センサー サイズを変化させるクロップ ファクターや他のカメラ設定を考慮した、カメラの物理センサー サイズに合うように設定します。
-
アナモフィック レンズの場合は、Squeeze Factor を設定します。球面レンズの場合は、Squeeze Factor を 1.0 に設定します。
-
画像解像度とカメラ フィード情報ディメンションを適切に設定します。
カメラ フィード ディメンションは、レコーディング解像度と送信されるメディア ソースの解像度とのアスペクト比の差異を考慮するためのものです。前の手順でセンサー ディメンションが正しく設定されていれば、カメラ フィード ディメンションはこのツールによって自動的に調整されている場合があります。
-
-
アウトライナー にある CineCamera アクタを選択すると、その [Details (詳細)] パネルが開きます。
レンズ ファイル アセット エディタ の下部に、レンズ ファイルに適用されている現在のプロパティの概要が表示されています。この段階では、ほとんどのプロパティが空白または「N/A」と表示されています。これらのプロパティは、キャリブレーション プロセスの進行に伴って更新されます。すべてが正しく設定されていれば、Unreal のレベルと SDI フィードが組み合わされた画像が表示され、CineCamera とレンズ コンポーネントの名前と該当する FIZ データが下部パネルに表示されます。

バーチャル チェッカーボードを作成する
このステップでは、チェッカーボードを使用したよく使われる方法で、レンズの歪みを計算する方法を示します。硬い表面に印刷されていてプロダクション カメラの視野内で保持されているチェッカーボードを使用することも、タブレットに表示されたチェッカーボードの画像を使用することもできます。実物のチェッカーボードのプロパティと合致するように、Checkerboard アクタを UE 内で作成する必要があります。
Checkerboard アクタを作成するには、以下の手順を実行します。
-
メイン ツールバーで、[Add Content (コンテンツを追加)] を選択し、[Virtual Production (バーチャルプロダクション)] > [Checkerboard (チェッカーボード)] を選択して、CameraCalibrationCheckerboard アクタをレベルに追加します。
-
アウトライナー で、CameraCalibrationCheckerboard アクタを選択すると、その [Details] パネルが開きます。[Details] パネルの [Calibration (キャリブレーション)] セクションで次のように設定します。
-
Num Corner Rows に、チェッカーボードの 1 列にあるコーナーの数を設定します。この例では、行のコーナー数は 7 です。
-
Num Corner Columns に、チェッカーボードの 1 行にあるコーナーの数を設定します。この例では、列のコーナー数は 11 です。
-
Square Side Length に、チェッカーボードにある正方形の一辺の長さ (cm 単位) を設定します。この例では、正方形の辺の長さは 4.5cm です。
-
(任意) Thickness に、実物のチェッカーボードの厚さ (cm 単位) を設定します。
-
なお、下の画像では、コーナーの行と列は、外側のそれぞれの黒い正方形の内側にあるものとしてカウントされています。

レンズ キャリブレーションを最適に利用するには、トラックされたチェッカーボード アクタのアライメントができるだけ正確であることが重要です。
カメラに対して同じトラッキング システムで Live Link を使用するチェッカーボードをトラックする場合は、レンズの歪みと節点オフセットを同時に計算することができます。そうするには、使用するトラッキングシステムに適した光学マーカーまたは VIVE パックをチェッカーボード上に配置します。レンズ キャリブレーションは、実際のチェッカーボードとトラックされたチェッカーボード アクタとのずれを相殺することを目的としていますが、すべての軸で平行移動が 5cm 以内であり、回転が 5 度以内であることをお勧めします。
Unreal でトラッキングをチェッカーボードに適用するには、チェッカーボード アクタの親を、Live Link データを受け取る Live Link コンポーネントがあるアクタにします。

レンズの歪みと節点オフセットを較正する
レンズの歪みと節点オフセットを同時に較正するには、以下の手順を実行します。
-
レンズ ファイル アセット エディタで、[Lens Distortion (レンズの歪み)] タブをクリックします。
-
[Capture settings (キャプチャー設定)] をクリックし、次のように設定します。
-
Calibration Pattern を [Checkerboard (チェッカーボード)] に設定します。
-
Calibrator に、前に作成した CameraCalibrationCheckerboard アクタを設定します。
-
[Is Calibrator Tracked (キャリブレータがトラックされている)] を有効にします。
-
[Is Camera Tracked (カメラがトラックされている)] を有効にします。
-
[Show Overlay (オーバーレイを表示)] を有効にします。これは、データ キャプチャー フェーズ中に、レンズのカバレッジを表示するのに役立ちます。
-
-
[Solve Settings (解決の設定)] で、次のように設定します。
- [Solve Nodal Offset (節点オフセットを解決)] を有効にします。
- [Focal Length Guess (焦点距離の推測)] > [Set to Value (値に設定)] をクリックし、想定する焦点距離を設定します (例:50mm)。
-
次のように、カメラの正面にチェッカーボードを配置します。
-
ビューポートをクリックすると、キャリブレーション プロセスが開始され、使用する最初の画像が作成されます。
-
チェッカーボードをカメラの視野内で動かして、画像をクリックしてキャリブレーション画像をキャプチャーすることを続行します。キャリブレーションの精度が上がるように、チェッカーボードの位置を、さまざまな向きとさまざまな奥行きで、オーバーラップしている画像で視野をカバーできるほど十分な回数だけ動かします。
チェッカーボードだけを動かし、カメラは動かしません。
-
ビューポートを内でクリックして画像をデータセットに追加する際に、誤りのあるキャプチャー (モーション ブラーなど) を削除しようとする場合があります。画像を削除するには、リスト内でその画像をクリックしてから Delete キーを押します。
次のビデオは、必要とされるカバレッジをほぼ満たしている実例を示しています。
-
少なくとも視野全体をカバーするのに十分なオーバーラップしている画像を収集したら、[Calibrate Lens (レンズをキャリブレーション)] をクリックします。
-
ダイアログ ボックスが現れて、メッセージが表示されます。再投影誤差はキャリブレーションの精度を表しています。
-
[Lens File] ウィンドウの下部で、[Distortion (歪み)]、[Normalised Camera Intrinsics (正規化済みカメラの組み込み属性)]、および [Nodal Point Offset (節点オフセット)] の値が更新されていることを確認します。
ほとんどのレンズで、撮影距離が異なると歪み値も異なります。レンズの歪みに対して最も正確なレンズ ファイルを作成するには、このプロセスをさまざまな撮影距離で繰り返す必要があります。ズーム レンズの完全なキャリブレーションでは、さまざまな撮影距離にわたってさまざまな焦点距離でキャリブレーションを何回も行う必要があります。
キャリブレーション結果を確認する
キャリブレーションの後に、レンズ ファイルのビューポートでバーチャル チェッカーボードの見た目が、より合致していることに気づくはずです。ただし、依然として見た目のアライメントがずれています。これは、実際のチェッカーボードとバーチャル チェッカーボードのずれはキャリブレーション時に考慮されましたが、チェッカーボードでのアライメントは依然として正しくないためです。ここまででレンズと節点オフセットを較正したので、チェッカーボードのアライメントを調整することができます。
チェッカーボードのアライメントを調整するには、以下の手順を実行します。
-
レンズ ファイル アセット エディタ で、[Nodal Offset (節点オフセット)] タブに切り替えます。
-
Nodal Offset Algo のドロップダウンで [Nodal Offset Checkerboard (節点オフセットチェッカーボード)] を選択します。
-
Checkerboard のドロップダウンでチェッカーボード アクタを選択します。
-
-
画像をクリックして、キャリブレーションのすべてのコーナー データを入力します。
-
[Apply to Calibrator (キャリブレータに適用)] をクリックします。そうすると、チェッカーボード アクタが、実物のチェッカーボードに一致するようにカメラに向かって移動します。
-
[Viewport Settings (ビューポート設定)] セクションで、[Transparency (透過性)] の値を 1 未満に設定して、カメラのビューポートでチェッカーボード アクタが実物のチェッカーボードと一致していることを確認します。
次のビデオは、バーチャルとビデオ フィードが重なるように透過処理を使用して、トラックされたチェッカーボードによるキャリブレーションの精度を検証する実例を示しています。なお、この例では、ビデオのフレームと揃うようにトラッキング データにオフセットを設定しています。
任意選択のキャリブレーションのワークフロー
前述の手順で以下のワークフローを使用すると、プロセスの違いに対応できます。
レンズの歪みを較正する (節点オフセットのキャリブレーションなし)
このワークフローは、カメラ トラッキングまたはトラックされたチェッカーボードがない場合、または個別の手順として節点オフセットのキャリブレーションを実行する場合に役立ちます。
レンズの歪みと節点オフセットを較正する場合の手順 1 で、次のように設定を変更します。
- Calibration Type を [Distortion and Intrinsics (歪みと組み込み属性)] に設定します。
- [Is Calibrator Tracked] と [Is Camera Tracked] を適切に設定します。
節点オフセットを較正する (レンズの歪みのキャリブレーションなし)
このワークフローは、レンズの歪みのキャリブレーションを実施済みである場合、レンズがカメラ ボディに取り付け直された場合、またはカメラ トラッキングのクラウンが動かされた場合に役立ちます。
レンズの歪みと節点オフセットを較正する場合の手順 1 で、次のように設定を変更します。
- Calibration Type を [Nodal offset (節点オフセット)] に変更します。
キャリブレーションを改善または手動編集する
キャリブレーションを手動で微調整することも、編集することもできます。そうするには、[Lens File Panel (レンズファイルパネル)] タブを使用します。
このタブには、右側にグラフがあり、左上にパラメータのリストがあります。実世界のカメラのフォーカスまたはズームを、ズレが目に見えるようになるまで調整してから、調整する必要があるパラメータを選択します。そして、グラフ内のポイントを、満足できる結果になるまで編集します。レンズ ファイルのビューポートでの更新をリアルタイムで表示しながら調整を行うには、レンズ ファイル パネルを非表示にすると使いやすくなる場合があります。

ポイント間の補間を調整することで、キャリブレーション結果を微調整することもできます。
