このセクションでは、Video Player コンポーネントで使用可能なさまざまな時間更新モードと相互作用について説明します。
Video Player コンポーネントでは、ビデオ再生の時間調整方法を他の相互作用動作と相対的に制御できます。例えば、ビデオ再生をアニメーションやオーディオと同期できます。それには以下の時間更新モードを使用します。
Video Player は Unity のキャプチャフレームレート (Time.captureFramerate) とキャプチャデルタタイム (Time.captureDeltaTime) に従います。
キャプチャフレームレートを指定すると、Video Player は同期再生になります。つまり、ゲーム全体の実行に遅延が生じても、Video Player はすべてのフレームを想定されたタイムスタンプで表示します。キャプチャフレームレートのもう 1 つの利点は、準備操作とシーク操作もブロックされ、一貫性のある正確な結果が得られることです。ただし、これによってゲームの実行が遅くなることがあります。特に、ビデオとシーンの他の部分との同期を保つ必要があるときには、遅延が生じることがあります。例えば、Unity Recorder はこの特別な時間調整動作によって滑らかな録画を実現します。
キャプチャフレームレートは、Game Time にのみ影響します。キャプチャフレームレートの使用中に、Unscaled Game Time またはオーディオ DSP クロックを使用する Video Player は、キャプチャフレームレートを無視して、非同期再生を使用します。つまり、Video Player は必要に応じてフレームをスキップしたり繰り返したりします。準備タスクまたはシークタスクが非同期で再生のブロックを防ぎます。ただし、これが発生するのは、Video Player の時間更新モードとして Game Time を選択した場合に限られます。
注意ウェブプラットフォームでは、Unity の Video Player は captureFramerate での同期再生をサポートしていません。デフォルトでは、通常の非同期再生が使用されます。これは Game Time 更新モードのセクションで説明されています。
オーディオ DSP クロックは Audio モジュールから供給されます。これには AudioSettings.dspTime でアクセスできます。
Game Time は Time モジュールで設定します。C# を使用して Time.time でアクセスできます。Game Time は、Scaled Game Time とも呼ばれます。Game Time を使用する場合、Unity は Time ウィンドウで設定された Time Scale 値に従います。C# を使用して Time.timeScale で Time Scale 値を変更することもできます。ただし、キャプチャフレームレートまたはキャプチャデルタタイムがゼロではない値の場合は、Time Manager のキャプチャフレームレート機能を管理するルールに従って、Game Time は変化します。
注意キャプチャデルタタイムは、1 をキャプチャフレームレートで割ることと同じです。これは同じ情報の別のビューです。
Unscaled Game Time を使用すると、Video Player は Time Scale 値を無視します。Unscaled Game Time は Time モジュールから供給されます。C# を使用して Time.unscaledTime でアクセスできます。