Panorama180 Render : クイックスタートガイド
Developer : ft-lab (Yutaka Yoshisaka).
03/04/2019 - 03/01/2022.
はじめに
「Panorama180 Render」は、
Unity Editorでのレンダリングを立体視を考慮した180度のパノラマ(Equirectangular)にリアルタイム展開し、
静止画または動画で出力するEditor拡張Assetです。
VR180向けの出力を行います。
ただし、静止画/動画のVR180のメタデータの処理は対応していません。
パノラマ360の出力に対応しています (ver.2.0.0-)。
パノラマ180/360のRenderTextureの作成はランタイム(ビルドして実行)でも利用できます (ver.2.0.0-)。
パノラマ180/360の単眼レンダリングに対応しています (ver.2.0.1-)。
ここでは、
視差を考慮した左右の目から見たEquirectangular 180度の画像を"パノラマ180-3D"と表現しています。
視差を考慮した左右の目から見た全方向のEquirectangular 360度の画像を"パノラマ360-3D"と表現しています。
動作環境
Unity Editor 2018.4.x/2019.3.x-2019.4.x/2020.3.x/2021.2.x (Windows/Mac OS/Ubuntu)
Panorama180 Renderは立体視のパノラマのレンダリングを行うため、パノラマ180-3Dの場合は5+5のカメラからのレンダリングを合成します。
パノラマ360-3Dの場合は6+6のカメラからのレンダリングを合成します。
計算にはGPUを使用するため、GPUの性能が低い場合は低速になります。
以下の環境で動作確認しました。
Unity : Unity 2018.4.6 / 2019.3.7 / 2019.3.12 / 2019.4.16 / 2019.4.28 / 2020.3.6 / 2021.2.1
GPU : NVIDIA GeForce RTX3060-12GB / RTX A5000-24GB
以下のバージョンに対応しています。これは動作確認した環境になります。
- Built-in : Unity 2018.4.6 - 2021.2.1
- HDRP(preview) : Unity 2018.4
- LWRP(preview) : Unity 2018.4
- URP : Unity 2019.3-2019.4 / 2020.3 / 2021.2
- HDRP : Unity 2019.3-2019.4 / 2020.3 / 2021.2
Built-inは、LWRP/HDRP/URPではない従来のパイプラインです。
Post Processing v2と併用できます。
URP/HDRPを使用した場合、VolumeのPost Processing指定に対応しています。
ランタイム(ビルドして実行)に対応しています (ver.2.0.0 - )。
Unity 2019.4.4以降でVR(Oculus Quest2+Oculus LinkでPC-VR/実機のネイティブ実行で確認)に対応しています (ver.2.0.0 - )。
詳しい検証環境は、動作検証のドキュメントをご参照くださいませ。
Post Processingはオプションです。使用しなくても動作します。
機能
Unity Editor内での動作は「Editor」、ビルドして実行時は「Runtime」、VR時の動作は「Runtime (VR) 」と記載しています。
Runtimeの動作は、Unityで作成したアプリケーションにPanorama180 Renderの機能を組み込むことができます。
- Editor/Runtime : 指定のカメラからのビューを、パノラマ180-3Dでリアルタイムレンダリング
- Editor/Runtime : VR180カメラのような表現、または左右を向いた時の視差を考慮したパノラマ180-3Dレンダリングを選択
- Editor : 背景として、パノラマ180度の静止画または動画を指定可能 (Equirectangular 360/Equirectangular 180/FishEye 180)
- Editor/Runtime : Post Processing(v2)のエフェクトを割り当てることが可能
- Editor : 1024 x 512から16384 x 16384 ピクセルまでの解像度で、パノラマ180-3Dの静止画(jpeg/png)または動画(mp4/mov/webm)出力
- Runtime : パノラマ180-3D/パノラマ360-3DのRenderTextureを作成
- Editor : 動画出力時にAudioを反映
- Editor : 動画出力時にjpegまたはpngファイルとして連番出力
- Editor/Runtime : HDRPへの対応 (Unity 2018.4 / 2019.3-2019.4 / 2020.3)
- Editor/Runtime : LWRPへの対応 (Unity 2018.4) (ver.1.0.2 -/ver.1.1.1 -)
- Editor/Runtime : URPへの対応 (Unity 2019.3-2019.4 / 2020.3) (ver.1.1.0 -)
- Editor/Runtime : 静止画像のパノラマ180-3DのDepthテクスチャを作成、出力 (ver.1.0.2 -)
- Editor/Runtime : 静止画像のパノラマ180-3D/360-3Dを出力するAPIを追加 (ver.1.0.2 -)
- Editor/Runtime : カメラはY軸回転だけでなく、X/Z軸回転も反映 (ver.1.1.0 -)
- Editor/Runtime : 360パノラマのカラーテクスチャ/Depthテクスチャを作成、出力 (ver.2.0.0 -)
- Editor/Runtime : パノラマ180/360の単眼のテクスチャを作成、出力 (ver.2.0.1 -)
- Runtime : ランタイム(ビルドして実行)対応 (ver.2.0.0 -)
- Runtime (VR) : Unity 2019.4.4以降でPC-VR/Oculus Quest2でのネイティブ実行に対応
フォルダ構成
Assetに同梱されているフォルダは以下の構成になっています。
[Assets]
[Panorama180Render]
[Demo] デモ用
[Images] 画像ファイル
[Materials] マテリアル
[Objects] 形状
[Scenes] デモ用のシーン
[Editor] Unity Editorで動作するデモシーン
[Runtime] Runtimeで動作するデモシーン
[Scripts] デモで使用するスクリプトファイル
[Documents] ドキュメント(pdf)
[Panorama180Render] Panorama180Renderに必要なファイル
ver.1.1.0からver.2.0.0にかけて、デモシーンファイル、Shaderファイルのフォルダ位置が変更になりました。
[Panorama180Render]フォルダ内のファイルを使用することにより、
プロジェクトでPanorama180 Renderの機能を使用できます。
デモ用のシーン/ドキュメントが不要な場合は、[Demo][Documents]フォルダを削除するようにしてください。
Panorama180 Render ver.1.1.1からver.2.0.0のアップデート
Panorama180 Render ver.1.1.1からver.2.0.0では、Shaderのフォルダ位置を変更しました。
もしバージョンアップで動作がうまくいかない場合は、
一度プロジェクトの"/Panorama180Render"フォルダを削除してから再度インストールしてください。
Unity 2018/2019/2020のBuilt-in/URP/HDRPのそれぞれの環境では、デモのサンプルシーンはマテリアルやシーンのVolumeなど指定に差があります。
サンプルは"Demo"フォルダに格納されています。
スクリプトやShaderは、Built-in/URP/HDRPで同じものを使用しています。
以下のファイルをそれぞれダブルクリックすることで、"Demo"内の要素をバージョン別に上書きします。
- Panorama180Render_Demo_Unity2019_BuiltIn.unitypackage : Unity 2019 Built-in用。
- Panorama180Render_Demo_Unity2019_URP.unitypackage : Unity 2019 URP用。
- Panorama180Render_Demo_Unity2019_HDRP.unitypackage : Unity 2019 HDRP用。
- Panorama180Render_Demo_Unity2020_BuiltIn.unitypackage : Unity 2020 Built-in用。
- Panorama180Render_Demo_Unity2020_URP.unitypackage : Unity 2020 URP用。
- Panorama180Render_Demo_Unity2020_HDRP.unitypackage : Unity 2020 HDRP用。
クイックスタートガイド
もっとも簡単な操作方法を説明します。
あらかじめ表現したいシーンの作成とMainCameraの配置を確認しておきます。
静止画を出力する場合
動画を出力する場合
- MainCameraのInspectorを表示し、"Add Component"で Scripts/Panorama180Render/Panorama180Renderをたどって追加します。
- MainCameraのInspectorを表示し、"Panorama 180 Render"-"Output Video"-"Output Video"ボタンを押します。
「Playを実行しない状態で」ボタンを押すようにしてください。
初めの1回はShaderのコンパイルが行われるため、環境によってはパノラマ表示されるまで時間がかかります。
- Playが自動的に実行されGameビューで経過が表示されるので、100%になったときにPlayを止めます。
これで、"Project名/Output"フォルダにパノラマ180-3Dの4秒間の動画"panorama180.mp4"が出力されます。
デモシーンについて
デモシーンは以下のものが存在します。
Unity Editor上での動作を想定したものと、ビルドして実行するRuntimeを想定したものに分かれています。
デモシーンは、Built-inのパイプラインで作成しています。
UnityのバージョンまたはBuilt-in/URP/HDRPに合わせてデモシーンを更新する「unitypackage」を適用することで、
関連ファイルを更新します。
「
Unity環境の移行」の内容をご参照くださいませ。
Editor
"Demo/Scenes/Editor"フォルダには、Unity Editorで動作するデモシーンを配置しています。
デモシーン名 |
内容 |
StudySet |
机と小物を配置したシーン。 |
StudySetWithPostProcessing |
机と小物を配置したシーン。
Post Processingを使用。
※ このシーンを実行するには"Post Processing"をPackage Managerより加える必要があります。
|
distanceTest |
奥方向と左右方向の奥行きを確認するシーン。
パラメータ"Simulate VR180 Camera"のチェック用です。
|
BackgroundVR180Test |
VR180カメラで撮った写真を背景として配置し、3D形状と合成したシーン。
|
PhysicsAnim |
アニメーションを行うシーン。
動画出力のチェック用です。
|
distanceDepthTest (ver.1.0.2 -) |
奥方向と左右方向の奥行きを確認するシーン。
Depthテクスチャ出力用です。
|
APITest (ver.1.0.2 -) |
スクリプトを使用してカメラを移動し、パノラマ静止画像とDepth画像を連続して出力します。
スクリプト"Demo/Scripts/MultipleCapture.cs"をカメラに割り当てて使用します。
|
Runtime
"Demo/Scenes/Runtime"フォルダには、ビルドして実行するRuntimeで動作するデモシーンを配置しています。
これはUnityのアプリでPanorama180 Renderを組み込む場合の手順を示すサンプルになります。
このランタイムのデモの説明については「
ランタイム用のデモ」をご参照ください。
デモシーン名 |
内容 |
blocks |
PCで動作します。VRでの実行は想定していません。
実行すると、右上にパノラマ展開されたRenderTextureを表示します。
パノラマ180-3Dとパノラマ360-3Dを切り替えてキャプチャするデモです。
|
blocks_assignRenderTexture |
PCで動作します。PC-VRでの動作を確認済みです。
Oculus Quest2ネイティブではビルドはできますが、動作が重いため実用的ではありません。
実行すると、シーン内のブロック上にパノラマ360-3DのRenderTextureを表示します。
|
blocks_sync_RenderTexture |
PCで動作します。PC-VRでの動作を確認済みです。
Oculus Quest2ネイティブでビルドできます。
実行すると、キーボードの[C]またはゲームパッドの[X]ボタンを押すことでシーン内のブロック上に
パノラマ180-3DのカラーのRenderTextureとDepthのRenderTextureを表示します。
|
blocks_sync_RenderTextureSave |
PCで動作します。PC-VRでの動作を確認済みです。
Oculus Quest2ネイティブでは動作未確認です。
実行すると、キーボードの[C]またはゲームパッドの[X]ボタンを押すことでシーン内のブロック上に
パノラマ180-3DのカラーのRenderTextureとDepthのRenderTextureを表示します。
加えて、キャプチャしたパノラマ画像をファイルに保存します。
|
Ubuntu環境での動作について