Unreal Engine では、さまざまなデータ タイプを複数のソースから同時に取り込むことができます。例えば、バーチャル プロダクションでは SDI のカメラからキャプチャ済みのフレームを受け取ったり、Live Link を通じてトラッキング システムからカメラの位置および向きを受け取ったりすることができます。時間指定データ モニター (Timed Data Monitor) は、受信するこのような時間指定データ同士の関係性やエンジンの時間との関連性を設定・視覚化するためのソリューションです。
時間指定データ モニターで現在サポートされているソースは次のとおりです。
時間指定データ モニターの機能を拡張し、コードを通じて他の時間指定データ ソースを含めることも可能です。時間指定データ モニターでカスタム データ ソースを登録するには TimedDataSource フレームワークを使用します。
以下のセクションでは、時間指定データ モニターの使用とプロジェクト向けに変更可能な設定について説明します。
時間指定データ モニターを使用する
以下は、プロジェクトで時間指定データ モニターを使用するための手順です。
-
エディタのメイン メニューから [Edit (編集)] > [Plugins (プラグイン)] を選択し、[Plugins (プラグイン)] ウィンドウを開きます。
-
[Plugins (プラグイン)] ウィンドウで、 [Virtual Production (バーチャル プロダクション)] カテゴリの Timed Data Monitor プラグインを見つけます。
-
[Enabled (有効)] チェックボックスにチェックを入れます。
-
表示されるダイアログで [Yes (はい)] をクリックします。
-
プロンプトが表示されたらエディタを再起動します。
-
エディタのメイン メニューから [Window (ウィンドウ)] > [Developer Tools (デベロッパー ツール)] > [Timed Data Monitor (時間指定モニター)] を選択し、 [Timed Data Monitor] ウィンドウを開きます。
タイムコードとゲンロック
時間指定データ モニターの画面上部には、プロジェクトで使用されている CustomTimestep と TimecodeProvider が表示されます。TimecodeProvider のオフセット値を、別のウィンドウに切り替えることなく設定することも可能です。

SDI の入力については、これらの設定により、開かれているストリームの設定も変更されます。入力を開く際に使用した MediaSource アセット自体は変更されません。各設定をバランス良く組み合わせている場合は、関連するアセットの変更を検討してください。
ソースとチャンネル

Unreal Engine で Timed Data Monitor プラグインが有効になると、プロジェクト内で TimedDataSource フレームワークを使用するすべての Live Link、SDI、またはカスタム ソースが自動的にツール内に表示されます。それぞれのソースには複数のチャンネルを含めることができ、ソース名の前にある矢印をクリックすることでこれらのチャンネルを表示できます。次の表では、それぞれのソースについて UI で表示される情報について説明します。
列 | 説明 |
---|---|
有効/無効の切り替えスイッチ | 有効な場合は当該チャンネルが較正時に含まれ、モニターで報告されるグローバル ステータスに影響を与えます。 |
[Name (名前)] | ソースの名前の左側には次の UI 項目が表示されます。
|
[Last Sample Time (最後のサンプル時間)] | 最も最近のサンプルのタイムコード。 |
[Eval. (評価)] | 入力の評価方法を指定します。評価のタイプは次のとおりです。
|
[Time Correction (時間補正)] | 特定のソースの時間をより細かく調整することができます。これは、キャリブレーション (較正) プロセスによってソースのアライメント ポイントが検出されても、これらが取り除かれていない可能性がある場合に便利です。 |
[Buffer Size (バッファ サイズ)] | 当該ソースのバッファのサイズを設定します。2 つのソース間に過度なオフセットが存在する場合は、これを使用して、適度なアライメントになるよう、いずれかのソースでより多くのデータをバッファさせることができます。 |
[B.U.] | 検出されたバッファ アンダーフロー数。 |
[B.O.] | 検出されたバッファ オーバーフロー数。 |
[F.D.] | 検出されたフレーム ドロップ数。 |
[Timing Diagram (タイミング図)] | 評価時間を垂直のラインで示します。このラインは、バッファ内の場合は緑色で、使用可能なサンプル外の場合は赤色で示されます。 |
バッファ ビジュアライザ
バッファ ビジュアライザ (Buffer Visualizer) では、すべてのチャンネルを視覚化した図が別のウィンドウで表示されます。このウィンドウには、各チャンネルの [Timing Diagram] 列で示されるものよりも大規模で包括的なビューが表示されます。

それぞれのバッファは次の UI 要素で表されます。
-
垂直ライン: 評価時間を表します。このラインは、バッファ内の場合は緑色で、使用可能なサンプル外の場合は赤色で示されます。
-
ライトグレー色の矩形: チャンネルで使用可能な現在の時間指定サンプルを表します。
-
ダークグレー色の矩形: チャンネルで使用可能な時間指定サンプルの平均を表します。
-
白色の矩形: 使用可能な最も古い時間指定サンプルと最新の時間指定サンプル間の標準偏差を表します。
この白色の矩形が大きいほど、サンプルのバッファ内により多くのバリエーションまたはジッターが存在します。より多くのバリエーションがある場合は、サンプルを常に希望した時間で評価できるよう、評価時間と使用可能な最新のサンプル間により多くのバッファを許可する必要があります。
時間指定データ モニターで バッファ ビジュアライザ を開くには、次の手順に従います。
-
[Timed Data Monitor] ウィンドウ上部の [Open a buffer visualizer (バッファ ビジュアライザを開きます)] ボタンをクリックします。
キャリブレーション


