Edited at

UnityのCamera Projecterアセットを使って、球面ディスプレイに360度画像を表示する。

More than 1 year has passed since last update.


はじめに

こちらは、「Unity アセット真夏のアドベントカレンダー 2017」の8/25日分の記事です。

前から、学研さんのワールドアイという球面(厳密には半球)ディスプレイに興味があったのですが、微妙に値段が高くて手が出ず。ところが、最近MIROさんにお勧めいただいたので値段をもう一度確認したら、Amazonでは1万円以下で売られていることが分かりまして、盆休みで少し時間があるし、触ってみることにしました。

IMG_0877.PNG


ワールドアイの基本的な使い方

ワールドアイは、写真の通り、後ろにあるプロジェクターから前の半球に画像を投影します。付属のデモの地球儀(世界地図)上の経線から推測するに、だいたい160度の視野角があるようです。半球よりちょっと狭いようです。

ワールドアイに画像を表示させるには、USBに画像を保存するか、HMDI(HDMIケーブルミニを別途購入)でPC上の画像を表示させるか、のどちらかです。USBに画像を表示させる場合は、480px四方の中に160度視野に相当する画像を入れて、それの両側に余白をつけて640px * 480pxの.jpeg画像をにしてUSBドングルに入れると、以下のように360度画像(の一部)を表示できます。

IMG_0873.JPG

360度画像のうち160度の部分だけを切り取るにはPTGuiなどのツールを使いましょう。PTGuiを使う場合は、横方向はFOV213、縦方向はFOV160にして、640x480の画像サイズで出力すればちょうど良いです。この際、拡張子を必ずjpgではなくjpegにしましょう。


Unityを使って、PCからワールドアイに表示する。

ワールドアイのHDMI入力を使って、PC上のUnityから画像を表示します。私のSurface Proのデフォルトのディスプレイ設定だと画面の一部しか表示されませんが、1400px x 1050px にすると、上下左右ともに大体収まる感じになります。他のPCだと違うかもしれないので、いくつかのディスプレイ解像度設定を試して、デスクトップ全体がうまく収まる組み合わせを試してください。

次に、Unityでの160度の視野に相当すると画像の表示ですが、ここでCamera Projecterアセットを使います。

IMG_0878.PNG

今年の5月に出たばかりのアセットなので、まだ 使ったことがない人も多いのではないでしょうか。

これは、シーンに上下左右前後6つのカメラの画像をリアルタイムでスティッチし、それを指定の投影法(Stereographic, Equidistant, Equisolid, Orthographic, Geographic, Miller, Cassini)で投影したものをGameウィンドウに表示します。

Equidistant FOV 360度

Equidistant.PNG

Equisolid FOV 360度

Equisolid.PNG

Orthographic FOV 360度

Orthographic.PNG

Geographic FOV 360度

Geographic.PNG

Miller FOV 360度

Miller.PNG

Cassini FOV 360度

Cassini.PNG

THETAとかで撮影した写真を使うなら、Geographicが良いでしょう。すでに述べたように、ワールドアイでは視野160度しか表示されないので、Camera ProjecterコンポートでFOVを設定すれば良いです。

CameraProjector.PNG

あとは、Gameウィンドウを全画面表示した状態でPlayすれば、ワールドアイ上で以下のように映ります。

IMG_2298.JPG

この写真だと分かりづらいですが、実際に見るとまあまあ奥行き感あります。360度写真と一緒にテキストや3Dキャラクターなども表示してみました。


最後に

360度画像を表示するとアセットは過去にもありましたがFOVを調整可能なものは少ないので、Camera Projecterはワールドアイのような球面ディスプレイとの相性は良いと言えるでしょう。球面ディスプレイお持ちの方は、一度お試し下さい。