UDN
Search public documentation:

FullScreenMovieApple_iOSJP
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 ホーム > モバイル用ホーム > iOS におけるフルスクリーン ムービー

iOS におけるフルスクリーン ムービー


概要


フルスクリーン ムービーの再生機能は iOSに内蔵されています。この API を利用することによってフルスクリーン ムービーを操作することになります。(主に、ロードを隠すために使用されます)。「Unreal Engine 3」における、プラットフォームに依存しないフルスクリーンムービーの情報については、 フルスクリーン ムービー (FMV) を参照してください。iOS 固有の情報 (たとえばムービー形式など) については、以下をご覧ください。

また、ムービーの代わりに静止画像を使用することができます。(静止画像を組み合わせることも可能です)。

コンテンツの作成


このセクションでは、ムービーと画像の作成について説明するとともに、指定方法についても解説します。

ムービー

iOS では複数の形式のムービーがサポートされています。ただし、今回はムービーすべてが .m4v の拡張子をともなった M4V であることを想定して解説します。

ムービーのサイズは、ほとんどどのようなサイズでも可能です。(ムービーは再生機能によってスクリーンに合ったサイズまでズームアップされます。その際アスペクト比が維持されるため余計な部分は黒く塗られることになります)。480 x 320 のサイズ (ランドスケープのアプリケーション用) または 320 x 480 (ポートレート用) が標準的です。これは最も小さい形式のスクリーン サイズに該当します。iPad 上でズームアップされた場合は、通常きれいに表示されます。

画像

コードがムービーを再生できない場合は、(その原因が、ムービーが存在しないためであっても、あるいは OS のバージョンが 3.1.3 かそれ以前のものであるためであっても)、指定されたムービーと同じ名前の .png ファイルをコードは探そうとします。

ムービー同様、画像の場合もサイズは任意ですが、たいていの場合、ターゲットとしているスクリーンの解像度に適合します。同一の名前に基づいて、3 個の異なる画像を作ることが可能です。これらの画像は、ゲームが動いているデバイスに応じて適宜選択されることになります。たとえばムービーの名前が Loading だとすると、次のような 3 つのファイルを指定することができます。

  • IPadLoading.png - アプリケーションが iPad 上で動いている場合に選択されます。サイズは通常 1024 x 768 (ポートレートの場合は 768 x 1024) です。
  • Loading@2x.png - Retina ディスプレイが搭載されたデバイス (Phone 4、第4世代 iPod touch) 上で選択されます。サイズは通常 960 x 640 (ポートレートの場合は 640 x 960) です。
  • Loading.png - 上記以外の場合に使用されます。(上記のファイルが存在しない場合にも使用されます)。サイズは通常 480 x 320 (ポートレートの場合は 320 x 480) です。

また、小さな白い回転体 (UIActivityIndicatorView) が左下隅に表示されることによって、ゲームが動いている (ローディングされている) ことを示すものです。

指定方法


再生するムービーを指定する方法は 2 つあります。1 つは、Engine.ini ファイルの中の [FullScreenMovie] セクションで StartupMovies および LoadingMovies の行を利用するという方法です。もう 1 つは、コード内で MoviePlayer の各種関数を呼び出すという方法です。(関数と .ini / config の設定項目については、 フルスクリーン ムービー を参照してください)。iOS ムービーの再生は常にフラッシュメモリからストリームされます。したがって、AlwaysLoadedMovies の設定項目は無視されます。同様に、再生するムービーの場所を指定する MM_* フラグも無視されます。唯一サポートされているフラグは、ムービーをループさせるか否かを指定するものです。

画像が最終「ムービー」として表示される場合は、StartupMovies のセットにある最終ムービーと同様にゲームが起動するまで表示され続けます。なお、最終ムービーよりも 2 つ手前のムービーが再生終了する前にゲームが起動した場合は、最終ムービー / 画像は表示されません。

ファイル名の大文字 / 小文字に関する重要な情報

ムービー / 画像をロードする iOS の API はケースセンシティブです。したがって、ムービー名を指定する場合 (.ini ファイルやコード内で)、そこに含まれる大文字小文字が、ディスク上にあるファイルのそれと正確に一致していなければなりません。また、拡張子は .m4v または .png でなければいけません。(たとえば .PNG などではなく)。

特別な「起動」ムービー

OSは、アプリケーションがロードする前であっても Default.png を表示します。また、エンジンが .ini ファイルを読み込むまでは時間がかかります。そのため、iOS のムービープレイヤーは、エンジンが起動するとすぐに、Startup という名のムービー / 画像を再生しようとします。Startup という名のムービーがない場合は、通常の起動シーケンスが再生開始される前に一瞬停止してブラックスクリーンになります。

ムービーは早い段階で再生されるため、コマンドライン上で -nomovie を指定、あるいは、.ini ファイルで - bForceNoMovies を指定しても、iOS には影響を与えません。

画像の表示時間を指定する

画像自体には時間に関する情報が含まれないため、画像を表示する時間を制御するには .ini ファイルの設定項目を使用します。各画像のための表示時間か、あるいは、全画像のための全般的な表示時間を設定することが可能です。あるいは、デフォルトの 4 秒のままにしておくこともできます。

時間は次の順序で決定されていきます。(高い値が優先されます)。

  • Engine.ini ファイル内の [FullScreenMovie] セクションで SplashTime_XXX という名前のキーを探す。ただし、XXX は、拡張子を除いた画像の任意の名前を指す。
  • FullScreenMovie] セクションで DefaultSplashTime という名前のキーを探す。
  • 4 秒。

入力


エンジンがロードされて、ムービーが SkippableMovies のリストに入っている場合は、ムービーのどの位置をクリックしてもムービーが停止します。起動シーケンスの再生中で、さらに再生するムービーがある場合は (ただし最終のループムービーを除く)、次のムービーが起動します。

技術上の情報


Bink のムービープレイヤーとは異なり、iOS のムービープレイヤーは、レンダリングのスレッドではなく (ゲームスレッドでもなく) メインスレッドで動作します。メインの OS スレッドは、あらゆる UIKit の機能が動作するスレッドです。(警告の表示、Game Center UI の呼び出しなど)。通常、メインスレッドは待機状態であるため、ムービーは非常に素早く起動します。

iOS ではテキストのオーバーレイ表示が機能します (スクリプトコード内の AddTextOverlay)。ただし、ゲームではムービーの上にレンダリングすることができません。(Bink のムービープレイヤーであれば、Canvas クラスを使用してムービー上に「Unreal Engine 3」の UFont オブジェクトをレンダリングします)。iOS のムービープレイヤーであれば、指定された UFont をクエリして最大文字高を求めてから、その値と指定された YScale を掛け合わせ、その値をポイントサイズとして使用することによって iOS のシステムフォントを生成します。CastleGame では (Epic の Citadel に含まれているレベルである CastleMap で使用されているように)、新たに追加された OnEngineLoaded スクリプトイベントを使用することによって、Start という文字をもつテキストのオーバーレイを追加しています。このオーバーレイによって、ユーザーはムービーをクリックすれば残りのムービーを省略してゲームを開始できるということが分かります。