この投稿の続きです。前回はBlenderで全天球モデルの作成をしました。
今回は、Unityでこのモデルを使ったハコスコアプリを作りたいと思います。
全天球モデルの内側にムービーテクスチャを貼って、ジャイロに合わせてカメラを動かすだけです。
ムービーテクスチャについて
Unity5からムービーテクスチャがPersonal Editionでも利用できるようになっています。
ただし、iOS/Androidに書き出すことはできません。
(Unity - マニュアル:ムービーテクスチャ)
このため、今回はMobile Movie Textureというアセットを使いました。
Mobile Movie TextureをAssetStoreから購入します。(2015/7/9時点で$75)
その後、プロジェクトへインポートしてください。
Mobile Movie Textureで扱うことができる動画形式はOgg Theora形式なので、
前回用意した動画を.mp4から.ogvに変換します。
$ ffmpeg2theora --soft-target -V 2000 --two-pass --first-pass pass.pass --optimize --noaudio -x 640 -y 360 sample.mp4
$ ffmpeg2theora --soft-target -V 2000 --two-pass --second-pass pass.pass --optimize --noaudio -x 640 -y 360 sample.mp4
変換した動画ファイルは、/Assets/StreamingAssets/ 配下にインポートしてください。
この場所以外に配置すると動作しません。
全天球を配置する
カメラ位置を原点に合わせます。
これは、後で原点を中心とした全天球のオブジェクトを設置するのですが、
カメラが全天球の内側中心になるようにするためです。
前回作成した全天球モデルをAssetsにインポートし、
カメラが中心になるよう設置します。
画像中の「SkySphere」という名前のオブジェクトです。
動画をインポートする
準備した.ogvファイルをインポートします。
インポート先は「/Assets/StreamingAssets/」配下である必要があります。
今回はsample.ogvというファイルをインポートしました。
全天球にムービーテクスチャを設定する
まず、SkySphereにMovieマテリアルを設定します。
Movieマテリアルは「/Assets/MobileMovieTexture/Materials/Movie」です。
SkySphereを選択して表示されたInspectorにドラッグ&ドロップすればOKです。
次に、MovieManagerを作ります。
Hierarchyで右クリックしてCreate Emptyを選択するとGameObjectが作成されるので名前をMovieManagerに変更して、「/Assets/MobileMovieTexture/」にあるMobileMovieManagerスクリプトをMovieManagerオブジェクトにセットします。
最後に、MovieTextureを作ります。
Hierarchyで右クリックしてCreate Emptyを選択するとGameObjectが作成されるので名前をMovieTextureに変更して、「/Assets/MobileMovieTexture/」にあるMobileMovieTextureスクリプトをMovieTextureオブジェクトにセットします。
InspectorでMobileMovieTextureの各項目を以下のように設定します。
- Movieに再生したい動画ファイルを設定
- MovieMaterialsのSizeを1に設定
- Element0にMovieマテリアルを設定(/Assets/MobileMovieTexture/Materials/Movie)
ジャイロに合わせてカメラを動かす
この記事に詳細が書いてあるので省略します。
音声について
MobileMovieTextureは音声を取り扱うことができません。
前述の動画変換方法でもnoaudioを指定していたかと思います。
映像とは別に再生するようにしてください。
今回は、元のmp4からitunesを利用してmp3を作成し、MovieTextureオブジェクトにAudioSourceとして追加することで音声を再生するようにしました。
あとはビルドして実機に転送しハコスコで試すだけです。