Version: 2017.1
カスタムレンダーテクスチャ
3D テクスチャ

ムービーテクスチャ

Movie Textures は、ビデオファイルから作成され、アニメーション化された Texture です。プロジェクトの Assets フォルダー に動画ファイルを配置することによって、通常使用する 2D テクスチャとまったく同じように使用できるビデオをインポートすることができます。

動画ファイルは Apple 社の QuickTime を通してインポートします。サポートされるファイルの種類はインストールされた QuickTime を再生できるものと一致します (通常は .mov.mpg.mpeg.mp4.avi.asf)。Windows 上で動画をインポートするためには QuickTime がインストールされていることが必要です。こちら からダウンロードしてください。

プロパティー

Movie Textures Inspector は、通常の 2D テクスチャ Inspector と非常によく似ています。

動画ファイルは Unityでは、Movie Textures です
動画ファイルは Unityでは、Movie Textures です
プロパティー 説明
Aniso Level 急角度から見たときのテスクチャの品質を向上します。床や地面のテクスチャに適しています。
Filtering Mode 3D 座標で画面を引き伸ばすときのテクスチャのフィルタリング方法を選択します。
Loop 有効の場合、動画の再生が完了したときにループします。
Quality Ogg Theora 動画ファイルの圧縮。より高い値にすると品質は高くなりますが、ファイルサイズは大きくなります。

詳細

動画ファイルがプロジェクトに追加されると、自動的にインポートされ、Ogg Theora 形式に変換されます。いったん、ムービーテクスチャをインポートすると、通常の Texture のように、任意の GameObjectMaterial にアタッチできます。

ムービーを再生

ゲームの実行開始時に、ムービーテクスチャは自動再生されません。再生を指示するスクリプトを準備する必要があります。

// このコードによって、ムービーテクスチャを再生し始めます
((MovieTexture)GetComponent<Renderer>().material.mainTexture).Play();


スペースが押されたときに動画再生をプレイバックに切り替えるためには、次のスクリプトをアタッチします。

public class PlayMovieOnSpace : MonoBehaviour {
    void Update () {
        if (Input.GetButtonDown ("Jump")) {
            
            Renderer r = GetComponent&lt;Renderer&gt;();
            MovieTexture movie = (MovieTexture)r.material.mainTexture;
            
            if (movie.isPlaying) {
                movie.Pause();
            }
            else {
                movie.Play();
            }
        }
    }
}


ムービーテクスチャを再生する方法の詳細については、Movie Textures のスクリプトリファレンス を参照してください。

ムービーオーディオ

ムービーテクスチャをインポートすると、映像とともにオーディオトラックもインポートされます。このオーディオは、ムービーテクスチャの子 AudioClip として表示されます。

プロジェクトビューでムービーテクスチャの子として表示された動画のオーディオトラック
プロジェクトビューでムービーテクスチャの子として表示された動画のオーディオトラック

このオーディオを再生するには、他のオーディオクリップのように、オーディオクリップがゲームオブジェクトにアタッチされる必要があります。オーディオクリップをプロジェクトビューから、シーンビューかヒエラルキービューの任意のゲームオブジェクト上へドラッグします。通常、これはムービーに表示されるゲームオブジェクトと同じです。次に、audio.Play() を使ってムービーのオーディオトラックを動画と一緒に再生させます。

iOS

ムービーテクスチャは、iOS 上ではサポートされません。代わりに、Handheld.PlayFullScreenMovie を使用してフルスクリーンストリーミング再生が提供されます。

プロジェクトの Assets フォルダー内にある StreamingAssets フォルダーに動画を格納する必要があります。

iOS デバイス上で正しく再生できるファイルタイプは Unity の iOS でサポートされるため、拡張子 .mov.mp4.mpv.3gp を持つファイルや、以下の圧縮規格はサポートされます。

  • H.264 Baselineプロファイル レベル 3.0 動画
  • MPEG–4 Part 2 動画

サポートされている圧縮規格の詳細については、iPhone SDK を参照してください。MPMoviePlayerController クラスリファレンス を参照してください。

Handheld.PlayFullScreenMovie をコールすると、画面は現在のコンテンツから指定された背景色にフェードします。ムービーが再生できる状態になるまでに少し時間がかかるかもしれませんが、その間プレイヤーは、背景色とムービーが読み込み中である事をユーザーに知らせるインジケーターの表示を継続します。再生が終了すると、画面は元のコンテンツに戻るためにフェードバックします。

ビデオプレーヤーは、動画再生時のミュート切替は無視します

すでに説明したとおり、動画ファイルは Apple の埋め込みプレーヤーを使用して再生されます (SDK 3.2 や iPhone OS 3.1.2 およびそれ以前のバージョン)。このプレーヤーにはバグが含まれており、Unity ではミュートに切替えることができません。

ビデオプレーヤーは、デバイスの向きを無視します

Apple ビデオプレーヤーと iPhone SDK は動画の向きを調整する方法を提供していません。一般的なアプローチは、手動で各動画の複製を 2 つ、横向きや縦向きで作成することです。これにより、デバイスの向きがプレイバック前に決定され、正しい動画を選択して再生することができます。

Android

ムービーテクスチャは、Android 上ではサポートされません。代わりに、Handheld.PlayFullScreenMovie を使用してフルスクリーンストリーミング再生が提供されます。

プロジェクトの Assets フォルダー内にある StreamingAssets フォルダーに動画を格納する必要があります。

Unity Android は Android でサポートされているファイル形式 (例えば .mp4.3gp) をサポートしています。また、以下の圧縮形式をサポートしています。

  • H.263
  • H.264 AVC
  • MPEG–4 SP

しかしながら、デバイスベンダーによりこのリストのサポート範囲は拡大しており、いくつかの Android 端末では HD ビデオなど、このリストにない形式も再生することができます。

サポートされている圧縮規格の詳細については、Android SDK サポートされているメディア形式 を参照してください。

Handheld.PlayFullScreenMovie をコールすると、画面は現在のコンテンツから指定された背景色にフェードします。ムービーが再生できる状態になるまでに少し時間がかかるかもしれませんが、その間プレイヤーは、背景色とムービーが読み込み中である事をユーザーに知らせるインジケーターの表示を継続します。再生が終了すると、画面は元のコンテンツに戻るためにフェードバックします。

カスタムレンダーテクスチャ
3D テクスチャ