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は、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の機能を組み込むことができます。

フォルダ構成

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環境の移行

Unity 2018/2019/2020のBuilt-in/URP/HDRPのそれぞれの環境では、デモのサンプルシーンはマテリアルやシーンのVolumeなど指定に差があります。
サンプルは"Demo"フォルダに格納されています。
スクリプトやShaderは、Built-in/URP/HDRPで同じものを使用しています。

以下のファイルをそれぞれダブルクリックすることで、"Demo"内の要素をバージョン別に上書きします。

クイックスタートガイド

もっとも簡単な操作方法を説明します。
あらかじめ表現したいシーンの作成とMainCameraの配置を確認しておきます。

静止画を出力する場合

  1. MainCameraのInspectorを表示し、"Add Component"で Scripts/Panorama180Render/Panorama180Renderをたどって追加します。

  2. Playを実行。
    初めの1回はShaderのコンパイルが行われるため、環境によってはパノラマ表示されるまで時間がかかります。
  3. MainCameraのInspectorを表示し、"Panorama 180 Render"-"Output Image"-"Output"ボタンを押します。

これで、"Project名/Output"フォルダにパノラマ180-3Dの画像"panorama180.jpg"が出力されます。


動画を出力する場合

  1. MainCameraのInspectorを表示し、"Add Component"で Scripts/Panorama180Render/Panorama180Renderをたどって追加します。
  2. MainCameraのInspectorを表示し、"Panorama 180 Render"-"Output Video"-"Output Video"ボタンを押します。

    「Playを実行しない状態で」ボタンを押すようにしてください。
    初めの1回はShaderのコンパイルが行われるため、環境によってはパノラマ表示されるまで時間がかかります。
  3. 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環境での動作について

Panorama180 Render Ver.2.0.2でUbuntu 20.04環境での動作を確認済みです。
ただし、動画ファイル処理(入力/出力両方)でmp4には対応していません。

環境別の動画ファイルフォーマットについては、Unityの以下のドキュメントをご参照ください。

https://docs.unity3d.com/2021.2/Documentation/Manual/VideoSources-FileCompatibility.html

戻る