導入
私たちは、異なる目的を果たす2種類のトラッキングデータ記録を区別しています。これらはいずれも、互いに独立して、任意の組み合わせで使用可能です。
入力記録
その目的は、事前に記録されたカメラ画像とトラッキングデータを使用して、最終的なショーのオフラインレンダリングを可能にすることです。
Aximmetryではオフラインレンダリングが可能です。ワークステーションがHQビデオ入力でライブレンダリングできない場合、Aximmetryでレンズ歪みとトラッキングデータを含む低解像度記録を行い、同時にカメラで高解像度ビデオを録画できます。後で高解像度ビデオとシーンをオフラインでレンダリングできます。
録画された動画: カメラの入力画像のrawデータ(未加工)。
録画されたトラッキングデータ: カメラのトラッキングシステムから取得したrawデータ、およびレンズ歪みデータ(トラッキングシステムから取得またはAximmetryのキャリブレーションファイルから計算されたもの)。これらのデータはAximmetry独自のファイル形式(.xdata)で保存されます。
すべての入力またはその一部を個別に録画できます。
最終コンポジット記録
この機能の目的は、Aximmetryの最終コンポジット出力(画像とトラッキングデータ)を使用して、サードパーティのレンダリングソフトウェアで3Dポストプロダクション作業を可能にすることです。
録画された動画:バーチャル背景とキーイングされたカメラ画像の最終コンポジット。
録画されたトラッキングデータ:Base Cam TransformとORIGIN設定、およびVRパスモーションによって既にモジュレートされた最終的なカメラ位置と焦点距離データ。FBXファイルに保存され、任意のサードパーティシステムで利用可能です。ただし、現在のところこの方法ではレンズ歪みデータを記録できません。重要な点:この機能はVirtualCam*コンパウンドとも組み合わせて、バーチャルカメラの動作を記録できます。
重要:AximmetryはFBXをエクスポートできますが、インポートやFBXファイルの編集はできません。ポスト処理にサードパーティソフトウェアを使用する場合、FBX形式の使用を推奨します。
入力記録
この機能は、各 TrackedCam*.xcompのINPUTSコントロールボードに追加されました。
タイムコード
カメラの動画フレームと対応するトラッキングデータフレームのペアリングはタイムコードに基づいて行われます。したがって、現在のシステムフレームレートと互換性のあるタイムコードをシステムに提供する必要があります。
個別のタイムコードの使用
デフォルトでは、各記録には記録開始時に0から始まる独自のタイムコードが割り当てられます。これが最もシンプルな同期方法です。
入力タイムコードの使用
ただし、カメラがSDI経由で提供するタイムコードを使用したい場合もあります。これはカメラの内部タイムコードの進行状況か、カメラに接続された中央のタイムコードジェネレーターから取得したタイムコードのいずれかです。
この方法では、カメラ自体で最高の画像品質で録画し、その後Aximmetryに記録されたトラッキングデータとペアリングすることも可能です。
この設定を有効にするには、RECORDパネルのUse Input TCオプションをオンにします:
録画
RECORDパネルを選択します。
録画する入力を選択します。複数の入力を同時に録画すると、システムのパフォーマンスに影響を与える可能性がある点にご注意ください。
記録形式の通常のパラメーターを指定できます。すべてのカメラで同じ設定が適用されますが、ファイル名は指定したタグに基づいて個別に接尾辞が付きます(Output Suffix X)。さらに、すべてのテイクには個別のインデックス番号が割り当てられます。これらの記録は後で再利用されるため、ストレージ容量に応じて高いビットレートを使用することをおすすめします。
赤い円ボタンを押して録画を開始します。
プレビュー画面には、録画時間を表示する赤いカウンターが表示されます。また、現在録画中の入力のインデックスも表示されます。
NOTE: 録画の開始タイミングを同期させるには、カメラコンパウンドの「Playback Restart」出力ピンを使用してください。このピンは、赤い円ボタンを押した時と録画が停止した時にトリガーされます。
赤い丸ボタンを再度押して録画を停止します。停止すると、最後に録画されたファイルが自動的にInput XプロパティのPLAYBACKパネルに追加され、録画の即時確認が可能になります。
再生については、このドキュメントの後のセクションを参照してください。
ご注意ください:動画ファイルの他に、同じ名前でトラッキングデータを含む.xdataファイルも作成されます。
カメラでの高解像度動画の録画
上記で説明したように、最高画質でカメラ自体に動画を録画し、トラッキングデータのみをAximmetryで録画したい場合があります。その場合は「トラッキングのみ」オプションを選択してください:
カメラがSDI経由で連続したタイムコードを送信し、録画にも同じタイムコードを使用していることを確認してください。
INPUT ボックスで「Timecode Master」をオンにすると、このタイムコードが録画に使用されます。この図では、INPUT 1 パネルで「Timecode Master」がオンになっていますが、別の入力のタイムコードを使用したい場合は、その入力のタイムコードを選択してください。
Record パネルで「Use Input TC」をオンにすると、この外部タイムコードが使用されます。
トラッキングのみモードでは、録画された動画は作成されますが、パフォーマンスへの影響を最小限に抑えるため、非常に低品質で作成されます。これはプレースホルダーとして機能します。後で素材を再生したい場合は、カメラのSDカードから録画したファイルをこのプレースホルダーに上書きコピーしてください。置き換える動画ファイルと対応するトラッキングデータファイル(.xdata)のファイル名が一致していることを確認してください(後述:再生)。
オーディオ
すべての入力は、そのオーディオと共に自動的に記録されます。デフォルトでは、オーディオはビデオと同じSDI/HDMI入力から取得されます。別々のサウンドカードやUSBデバイスでオーディオを受信するには、該当する入力の「Use Audio Device」オプションをオンにし、対応するシステムオーディオデバイスを選択してください:
入力オーディオを聞くには、AUDIOパネルのスピーカーボタンをオンにし、Monitor Deviceプロパティでオーディオを出力するWindowsオーディオ出力デバイスを選択します(通常はデフォルトのPrimary Driverで問題ありません):
入力ビデオとオーディオ信号を同期するには、Audio Dev Delayプロパティを使用します。秒単位で指定します。
ここでもオーディオレベルを調整できます。これは相対値でデシベルで表され、0は変更なしを意味します。
再生
再生するには、PLAYBACKパネルで再生する動画ファイルを選択します。各入力に対してファイルを個別に指定できます。Input Xプロパティが空白の場合、対応する入力は再生モード中でもライブ信号を受信し続けます。
先ほど述べたように、各録音セッション後、最後に録音されたファイルがこれらのプロパティに自動的に入力されます。
ご注意ください:ここではビデオファイルを選択しますが、その横に同じ名前を持つ.xdata形式の対応するファイルが必ず存在する必要があります。
Aximmetryで録音した低解像度ビデオをカメラで録音した高解像度ビデオで置き換える場合は、次の手順を実行してください:
- カメラからコンピュータに以前に録画した動画をコピーします。
- 以前に録画した.xdataファイルを、高解像度動画を貼り付けた場所にコピーします。
- 動画と.xdataファイルが同じ名前であることを確認してください(.xdataファイルを動画の名前と一致するようにリネームするか、その逆でも構いません)。
- 次のような画面が表示されます:
- PLAYBACK パネルで高解像度動画を選択します。
パネルのPlay ボタンをオンに切り替えて、システムを再生モードにします:
プレビュー画面には再生モードが表示され、再生に実際に使用されている入力のインデックスも表示されます(他の入力はライブ信号を受け続けます)。
デフォルトでは、録画の最初のフレームが静止画で表示されます。これは、システムがシーケンサーを使用して動画とトラッキングを再生することを想定しているためです。この方法だと、追加のシーケンストラック経由でショーに同期したアニメーションを簡単に追加できます。そのため、シーケンサーを追加し、次のように接続してください:
複数の入力に録画を使用する場合、すべての入力にシーケンサーを接続してください:
シーケンサーをダブルクリックしてシーケンスエディターを開くと、PLAYBACKパネルで指定した各動画ファイルに対応するトラックが表示されます。
現在、シーケンサーを通常通り再生/停止またはシークして、録画した素材とトラッキングを同時に確認できます。
先ほど述べたように、録画した素材と同期して再生される追加のアニメーショントラックを追加できます。
シーケンサーの一般的な使用方法については、このドキュメントをご参照ください。
再生モードと記録の組み合わせ
記録中に再生モードをオンにしたままにできます。
まず、この方法では記録を停止した際に、最後に記録されたファイルが自動的に再生用に選択されるため、結果を即座に確認できます。
次に、記録用に選択しなかった入力で再生用に選択されたファイルは、再生状態のまま保持されます。より明確にするため、すべての入力で記録を行った場合を例に説明します:
次に、以下の設定で新しい録音を開始します:
この場合、Input 3の現在のライブフィードが録音され、Input 1と2の以前の録音データが同時に再生され、例えばMATRIXモードでライブフィードと共に表示されます。
複合構造の性質上、再生中の録音はできません。
以下の接続を行うことで、録音の開始または停止時にシーケンサーを自動的に再起動するようにシステムに指示できます。これにより、上記の使用シナリオの両方に役立ちます。
再生時間表示
以下の接続を行うと、現在の再生位置が表示されます。
表示される時間は、シーケンサーの位置であり、動画ファイル自体ではありません。両者は異なる場合があります。これは、アニメーションのタイムラインに合わせるため、シーケンサー内で動画トラックを移動できるためです。
トラッキングデータ
記録時に.xdataファイルが作成されます。このファイルには、カメラレンズデータを含むすべてのトラッキングデータが含まれます。Camera Calibratorで作成されたAximmetryレンズファイルを使用した場合、.xdataには各フレームの最終計算されたFOV、レンズ歪みなどのデータが含まれます。これにより、再生時に記録時と同じ結果が確実に表示されます。
ただし、生のズーム/フォーカス/絞りエンコーダーの位置も記録されます。これにより、素材を録画した後でもレンズのキャリブレーションを改善/調整する自由があります。再生時に改善されたまたは異なるレンズファイルを使用するには、INPUT# パネルで off External Lens Data をオフにし、Calibration Profile パラメーターまでスクロールして変更したレンズファイルを指定します。
オーバーライドモードを使用すると、記録されたレンズデータを上書きできます。オーバーライドズーム、オーバーライドフォーカス、またはオーバーライドアパーチャパラメーターのいずれかをオンにすると、ズーム、フォーカス、またはアパーチャの値を手動で調整できます。
オフラインレンダリング
先ほど説明したように、Aximmetryでオフラインレンダリングを行うことができます。これは、シーンがワークステーションでリアルタイムレンダリング時にfpsが低下するほど複雑な場合に必要です。オフラインレンダリングは通常、シーンを最も詳細な形式で、希望のフレームレートでレンダリングするように設計されているため、時間がかかります。
これを行うには、まず上記に基づいて再生を準備します。
次に、Flow Editorにビデオレコーダーモジュールを配置し、カメラコンパウンドの出力をそのビデオピンに接続します。次に、Sequencerのレンダリング出力ピンをVideo RecorderのRecordingピンに接続します。これにより、シーケンサーのRenderボタンをクリックした際にレコーダーが録画を開始します。
これがシーケンサーのRenderボタンです
シーケンサーのレンダリング機能を使用することをおすすめします。これにより、シーケンサーとビデオプレーヤーを別々に制御できます。
Renderボタンをクリックすると、シーケンサーがシーケンス全体を再生し、終了時に停止します。
同時に、Render出力は論理『1』にジャンプし、Video RecorderのRecording入力の値を『1』に切り替えます。これにより、録画が開始されます。シーケンスの終了時、Render出力ピンの値は『0』に戻り、Recording入力の値も『0』に切り替わり、録画が停止します。
次のステップは、Video Recorderモジュールでレンダリングのフレームレートを設定することです。
Video Recorderのピン値で、Frame Rateピンを見つけ、希望の動画フレームレートを設定します:
NOTE: デフォルトのFrame Rateピン値はRealtimeです。Realtime設定では、レコーダーはレンダリングFrame Rateに準拠します。
オフラインレンダリングでは、リアルタイム値ではなく特定のフレームレートを選択する必要があります。特定のフレームレートは、Aximmetryが動画用に可能な限り高速にフレームを生成できるようにします。
シーケンサー内のレンダリングボタンをクリックします。
Aximmetryは指定したフレームレートでシーンをレンダリングします。実際のフレームが計算されるまで待機し、次にジャンプします。そのため、オフラインレンダリングはライブレンダリングよりも時間がかかる場合があります。
ダブルサンプリング
例えば、1080pの動画出力を必要とし、最高品質を付与したい場合、ダブルサンプリングを使用できます。これは例であり、任意の解像度を設定可能です。
これは、Aximmetryのレンダリング解像度を必要な解像度の2倍に設定することを意味します。この例ではUHDです。
レンダリング解像度を設定するには、編集メニューから設定を選択します。
PreferencesでRenderingを選択し、Frame SizeのドロップダウンメニューからUHDを選択します
これでAximmetryはシーンをUHDでレンダリングします
コンパウンドにビデオレコーダーを配置します。シーケンサーのレンダリングピンとビデオレコーダーのレコーディングピンをワイヤーで接続します。
ビデオレコーダーのピン値でKeep in sizeをオフにし、録画用のフレームサイズを設定します。例では1920と1080です
シーケンサーのレンダリングボタンをクリックすると、ビデオレコーダーがUHDレンダリングされたシーンのダウンスケール版を録画開始します。ソースの高品質のため、レコーダーのサンプリングにより、より高品質な1080p動画が得られます。
最終コンポジット録画
このシナリオでは、通常最終画像の録画に使用する Record_* コンパウンドにトラッキングデータ録画機能が追加されます。
このコンパウンドのパスは:[Common_Studio]:Compounds\Record\Record_3-Audio.xcomp
複数の入力から同時にオーディオを受信する場合、Cam Audio 2, 3 ピンも接続してください。
Record コンパウンドの一般的な使用方法については、この ドキュメント を参照してください。
Record Dataピンを接続することを忘れないでください。このピンには、記録されるトラッキングデータその他の情報が含まれます。
トラッキング
デフォルトでは、コンパウンドは動画と音声のみを記録します。トラッキングデータも記録するには、TRACKINGパネルをオンにします:
このTRACKINGパネルでは、Focus Scaleを指定できます。FBX形式では、フォーカス距離の記録に使う単位が定義されていません。デフォルト値の100は、Aximmetryのフォーカス距離(メートル単位)を100倍してセンチメートルに変換します(これはUnreal Engineで使用されるメトリック スケールです)。例えば、Aximmetryのフォーカス距離が1メートルの場合、エクスポートされたFBXではUnreal Engineとの互換性のため100センチメートルとして記録されます。
ASCII形式(テキストエディターで読み取れる形式)でFBXファイルを生成したい場合は、ASCIIパラメーターを使用してください。デフォルト設定はバイナリで、よりコンパクトなファイルが生成されます。
Unreal Rotationを有効にすると、エクスポートされたFBXが水平方向に90度回転します。この回転は、ファイルをUnreal Engineにインポートする際必要です。
生成されたFBXファイルには、Aximmetryの出力画像と同じアスペクト比と視野角を持つアニメーション化されたフォーカスと焦点距離を持つカメラオブジェクトが含まれます。
重要:FBXファイルの生成のみが可能です。Aximmetry内で直接編集することはできません。
カメラの絞り
FBXファイル形式は、アニメーション化された絞りプロパティをネイティブでサポートしていません。代わりに、Record_3-Audio コンパウンドはカスタム FBX プロパティを使用して絞り値を保存します。このカスタムプロパティは「Aperture」と名付けられています。
Unreal Engine で記録された絞り値を使用するには、次の手順に従ってください:
- Unreal Engine で、編集 → プロジェクト設定 を選択します。
- エディター → レベルシーケンスに移動します。
- FBX 設定行の プラス記号 (+) をクリックして新しいインデックスを追加します。
- この新しいインデックスで、以下のフィールドを設定します:
- FBX プロパティ名: Aperture
- コンポーネント名: CameraComponent
- プロパティ名: CurrentAperture
これらのプロパティパスは、FBX ファイル内の絞り値の位置と、Unreal Engine の CineCamera 内の位置を定義します。これらの変更を加えた後、Unreal Editor の Sequencer で FBX を開くと、指定したパスにインポートされたアニメーション化された絞り値が表示されます。CineCameraは自動的にその絞り値を使用します。
レンズ歪み
レンズ歪みデータはFBXファイル形式に直接記録できません。理論上は、Tracking Recorderモジュールのカスタムプロップピンを使用して一部のレンズデータを記録できますが、STMapの動画または画像を使用する方が一般的です。
STMapを記録するには、[Common]:Compounds\Utilities\STMap_Generator.xcompコンパウンドを使用します。このコンパウンドはVideo Recorderモジュールと組み合わせて使用できます。カメラコンパウンドのレンズ歪みデータを抽出するには、Record DataコレクションピンとCollection Vectorモジュールを組み合わせて使用し、そのKeyピンをLens Distortionに設定します:
タイムコード
最終的な合成動画フレームと対応するトラッキングデータフレームのペアリングはタイムコードに基づいて行われます。したがって、現在のシステムフレームレートと互換性のあるタイムコードをシステムに提供することが必須です。
トラッキングデータは、複数のカメラアニメーションカーブ形式でFBXファイルに記録されます。カーブキーのタイムスタンプはフレームのタイムコードに対応します。
個別のタイムコードを使用する
デフォルトでは、各記録には記録開始時に0から始まる独自のタイムコードが割り当てられます。これは同期を提供する最も簡単な方法です。
システムマスタータイムコードを使用する
Aximmetryには、Composerを起動した際に0から始まる独自の内部タイムコードが搭載されています。このタイムコードを使用することで、異なるテイクの記録を区別できます。使用するには、RECORDERコントロールパネルのMaster TCをオンにします:
入力タイムコードの使用
カメラ自体からSDI経由で提供されるタイムコードを使用したい場合があります。これはカメラの内部で実行中のタイムコードか、カメラに接続された中央のタイムコードジェネレーターから取得したタイムコードのいずれかです。
最終的なコンポジットには複数のカメラ入力間のカットが含まれる場合があります。ただし、タイムコードのソースは一貫している必要があり、どのカメラ入力のタイムコードを使用するかを決定する必要があります。次に、その単一の入力に対してTimecode Masterを有効にします:
このオプションを選択すると、Aximmetryの内部Master Timecodeがカメラ入力から入力されるタイムコードで上書きされます。つまり、カメラのタイムコードがAximmetryのMaster Timecodeとなります。以前に説明したMaster TCオプションと組み合わせることで、カメラのタイムコードが最終記録に反映されます。
録画
RECORDER パネルのプロパティを使用して、出力ビデオ形式を通常通り設定します。その後、録画ボタンを使用して録画の開始と停止を行います。
タイムインジケーターはプレビュー画面の右側に表示され、入力録画のものと区別されます。
VirtualCamとの併用
この録画機能は、任意のVirtualCam コンパウンドとも連携して機能します。この場合、FBXにはアニメーション化されたバーチャルカメラの位置情報が含まれます。
組み合わせ使用
入力録画と最終合成録画機能は、互いに独立して任意の組み合わせで使用できます。
例:両方の録画を同時に開始できます。
より便利な点は、事前録画した入力を再生しながら、追跡データと共に最終出力を録画し、後処理に活用できる点です。