RICOH THETA m15で撮影した動画を使ってハコスコ用のアプリを作る（その２：Unityでアプリを作る）

[この投稿][link-1]の続きです。前回はBlenderで全天球モデルの作成をしました。
今回は、Unityでこのモデルを使ったハコスコアプリを作りたいと思います。

全天球モデルの内側にムービーテクスチャを貼って、ジャイロに合わせてカメラを動かすだけです。

# ムービーテクスチャについて

Unity5からムービーテクスチャがPersonal Editionでも利用できるようになっています。
ただし、iOS/Androidに書き出すことはできません。
（[Unity - マニュアル:ムービーテクスチャ][link-2]）

このため、今回は[Mobile Movie Texture][link-3]というアセットを使いました。

![mobileMovieTexture.png](https://qiita-image-store.s3.amazonaws.com/0/35817/24849280-98c5-f150-0c94-ba21d038d20d.png)

[Mobile Movie Texture][link-3]を[AssetStore][link-3]から購入します。（2015/7/9時点で$75）
その後、プロジェクトへインポートしてください。

[Mobile Movie Texture][link-3]で扱うことができる動画形式はOgg Theora形式なので、
[前回][link-1]用意した動画を.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/ 配下にインポートしてください。
この場所以外に配置すると動作しません。

# 全天球を配置する

カメラ位置を原点に合わせます。
これは、後で原点を中心とした全天球のオブジェクトを設置するのですが、
カメラが全天球の内側中心になるようにするためです。

[前回][link-1]作成した全天球モデルをAssetsにインポートし、
カメラが中心になるよう設置します。
画像中の「SkySphere」という名前のオブジェクトです。

![createSkySphere.png](https://qiita-image-store.s3.amazonaws.com/0/35817/50682773-3e40-7b44-6a4e-bde16c72f596.png)

# 動画をインポートする

準備した.ogvファイルをインポートします。
インポート先は「/Assets/StreamingAssets/」配下である必要があります。
今回はsample.ogvというファイルをインポートしました。

![importMovie.png](https://qiita-image-store.s3.amazonaws.com/0/35817/14daddf8-c1fd-8d7b-c19f-9491a172cf93.png)

# 全天球にムービーテクスチャを設定する

まず、SkySphereにMovieマテリアルを設定します。
Movieマテリアルは「/Assets/MobileMovieTexture/Materials/Movie」です。
SkySphereを選択して表示されたInspectorにドラッグ＆ドロップすればOKです。

![addMovieMaterial.png](https://qiita-image-store.s3.amazonaws.com/0/35817/a62b41e4-3a5d-3a33-63b4-ae07aa370874.png)

次に、MovieManagerを作ります。
Hierarchyで右クリックしてCreate Emptyを選択するとGameObjectが作成されるので名前をMovieManagerに変更して、「/Assets/MobileMovieTexture/」にあるMobileMovieManagerスクリプトをMovieManagerオブジェクトにセットします。

![createMovieManager.png](https://qiita-image-store.s3.amazonaws.com/0/35817/c668e501-4045-697c-1087-c5c9e92f7388.png)

最後に、MovieTextureを作ります。
Hierarchyで右クリックしてCreate Emptyを選択するとGameObjectが作成されるので名前をMovieTextureに変更して、「/Assets/MobileMovieTexture/」にあるMobileMovieTextureスクリプトをMovieTextureオブジェクトにセットします。
InspectorでMobileMovieTextureの各項目を以下のように設定します。

* Movieに再生したい動画ファイルを設定
* MovieMaterialsのSizeを1に設定
* Element0にMovieマテリアルを設定（/Assets/MobileMovieTexture/Materials/Movie)

![createMovieTexture.png](https://qiita-image-store.s3.amazonaws.com/0/35817/e9202309-8849-e746-31c2-6c0d81579489.png)


# ジャイロに合わせてカメラを動かす

[この記事][link-4]に詳細が書いてあるので省略します。

# 音声について

MobileMovieTextureは音声を取り扱うことができません。
前述の動画変換方法でもnoaudioを指定していたかと思います。
映像とは別に再生するようにしてください。

今回は、元のmp4からitunesを利用してmp3を作成し、MovieTextureオブジェクトにAudioSourceとして追加することで音声を再生するようにしました。


あとはビルドして実機に転送しハコスコで試すだけです。

# 参考サイト

1. [RICOH THETA m15で撮影した動画を使ってハコスコ用のアプリを作る（その１：全天球モデルを作る） - Qiita][link-1]
2. [Unity - マニュアル：ムービーテクスチャ][link-2]
3. [Asset Store - Mobile Movie Texture][link-3]
4. [VRゲーム用にスマホジャイロセンサとMainCameraを同期させる - Qiita][link-4]

[link-1]:http://qiita.com/ndyuya/items/64d9a952eaf0ba7ea30f
[link-2]:http://docs.unity3d.com/ja/current/Manual/class-MovieTexture.html
[link-3]:https://www.assetstore.unity3d.com/jp/#!/content/2449
[link-4]:http://qiita.com/fumishitan/items/c2b023b9b9655d0a7d46