空間全周囲を再生する 360° VR パノラマという技術について勉強した
つい先日まで、世の中には全天球カメラなるものが存在することを知りませんでした。
@wada_akiko さん、ここ最近ツイートするときに theta360.com 使うようになりましたよね。何気にもの凄く気になってました。お陰様でこの一週間、オフの時間は全天球カメラのことばかり調べてましたよ!!
深圳・老街にやってきました。 - Spherical Image - RICOH THETA
僕も旅行に行った時は、周囲の雰囲気を自分で思い返したり人に味わってもらったりするために、全周囲的な動画を撮影することが度々あります。専用の機材も持っていないのでコンデジを抱えて自分が 360°回って撮影していました。まぁ撮影が面倒くさいし手ブレで揺れたりしてイマイチだなぁと常々思っていました。
そこで先日知った上記の theta360.com の VR パノラマですよ。いやぁ衝撃的でしたね。僅か一度のシャッターでその瞬間の空間をカメラに収めることができるって、なんて素晴らしいことなんでしょう!
VR パノラマの入門に最適な書籍の紹介
VR パノラマという技術に興味が湧いてる最中なので勉強しましたよ。とりあえず一週間ほどネットで見た情報の中で一番参考になったサイトは、ちいさな伝記株式会社のちいでんのVRパノラマというサイトです。でもってそこからリンクされている写真道場というサイトで実際の VR パノラマ画像の作り方についての解説があります。
まぁ結局はその情報だけでは物足りなかったので、その方々が執筆された「この一冊ですべてわかる! 360度VRパノラマ制作 パーフェクトガイド」を購入して勉強しました。
この本は学術的なアルゴリズムなどは載っていませんが、満足のいく実用的な情報が詰まってました。紙媒体は既に入手困難な状態が続いており Amazon では 10,000 円からという超プレミア価格となってます。Kindle 版なら定価の 3,110 円で手に入ります。
VR パノラマ技術についてお勉強してみた
VR パノラマ技術は 20 年前からある
さて、そもそも VR パノラマという技術。すでに 1995 年には QuickTime VR というプロダクトが存在し流行っていた技術だそうです。すでに 20 年以上前から存在する技術ってわけです。VR パノラマを作成する場合は、ある一点から全方位の写真を複数枚撮影し、専用のソフトウェアで全ての方位をつなぎ目なく1枚の画像に合成(ステッチ)します。今でこそデジタルカメラで撮影したデジタルデータを直接処理できるわけですが、昔はネガフィルムで撮影した画像をスキャナで取り込み、それをつなぎあわせて作成していたそうです。
元画像管理には正距円筒図法が使われる
つなぎ目なく合成された画像には、言わば全方位が1つに収められた3次元空間のデータですが、これを様々な投影により2次元で扱います。調べた限りでは大凡7種類ほどの投影方法 ?正距円筒 ?立方体 ?円筒投影 ?平面 ?条形 ?十字 ?T形 があり、元画像の管理としてよく使われるのは ?正距円筒 のようです。ちなむに theta360.com も正距円筒のデータを元画像として扱っているようです。
正距円筒図法って言ってもイメージがわかないかもしれません。具体的には以下の様な画像です。
みなさん、どこかで似たようなものを目にしたことがある画像のはずです。
そうです。一般的な世界地図と同じ投影法です。地図に置き換えて説明すると、緯度・経度をそれぞれ地図の縦・横にそのまま読み替えたもので、標準緯線上と縦方向に関して正距であり、標準緯線から離れるほど横方向の長さが拡大されます。面積や角度は正しくないため歪んだ画像になるのが特徴です。
オーサリングソフトについて
VR パノラマ画像は上記でお見せしたとおり、全方位が1つに合成された歪んだ画像です。これをこのまま見ても面白くもなんともありません。VR パノラマはこの画像を専用の再生ソフトウェアで再生させることで、あたかも自分がその空間にいるかのように全方位を見渡せることができるようになることに意味があります。一般的に視点を変えて再生することをバーチャルツアーといいます。一方でそのようなデータを作成することをオーサリングといいます。
調べる過程で目にした VR パノラマを扱うソフトウェアをざざっと触ってみた感じでは、 Pano2VR ってやつが日本語化もされていますし、ライセンスキーを購入しないと画像内に無数にリンクが入ってしまいますが、普通にフル機能が使えてるので勉強するには良い感じです。
上記画像を Pano2VR を使ってhtml5 形式で出力したサンプルです。マウスやタッチでぐりぐりっと視点を 360°変更することができます。拡大縮小もできます。
Pana2VR で出力したファイルはどんな仕組みになっているのか?
まぁ詳しくは紹介した「この一冊ですべてわかる! 360度VRパノラマ制作 パーフェクトガイド」を読んでいただくと良いのですが、ざっくり要約すると、元画像の正距円筒データは解像度を保つために相当巨大な解像度のファイルです。そのままでは Web でインタラクティブ性を持たせて扱うには適さないため、立方体(六面体)に分割した天地前後左右6つの画像に変換して扱います。Pano2VR で html5 形式で出力すると以下の様な構成のファイル群が生成されます。
$ tree . ├── CCNG9163.preview.jpg ├── index.html ├── output │ ├── CCNG9163_out.xml │ └── images │ ├── CCNG9163_o_0.jpg │ ├── CCNG9163_o_1.jpg │ ├── CCNG9163_o_2.jpg │ ├── CCNG9163_o_3.jpg │ ├── CCNG9163_o_4.jpg │ ├── CCNG9163_o_5.jpg │ ├── CCNG9163_o_preview_0.jpg │ ├── CCNG9163_o_preview_1.jpg │ ├── CCNG9163_o_preview_2.jpg │ ├── CCNG9163_o_preview_3.jpg │ ├── CCNG9163_o_preview_4.jpg │ └── CCNG9163_o_preview_5.jpg ├── pano2vr_player.js ├── pano2vr_player.swf └── swfobject.js
_0 から _5 に採番された画像は連結すると以下の様なイメージの画像となります。この画像をを用いて今の視点から見えるはずの世界を演算により求めて描画します。拡大縮小処理を最適化するために、六面体の画像を幾つもの解像度で用意するマルチ解像度という技術もあります。
物事を単純化するために、上記の _0 から _5 の画像ファイルを、色分けして 1 から 6 数字を記入した画像に差し替えてみると、おおよそどんな表示アルゴリズムになっているかが理解できてきます。
とまぁそんなこんなで VR パノラマという世界にどっぷりはまり、この世界観を動画で体験できるという全天球カメラ RICOH デジタルカメラ RICOH THETA S 360°を思わず Amazon でポチってしまいました。
黙ってると良くないと思い白々しく VR パノラマ凄いよねとサンプル動画を見せつつ、ポチったことを白状しました・・・ゴメンナソン (◍ノω╹◍) テヘ
Amazon プライムで明日には届くはず!
RICOH THETA S で散歩風景とかを撮影して、近日中に RICOH THETA S 使ってみたよ編をお届けする予定です。
コメントやシェアをお願いします!