トマシープが学ぶ

Unity/VR/AR/デザイン好きのミーハー 記事内容は自分用のメモです

unity2017.3でskyboxで360度映像を流す。

360video for skybox

今まで外部アセットなどでごちゃごちゃしないとできなかったskyboxでのビデオ再生ができるようになりました!

ただ、このシェーダーを入れておく必要があるみたいです。

github.com

ここに英語で詳しく書いてあります。これに沿ってやっていきます。

docs.google.com

流れ

映像の用意

例えばThetaで撮影した360度映像なら、一度Thetaのビューソフトにドラッグして変換すると、

f:id:bibinbaleo:20180110150322p:plain

_erが末尾についた動画に変換されます。二つの円だったやつがひとつながりになる。

f:id:bibinbaleo:20180110150319p:plain

これをUnityに読み込みます。

RenderTexture準備

まずビデオを読み込んだら、そのままシーンにドラッグします。

するとVideo PlayerというComponentがついたオブジェクトができます。

f:id:bibinbaleo:20171220180342p:plain

これのRender ModeをRender Textureにします。

f:id:bibinbaleo:20171220180343p:plain

 

次にRender Textureを作ります。

f:id:bibinbaleo:20171220180524p:plain

このRender TextureはまずDepth BufferをNo depth bufferにします。

f:id:bibinbaleo:20171220180749p:plain

そしてサイズは、読み込んだ映像のサイズにします。

読み込んだ映像のサイズはその映像のインスペクタの下の方をSource infoにしたら載っています。

f:id:bibinbaleo:20171220180758p:plainf:id:bibinbaleo:20171220180752p:plain

そして設定が終わったRender textureをさっきのVideo PlayerのTarget Textureにセットします。

f:id:bibinbaleo:20171220181021p:plain

Skybox

新しいマテリアルを作り、そのシェーダーをさっきgithubからダウンロードしたSkybox/PanoramicBetaにします。

そしてテクスチャにRender Textureをセットします。

f:id:bibinbaleo:20171220181218p:plain

ちなみにMappingのところはLatitude Longitude Layoutにして、かつVirtual reality supportedにチェックを入れていると3D Layoutが選択できます。

f:id:bibinbaleo:20171220182523p:plain

f:id:bibinbaleo:20171220182526p:plain

いい感じに設定して、このマテリアルをSkybox Materialにセットしたら完成!

f:id:bibinbaleo:20171220181236p:plain

再生したらskyboxに映像が流れます。

Animated GIF - Find & Share on GIPHYwww.giphy.com

その他

最初の状態?でライティングされます(IBL)。映像には追従しないみたい。

f:id:bibinbaleo:20171220183109p:plain

f:id:bibinbaleo:20171220184455p:plain