げぇむぐる〜ぶ

2011-11-18

[]Unityでムービー再生

Unityでムービー再生するにはMovieTextureを使います。

Proバージョンのみの対応です。

取り敢えずローカルにあるファイル再生版でGUITextureに貼りつけてみました。

サポートされているファイルタイプは、QuickTimeが再生できるものに限られているらしい。(.mov, .mpg, .mpeg, .mp4, .avi, .asf)


ムービーファイルをプロジェクトに追加すると、自動的にインポートされOggTheoraフォーマットに変換されます。

今回はGUITextureに貼りつけるので、GUITextureのオブジェクトを作って、それに下記のスクリプト(ControlMovie.csとする)を適用します。


using UnityEngine;
using System.Collections;

public class ControlMovie : MonoBehaviour
{
  public MovieTexture movieTexture;

  void Start()
  {
    guiTexture.texture = movieTexture;
    movieTexture.Play();
  }

  void Update()
  {
    if (Input.GetButtonDown("Fire1")) {
      movieTexture.Pause();
    } else if (Input.GetButtonDown("Fire2")) {
      movieTexture.Play();
    }
  }
}

movieTextureには、先程インポートして変換されたムービーテクスチャをInspectorから選択。

ムービーテクスチャインポートした時に、オーディオトラックも一緒にインポートされてムービーテクスチャオーディオクリップ子要素となります。

このファイルをGameObjectに付加しておくと、MovieTexture.Play()呼んだ時に音声が一緒に再生されますし、MovieTexture.Stop()を呼んだ時は一緒に停止されます。


最初再生した時になんか元ソースより音が小さいなぁと思ったら、これが原因でした。

取り敢えず、Min Distanceをいじって回避。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

リンク元