ノート: 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 とよく似ています。
プロパティ | 機能 |
---|---|
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<Renderer>();
MovieTexture movie = (MovieTexture)r.material.mainTexture;
if (movie.isPlaying) {
movie.Pause();
}
else {
movie.Play();
}
}
}
}
ムービーテクスチャを再生する方法の詳細については、Movie Textures のスクリプトリファレンス を参照してください。
ムービーテクスチャをインポートすると、Unity は付随するオーディオトラックもインポートします。このオーディオは、Movie Texture の子 AudioClip として表示されます。
このオーディオを再生するには、オーディオクリップがゲームオブジェクトにアタッチされる必要があります。オーディオクリップをプロジェクトビューから、シーンビューかヒエラルキービューの任意のゲームオブジェクト上へドラッグします。通常、これはムービーに表示されるゲームオブジェクトと同じです。次に、AudioSource.Play() を使ってムービーのオーディオトラックを動画と一緒に再生させます。
ムービーテクスチャは、iOS 上ではサポートされません。代わりに、Handheld.PlayFullScreenMovie を使用してフルスクリーンストリーミング再生が提供されます。
動画は、プロジェクトの Assets フォルダーの中の StreamingAssets フォルダーに置いてください。
iOS デバイス上で正しく再生できるファイルタイプは Unity の iOS でサポートされるため、拡張子 .mov、.mp4、.mpv、.3gp を持つファイルや、以下の圧縮規格はサポートされます。
サポートされている圧縮規格の詳細については、iPhone SDK を参照してください。MPMoviePlayerController クラスリファレンス を参照してください。
Handheld.PlayFullScreenMovie をコールすると、画面は現在のコンテンツから指定された背景色にフェードします。ムービーが再生できる状態になるまでに少し時間がかかるかもしれませんが、その間プレーヤーは、背景色とムービーが読み込み中である事をユーザーに知らせるインジケーターの表示を継続します。再生が終了すると、画面は元のコンテンツに戻るためにフェードバックします。
Unity は、Apple の埋め込みプレーヤーを使用してビデオファイルを再生します (SDK 3.2 や iPhone OS 3.1.2 およびそれ以前のバージョン)。このプレーヤーにはバグが含まれており、Unity ではミュートに切替えることができません。
Apple ビデオプレーヤーと iPhone SDK は動画の向きを調整する方法を提供していません。これを解決するには、手動で各動画の複製を 2 つ、横向きや縦向きで作成することです。これにより、デバイスの向きがプレイバック前に決定され、正しい動画を選択して再生することができます。
ムービーテクスチャは、Android 上ではサポートされません。代わりに、Handheld.PlayFullScreenMovie を使用してフルスクリーンストリーミング再生が提供されます。
動画は、プロジェクトの Assets フォルダーの中の StreamingAssets フォルダーに置いてください。
Unity Android は Android でサポートされているファイル形式 (例えば .mp4、.3gp) をサポートしています。また、以下の圧縮形式をサポートしています。
しかしながら、デバイスベンダーによりこのリストのサポート範囲は拡大しており、いくつかの Android 端末では HD ビデオなど、このリストにない形式も再生することができます。
サポートされている圧縮規格の詳細については、Android SDK サポートされているメディア形式 を参照してください。
Handheld.PlayFullScreenMovie をコールすると、画面は現在のコンテンツから指定された背景色にフェードします。ムービーが再生できる状態になるまでに少し時間がかかるかもしれませんが、その間プレーヤーは、背景色とムービーが読み込み中である事をユーザーに知らせるインジケーターの表示を継続します。再生が終了すると、画面は元のコンテンツに戻るためにフェードバックします。