akyboxブログ

旧AkiIroブログ

【Unity】Stereo360動画を撮ってUnity内で見るまで

Stereo360をUnityで録画、再生する。

両眼視差で立体的に見える360動画のことです。

今回はGearVRもしくはOculus向けで、

  • UnityでStereo360動画を撮る
  • UnityでStereo360を再生する

以上をやってみました。 使用アセットは

VR Panorama 360 PRO Rendererは別のアセットでもいけます。
代表的なものは

  • 360 Panorama Capture
    無料。非正方形には対応してない様子。確認した限り多くのイメージエフェクトが乗る。音は取れないので別の手段が要る。
  • SphericalImageCam
    有料。非正方形対応、いくつかのイメージエフェクト直接使用可能。

VR Panorama 360 PRO Rendererはイメージエフェクトがほとんど乗りませんが、(経験的には録画中に値が動かせない。)
録画設定や録音設定が楽で、また立体音響も開発中のようです。

VR Panorama 360 Rendrererで録画する。

まずはインポートして中身を確認します。
英語ですがReadMeが付属していますので、必要に応じて。

キャプチャ用カメラを作る

インポートしてからヒエラルキー上で右クリックすると何やらVR Panorama Cameraというものが増えていますので、 撮りたい位置に作ってください。今回はVirtualRealitySupportedをオフにしているのでMainカメラの下に。
f:id:AkiIro:20161125010058p:plain

録画する

インスペクタ上から録画設定をします。
今回はStereoでUHD 4Kにしました。
CaptureTypeをEquidstatStereoにして、UHD 4Kボタンを押せば設定OKです。 f:id:AkiIro:20161125012408p:plain
この状態でRenderPanoramaを押すと大量の画像が指定フォルダ(デフォルトはAssetsと同じ階層のVR_Sequence内)に作られた後、 コマンドプロンプトが立ち上がってffmpegが実行されて動画ができます。
f:id:AkiIro:20161125013238p:plain

補足

なお、おそらく無音のはずです。
音を入れたい場合、CaptureAudioをしてから今の操作を行うなどしてください。
その際、私の環境だとCaptureTypeをEquidstatStereoからMonoに変えないとバグが出ていましたのでご注意を。
動画ファイルの名前の最後の_360_TBはGearVRの360Movieなどで見るときなどに意味があるので変えない方がいいです。

以上で録画は終わりです。

EasyMovieTexture

動画ファイルが再生できるアセットです。
UnityのMovieTextureはWindowsだとQuickTimeに色々と事情があります。
その他有用性はこちらのコガネブログ様が解説くださっていますので割愛を。

EasyMovieTextureで再生する。

EasyMovieTexture_Editorでエディタで確認できるようにする

インポートしてそのままだとエディタでは確認できないので、アセットストアの説明分からダウンロードしに行きます。
f:id:AkiIro:20161125014759p:plain
Easy Movie Texture (Video Texture)
インポートしたらエディタ上でも動画が再生できるようになります。

投影用天球を持ってくる

EasyMovieTextureの中にすでに入っているモデルはうまくいかないことがあるので、 Unityの周さんが配布しているSphere100.fbxを持ってきます。
こちらのサイトにリンクがあります。
UnityとOculusで360度パノラマ全天周動画を見る方法【無料編】
首尾よく手に入れたらプロジェクトにドラッグアンドドロップ

天球に動画を写す

基本的にはEasyMovieTextureのデモシーン、Demo_Sphere_3Dを真似て作ります。
f:id:AkiIro:20161125015944p:plain

球を用意する

先ほどインポートしたSphere100.fbxをヒエラルキー上に二つドラッグアンドドロップします。
Scaleは取りあえず100くらいにしておけば大丈夫です。
xのScaleはマイナスにしておくと撮った通りになります。
適当に親を作って名前を変えてありますがこんな感じです。
f:id:AkiIro:20161125020425p:plain
次にそれぞれにLayerを設定してやります。 片方はLeft、片方はRightとしました。
f:id:AkiIro:20161125044126p:plain
また、y軸方向に90度回転させると正面が合います。 f:id:AkiIro:20161125044245p:plain  

マテリアルを設定する

作った動画は上下に分かれていました。
Leftが上なのでそれぞれ次のようなマテリアルをアタッチしてあげます。 f:id:AkiIro:20161125021012p:plain
f:id:AkiIro:20161125021020p:plain

カメラを用意する

左目用と右目用のカメラを用意します。
カメラを二つ作って左目用はCullingMaskを次のようにします。
f:id:AkiIro:20161125021308p:plain
右目も同様です。

動画をStreamingAssetsに置く

Assets以下にStreamingAssetsというフォルダを用意してそこに先ほど作った動画ファイルを入れます。
なお、このフォルダはビルドするとそのまま含まれます。

動画再生スクリプトを設定する

適当なオブジェクトを作ってMediaPlayerCtrlをアタッチします。
TargetMaterialには二つの球を設定して次のようにすればOKです。
f:id:AkiIro:20161125022008p:plain
StrFileNameは自分の再生する動画の名前に変えてください。

以上で再生の設定も完了です。お疲れ様でした。
エディタで実行してOculusで見れます。 ビルドすればGearVRでも見れるはずです。
あの頃の自分に伝えたい、、、。

akiiro.hatenablog.com