Blender 2.8でさくっとVR180/360動画を作成する
VR動画は昔からありますが、Oculus QuestでVR動画など見る機会が増え、最近趣味で勉強しているBlenderでも比較的簡単に作れることがわかったので、自分でも作ってみました。
この記事はCyclesを使用する前提なので、Eevee版も「Blender EeveeでさくっとVR180を作成する」にて書きました
サンプルの準備
Blenderで適当に「BOX」と「カメラ」を追加し、中心にある「BOX」を周回するようなアニメーションのサンプルを作成しました。
※ 背景はフリーの「HDRI画像」です。
今回、VR180/360で使用したデータは下記にアップしてます。勝手にご利用下さい。
Blenderデータを立ち上げて動画出力したものを、HMD(Oculus Questなど)に転送すれば、VR動画として確認できるとかと思います。
VR180動画について
VR180に関してはあまり情報が見つからなかったので、非常に手探りなのですが、こうしたら出来たよという例になります。
(VR180に関する)Blender側の主な設定
Render
Render Engine -> Cycles
Output
Dimensions
Resolution // (x, y) = (1, 1)
X -> 1024 *** ANY ***
Y -> 1024 *** ANY ***
Stereoscopy
Stereo 3D -> Selected
Output
Views
Views Format
Stereo 3D -> Selected
Stereo Mode
Side-by-Side -> Selected
Object Data
Lens
Type -> Panoramic
Panorama Type -> Equirectangular
Latitude
Min -> -90 degree
Max -> 90 degree
Longitude
Min -> -90 degree
Max -> 90 degree
上記設定でレンダリングした画像
要点
1)レンダリング エンジンを「Cycles」にする
※ 現状、他のエンジンだとパノラマ表示ができないため
2)解像度は「XとY」が「1対1」になるように設定する
※ 高解像度にしたい場合は 4K , 8K の解像度にする
3)ステレオ3Dモードを「有効」にし、左目と右目用の画像が左右に配置されるように「サイドバイサイド」を選択する
4)レンズのタイプを「パノラマ状」を選択肢、パノラマタイプを「正距円筒図」を選択する
5)緯度(上下の表示領域)は最小「-90度」最大「90度」にする
経度(左右の表示領域)は最小「-90度」最大「90度」にする
※ 最小「-180度」最大「180度」にすると、360度動画になります
VR180動画のYouTube対応について
追記後)
VR180用のメタデータ付与にはGoogleが用意していくれている「VR180 Creator」アプリを使用して簡単に付与することができます。
追記前)
Blenderから出力した動画をYouTubeにそのままアップロードしてもVR対応の表示をしてくれません。専用のメタデータを付与する必要があるようです。
VR180用のメタデータ付与にはGoogleが「VR180 Creator」というページを用意してくれているのですが、2020/05/24時点ではダウンロードできなくなっています。
Adobe PremiereなどのVR対応の動画編集ソフトがあるとメタデータを付与できるようですが、持っていなかったため、googleから「fork」されたスクリプトを使用して変換した動画をYouTubeにアップロードところ、VR対応の表示になりました。
$ python spatialmedia -i -s left-right -m equirectangular VR180動画.mp4 VR180動画_injected.mp4
--------------------------------------------------------
VR360動画について
VR180に比べて情報がたくさんあったり、設定も多少シンプルです。
個人的にですが、体を動かして体験するゲームや風景であれば非常に良いのですが、常に真後ろが気になってしまったり、振り向く際に首が疲れてしまうので、私はVR180の方が好みです。
(VR360に関する)Blender側の主な設定
Render
Render Engine -> Cycles
Output
Dimensions
Resolution // (x, y) = (2, 1)
X -> 2048 *** ANY ***
Y -> 1024 *** ANY ***
Stereoscopy
Stereo 3D -> Selected
Output
Views
Views Format
Stereo 3D -> Selected
Stereo Mode
Top-Bottom -> Selected
Object Data
Lens
Type -> Panoramic
Panorama Type -> Equirectangular
Latitude
Min -> -90 degree
Max -> 90 degree
Longitude
Min -> -180 degree
Max -> 180 degree
上記設定でレンダリングした画像
要点
1)レンダリング エンジンを「Cycles」にする
※ 現状、他のエンジンだとパノラマ表示ができないため
2)解像度は「XとY」が「2対1」になるように設定する
※ 高解像度にしたい場合は 4K , 8K の解像度にする
3)ステレオ3Dモードを「有効」にし、左目と右目用の画像が上下に配置されるように「トップボトム」を選択する
4)レンズのタイプを「パノラマ状」を選択肢、パノラマタイプを「正距円筒図」を選択する
5)緯度(上下の表示領域)は最小「-90度」最大「90度」にする
経度(左右の表示領域)は最小「-180度」最大「180度」にする
VR360動画のYouTube対応について
Blenderから出力した動画をYouTubeにそのままアップロードしてもVR対応の表示をしてくれません。専用のメタデータを付与する必要があるようです。
VR360用のメタデータ付与にはGoogleが専用のGUIアプリ「google/spatial-media」を用意してくれているので、そちらのアプリを使用して変換した動画をYouTubeにアップロードところ、VR対応の表示になりました。
※ 「VR180 Creator」にもVR360の出力オプションがあったのですが、私の環境では思った通りの出力になりませんでした。
その他参考になりそうな記事
・Blender でレンダリング時間を短縮する方法まとめ
・180° 動画または 360° 動画のアップロード
・Blender2.8で360度画像を作成する
・YouTube 360° CG動画の作り方【3D作成から効果音追加までの流れ】
・How to Create VR Video in Blender
・360° Render Settings (For Images and Video) - Blender Tutorial
・Creating 3D VR180/360 In Blender 2.8 Eevee - Part 1 of 2
・Camera setup for *180* degree VR rendering?
・Blender: Rendering » Cycles » Object Settings » Cameras
あとがき
Eeveeと比べて出力に時間がかかり大変だと思いますが、普通の動画と比べてVR動画は迫力や驚きが違うので、是非増えてほしいと思います。
追記)
8KのVR180動画1秒作るのに7−8時間レンダリングに時間がかかってしまったので、分散してレンダリングなどしないと現実的には厳しそう...
・大人の分散レンダリング
・https://www.sheepit-renderfarm.com/
・https://render.st/