脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

Thetaで撮影した360度動画をUnityを使ってOculus Riftで再生する

Thetaで撮影した360度動画をUnityで再生する方法です
Unityで360度動画を再生するには、以下の3つのコンポーネントが必要になります

 ① 360度mp4動画(equireqtangular形式)
 ② 上記の 360度動画(①)を張り付けるTexture Material
 ③ 上記のTexture Material(②)を投影する全天周天球モデル

以下ではそれぞれの設定方法を説明します

1. 動画用意

まずは動画を用意します。

1. 動画撮影

Thetaで普通に動画を撮影します
(今回はサンプルとしてThetaの公式サイトで提供されている空手の動画を利用します)
theta360.com

2. 動画の変換

ThetaSの場合は自動でEquirectangular形式で動画ファイルが出力されるのでこのステップは不要です
Theta m15の場合は魚眼風の二眼MOVファイルとして出力されるので、これをEquirectangular形式に変換する必要があります
以下のサイトからPC用Thetaアプリをダウンロードして起動し、D&DでMOVファイルを指定すると自動でEquirectangular形式のmp4ファイルに変換されます
( ダウンロード | RICOH THETA )
f:id:portaltan:20160418124004p:plain

3. 動画ファイルのImport

EquiRectangularのmp4ファイルが準備できたら、Import New AssetsからMovieをUniryへImportします

f:id:portaltan:20160418130518p:plain

2. 動画を張り付けるUVスフィアの準備

次に動画を張り付けるUVスフィアというマテリアルを作成します

1. UV Sphereの準備

自分で作成する場合はBlender等の作成ツールから作成しますが、今回は以下のサイトで提供されているスフィアを使わせていただきます
No hack, no work • UnityとOculusで360度パノラマ全天周動画を見る方法【無料編】

2. SphereのImport

ダウンロードしたSphere(Sphere100.fbx)を動画と同じようにImport New AssetsでUnityへImportします

3. Sphereの設定

ImportしたSphereをHierarchyへD&Dし、InpectorからScaleを(1000, 1000, 1000)へ拡大します

f:id:portaltan:20160418130853p:plain

3. UVSphereに張り付けるTextureの作成

UVSphereに直接動画は張り付けられないので、動画を張り付けるためのTextureを用意します

1. Textureの作成

まずはMaterialをCreateして名前をつけます(今回はmovieTextureとしました)

2. Textureの設定

InspectorからShaderをUnlit/Textureへ変更します

3. 動画の指定

InspectorのSelectから、importしておいたmp4ファイルを選択します
f:id:portaltan:20160418131532p:plain

4. TextureのSphereへの張り付け

作成したTextureをヒエラルキーのSphereへD&Dで張り付けます
f:id:portaltan:20160418131730p:plain

4. 動画を再生するスクリプトの用意

ここまででコンポーネントの準備は完了したので、実際に動画を再生させる処理を書いていきます

1. C#スクリプトの作成

ProjectからC#スクリプトを作成します
(今回はPlayMovieという名前にしました)
作成したスクリプトに以下ように記述します

using UnityEngine;
using System.Collections;

public class PlayMovie : MonoBehaviour {

	public MovieTexture karate;

	void Start () {
		karate.Play ();
	}
}
2. スクリプトのSphereへの張り付け

Textureと同じようにD&DでSphereへ張り付けます

3. 動画objectの関連付け

スクリプトを張り付けると、InspectorでKarateという変数を設定するエリアが出てくるので、Selectを押して動画を指定します
f:id:portaltan:20160418145553p:plain

4. 実行

これで動画再生の準備は整ったので、再生ボタンを押して確認します
f:id:portaltan:20160418145713p:plain