UDN
Search public documentation:

FullScreenMovieJP
English Translation
中国翻译
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

UE3 ホーム > Matinee とシネマティック > フルスクリーン ムービー (FMV)


フルスクリーン ムービー (FMV)


概要


UE3 では、ムービープレイバックの方法が 2 つあります。マテリアルを伴った MovieTexture リソースを使用するか、フルスクリーン ムービープレイヤを使用するかです。本書では、フルスクリーン ムービープレイヤの機構について解説していきます。

新しいムービーファイルの作成


ムービーの Bink フォーマットへの変換や、現在使用可能なエンコーディングオプションのリストについては、Rad Game Tools 社(http://radgametools.com/) により提供された文書をご覧ください。

ムービーファイルの再生

プレイバック用のムービーファイルを開くには、いくつか方法があります。ディスクから直接ストリームしたり、最初に再生時、メモリにプリロードしたり、ムービーストリームがロードされているユーザー提供のメモリを使用するかです。

ムービープレイバックのテストを行う際、ムービーファイルを使用したあらゆるプラットフォームにおいて、実行コマンド「MOVIETEST 」が使用できます。この実行は、戻る前に、要求したムービーが終了するまでゲームスレッドを妨げることに注意してください。

コードからムービーをプレイバックするため、グローバルフルスクリーン ムービープレイヤ (GFullScreenMovie) を使用することができます。このグローバルとその関数は、メインゲームスレッドからのみアクセスできます。

GameThreadPlayMovie (ゲームスレッドプレイヤムービー)- この関数は、与えられたファイル名からムービーのプレイバックを開始するのみ使用されます。プレイバックの方法は下記のオプションのどれか 1 つになります。

名前 解説
MM_LoopFromStream ディスクからストリームとループをする。最小メモリ量使用。
MM_PlayOnceFromStream ディスクからストリームをする。最小メモリ量使用。
MM_LoopFromMemory RAM にムービーをロードし、そこからループする。
MM_PlayOnceFromMemory RAM にムービーをロードし、一度再生する。
MM_LoopFromSuppliedMemory 以前にロードしたバッファからループする。
MM_PlayOnceFromSuppliedMemory 以前にロードしたバッファから一度再生する。

ムービーのループを指定すると、ムービーストリームの最初のフレームからプレイバックが開始し、ムービーを停止するまで再生し続けます。ムービーのプレイバックを開始後、必ず、GameThreadStopMovie を呼び出してください。

GameThreadIsMoviePlaying - ムービーが現在再生されているかチェックする関数です。

GameThreadGetLastMovieName - この関数は、最後に再生された最近のムービーに返します。

再生中やブロックされているムービーの停止


GameThreadStopMovie - GameThreadPlayMovie を呼び出した後、必ずこの関数を呼び出してください。これは、現在再生中のムービーを中止し、ムービーのプレイバック用に作成されたビューポートを削除します。

GameThreadWaitForMovie - この関数を呼び出すことは、ムービーのプレイバックが終了するまで、ゲームスレッドをブロックする原因になります。ループ中のムービーにこれを行うと、永久にブロックしてしまいますのでご注意ください。

GameThreadIsMovieFinished - この関数では、レンダリングスレッド上でムービーが再生されているかをチェックすることができます。

コンフィギュレーション設定


Game\Config\DefaultEngine.ini ファイルの [FullScreenMovie] セクションで設定できる複数のオプションがあります。

  • "+StartupMovies=MovieName" - スタートアップのムービーのリストに MovieName を追加します。スタートアップのムービーは、全編が終了するまで、順番に再生されます。起動シーケンスを再生することによって、ゲームスレッド上で実行されている初期ロードを目立たなくさせることができます。リスト中の最後のムービーは、ループムービーのために取っておかれます。ループムービーはエンジンが起動するために必要な時間再生し続けることができます。エンジンが、最後のムービーより前にあるムービーの再生が終了するまでに起動した場合は、ループムービーはまったく再生されません。
  • "+AlwaysLoadedMovies=MovieName" - 最初のプレイバック後にメモリに駐在するムービーリストに MovieName を追加します。これは、一般的にレベル遷移中に常に必要とされるムービーのロードに役立ちます。
  • "+SkippableMovies=MovieName" - スキップされるムービーのリストに MovieName を追加します。特定のボタンが検出されたり、手動でムービーを中止しようとすると、スキップが発生します。エンジンが起動完了した後にムービー (複数可) をスキップするのに役立ちます。 (エンジンが起動中の場合は、ムービーをスキップしても何も起こりません。)
  • "+LoadMapMovies=MovieName" - ブロック中のマップがロードされる間に再生する目的で UGameEngine::LoadMap の起動時にランダムに選択されたムービーの配列です。
  • "bShouldStopMovieAtEndOfLoadMap" - TRUE の場合は、ブロック中のマップのロードが (UGameEngine::LoadMap を通じて) 完了したときに、エンジンが StopMovie() を呼び出します。FALSE の場合は、再生中のあらゆるムービーを手動で停止する必要があります。( LoadMap が完了した後に長い処理を行わなければならないときに役立ちます。)
  • "bForceNoMovies" - TRUE の場合は、ムービーが一切再生されません。

ムービープレイバックの詳細


すべてのムービープレイバックは、レンダリングスレッドで行われます。レンダリングスレッドが存在しない、またはプレイバックが中止されてる場合は、ムービープレイバックが開始/終了時、フルスクリーン ムービープレイヤが手動でレンダリングスレッドを/中止します。 フルスクリーン ムービープレイヤは、レンダリングスレッドの 「Tick」(ティック) 可能なオブジェクトですが、ムービーが開かれて再生されている時のみ「tick」されます。

新しいビューポートウィンドウがムービープレイバック用に作成され、ムービーを中止時に破棄されます。これは、エベントの入力を正しく行うため必要とされています。

最初のムービーを再生時、YUV->RGB 変換シェーダ同様にデコードされた内部 bink 形式の テクスチャが作成されます。これは、MovieTexture リソースのプレイバックに使用された実装と同じです。