Version: 2021.1
言語: 日本語
カスタムレンダーテクスチャ
3D テクスチャ

ムービーテクスチャ

ノート: MovieTexture (ムービーテクスチャ) は Unity の将来のバージョンでは廃止、または非推奨となる予定です。動画のダウンロードと再生には、VideoPlayer を使用してください。

Movie Textures は、Unity がビデオファイルから作成するアニメーション化された テクスチャ です。

ムービーテクスチャを作成するには、ビデオファイルをプロジェクトの Assets Folder に置きます。Unity はこのビデオファイルを、通常の テクスチャ と同じように使用します。

Unityは、Apple QuickTime を使ってビデオファイルをインポートします。Windows の場合、ビデオファイルをインポートするには Quicktime をインストールする必要があります。Quicktime のダウンロードは、Apple Support Downloads から行ってください。Unity は、QuickTime のインストールと同じファイルタイプをサポートします (通常、.mov.mpg.mpeg.mp4.avi.asf)。

プロパティ

ムービーテクスチャの Inspector は、通常の テクスチャ Inspector とよく似ています。

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

詳細

プロジェクトにビデオファイルを追加すると、Unity は自動的にそれをインポートし、 Ogg Theora 形式に変換します。Unity がムービーテクスチャをインポートしたら、通常のテクスチャと同じように、 ゲームオブジェクトマテリアル にアタッチすることができます。

ムービーテクスチャの再生

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

// このコードによって、ムービーテクスチャを再生し始めます
((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 のスクリプトリファレンス を参照してください。

ムービーオーディオ

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

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

このオーディオを再生するには、オーディオクリップがゲームオブジェクトにアタッチされる必要があります。オーディオクリップをプロジェクトビューから、シーンビューかヒエラルキービューの任意のゲームオブジェクト上へドラッグします。通常、これはムービーに表示されるゲームオブジェクトと同じです。次に、AudioSource.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 をコールすると、画面は現在のコンテンツから指定された背景色にフェードします。ムービーが再生できる状態になるまでに少し時間がかかるかもしれませんが、その間プレーヤーは、背景色とムービーが読み込み中である事をユーザーに知らせるインジケーターの表示を継続します。再生が終了すると、画面は元のコンテンツに戻るためにフェードバックします。

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

Unity は、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 テクスチャ