時間指定データ モニターには、有効なすべてのソースを較正してアライメント ポイントを探る機能が備わっています。キャリブレーションは、時間指定データ モニターの UI または ブループリント を介して開始できます。
キャリブレーション中には時間指定データ モニターによって TimecodeProvider のグローバル オフセットとソースのバッファ サイズが変更されるため、すべてのチャンネルのサンプルが評価時間の範囲内に収まります。デフォルトでは、常に適切にアライメントされることを示す統計的保証のあるスポットの検出に、時間差の標準偏差が使用されます。このアルゴリズムは [Project Settings (プロジェクト設定)] から変更できます。
キャリブレーション例
このビデオでは複数の Live Link ソースが接続されていますがアライメントされていません。ビューポートでは、それぞれのアクタが同期されていないことがわかります。[Buffer Visualization (バッファ ビジュアリゼーション)] ウィンドウには、開始が早すぎるサンプルや、評価時間を含むもの、開始が遅すぎるものを含むソースなど、適切にアライメントされていないものがあります。また、ソース LLTS.5 の一つには、他のものよりも少量のバッファが割り当てられています。
キャリブレーション プロセスを開始すると、アルゴリズムによって次のように処理されます。
-
その LLTS.5 バッファのサイズを増加して他のサンプルと揃える。
-
TimecodeProvider のグローバル オフセットを変更してすべてのソースを揃える。LTTS.0 は評価ポイントから最も遠いものであったため、ここで指定されるオフセットは、LTTS.0 を他のサンプルと揃えるための必要最小限の値になります。
キャリブレーションが完了すると、すべてのバッファが評価時間の範囲内に収まり、すべてのアクタが同期された状態になります。
時間指定データ モニターの状態
時間指定データ モニターの画面左上隅には、受信データのグローバルな状態とエンジンの時間との関連性が表示されています。それぞれの状態は次のとおりです。
ステータス | 説明 |
---|---|
Disabled (使用不可) | 入力が存在しないか、すべての入力が無効になっています。 |
Synchronized (同期化済み) | すべての有効な入力に評価時間に一致するサンプルが含まれています。 |
Outside Range (外部範囲) | 評価時間に一致するサンプルを含まない入力が 1 つまたは複数存在します。 |
No Samples (サンプルなし) | 入力に現在使用可能なサンプルが含まれていません。 |
次の例では、各ソースがモニターのグローバルな状態にどのように影響を及ぼすかが示されています。例には 2 つの Live Link ソースが含まています。
-
最初のソースの [Time Correction] は -0.1 に設定されています。これにより、 [Timing Diagram] の赤色の垂直ラインで示されているとおり、このソースがエンジンの時間と同期されていない状態になります。
-
2 番目のソースの [Time Correction] は 0.1 に設定されています。これにより、 [Timing Diagram] の緑色の垂直ラインで示されているとおり、このソースがエンジンの時間と同期されている状態になります。
両方のソースを有効にした場合は、最初のソースがエンジンの時間と同期していないため、グローバルな状態が [Outside Range] になります。最初のソースを無効にすると、2 番目のソースはエンジンの時間と同期されているため、グロバールな状態が [Synchronized] に変わります。


プラグイン設定のリファレンス
[Plugin] 設定には、キャリブレーション プロセスと時間指定データ モニターの機能を全般的にカスタマイズするための設定項目が多数用意されています。次の表では、すべての設定項目と、ツール内の機能に対する影響について説明します。

キャリブレーション
パラメータ | 説明 |
---|---|
Calibration Settings | |
Number of Retries | すべての入力のアライメントを検出するために、キャリブレーション アルゴリズムが実行される回数を指定します。 |
Buffer Resize Allowed | 有効にすると、キャリブレーション アルゴリズムで 1 つまたは複数の入力のバッファ サイズを増加できます。 |
Buffer Shrink Allowed | 有効にすると、キャリブレーション アルゴリズムで 1 つまたは複数の入力のバッファ サイズを低減できます。 |
Failed if Buffer Cant be Resize | 有効にすると、バッファ サイズを変更できなかった場合にキャリブレーション プロセスが失敗します。例えば、バッファ サイズが大きくなり過ぎた場合に、サイズ変更を失敗させることができます。 |
Use Standard Deviation | 入力に評価時間範囲内のサンプルがあるかどうかを判断する際に、標準偏差統計を使用します。 |
Number of Standard Deviation | 範囲内のサンプルを判断する際に考慮する標準偏差の数を指定します。 |
Reset Statistics Before Using Standard Deviation | キャリブレーションを行う前に統計情報のリセットを許可します。 |
Amount Of Seconds to Wait After Statistic Reset | リセット後に統計情報を安定させるための待機時間です。 |
Time Correction Settings | |
Buffer Resize Allowed | バッファ サイズが大き過ぎると判断された場合に、時間補正アルゴリズムで 1 つまたは複数の入力のバッファ サイズを変更できます。 |
Buffer Shrink Allowed | バッファ サイズが大き過ぎると判断された場合に、時間補正アルゴリズムで 1 つまたは複数の入力のバッファ サイズを低減できます。 |
Failed If Buffer Cant be Resize | バッファ サイズを変更できなかった場合に (バッファ サイズが大き過ぎる場合など)、時間補正プロセスを失敗させます。 |
Number of Standard Deviation | 使用する標準偏差の数を指定します。 |
UI
パラメータ | 説明 |
---|---|
Refresh Rate | UI を更新する間隔です。 |
Reset | |
Reset Buffer Stat Enabled | UI のリセット ボタンをクリックした際に、バッファの統計情報をデフォルトでリセットします。 |
Clear Message Enabled | UI のリセット ボタンをクリックした際に、ログ メッセージをデフォルトでクリアします。 |
Reset Evaluation Time Enabled | UI のリセット ボタンをクリックした際に、ログ メッセージをデフォルトでクリアします。 |