2019
06.03

【World MR News】『ステレオフォトメーカー』の『Looking Glass』対応秘話――「第2回 Looking Glass勉強会」レポート①

World MR News

裸眼で立体的な映像が楽しめるディスプレイ『Looking Glass』の勉強会『第2回 Looking Glass勉強会』が、5月21日に六本木ヒルズタワーのメルカリで開催された。好評だった前回に引き続き2回目の開催となるが、今回は会場の規模も大きくなり100名以上が参加し、かなりの盛況となっていた。

本稿ではその中から、立体視界隈の有名人でもあるむっちゃん(@spmaker)氏によるメインセッション「ステレオフォトメーカーとLooking Glass」とライトニングトーク枠から黒河優介(@wotakuro)氏による、「Looking Glass向けに ムービー書き出してみたアレコレ」をピックアップしてレポートする。

▲本イベントを主催するザバイオーネ(@z_zabaglione)氏の挨拶でイベントがスタート。

■ステレオフォトメーカーとLooking Glass

仕事とは関係なく、趣味で立体写真をやっていたというむっちゃん氏。ウィンドウズ用の『ステレオフォトメーカー』というソフトを自作しているほか、スマホやウェブアプリなども開発している。

▲ハンドル名は娘のニックネームから付けたというむっちゃん氏。

最初は半信半疑だったというむっちゃん氏だが、今年の2月に『Looking Glass』に初めて触り、自分のソフトで多視点の画像を作って入れてみたところ、すごく綺麗で驚いたという。これはいけるということで、『ステレオフォトメーカー』に対応ソフトを入れることを考えたそうだ。

『Looking Glass』は、液晶の前にレンチキュラーレンズを角度が付けられた状態で貼り付けられており、そこで多視点を実現している。しかし、これを精密に貼り付けようとするとかなりのコストが掛かってしまう。そこで、貼り付け精度はラフにしておき、どんなピッチでどんな角度になっているのかというキャリブレーションしたものをメモリーに入れており、表示するときにその値を使いレンダリングが行われるという仕組みになっている。

しかし、キャリブレーションの部分は第3者には公開されていないため、『ステレオフォトメーカー』で実現するときはどうすればよいか考えたそうだ。

まずレンズの傾きを調べるために、斜めに細い線を作画して可変できるようにプログラムした。レンズの傾きと合うと斜めの線が切れずに表示される。そのポイントがレンズの傾きになる。レンズのピッチは、ラフ調整と精密調整の2本立てで行っている。

『ステレオフォトメーカー』では32視差で行っているが、ある1点で見たときにひとつの視差画像が見えるハズであるため、単一色を表示しておくとピッチが合っていれば見えるハズだと考えた。ピッチが合っていないときは、しましまの画像が見える。

精密調整では、1視差枚に色を変えていきほぼ単一色になるところでピッチを合わせている。

レンチキュラーレンズと液晶の横方向のセンター位置もずれてくるため、それを合わせる必要がある。『ステレオフォトメーカー』で行ったのは、真ん中に1本の線を表示。中心からずれていくに従って、2本の線の間隔をあけたパターンを表示するようにした。

これでキャリブレーションが行えるようになり、『ステレオフォトメーカー』も使用できるようになった。

という感じで、いろいろと苦労して『ステレオフォトメーカー』を『Looking Glass』対応にしてきたむっちゃん氏だったが、その後「Holoplay.js」で簡単にキャリブレーション値が読み出せることがわかったという。

そのため調整不要でウェブアプリ(http://stereo.jpn.org/lkg/carib/index.html)で書き出したキャリブレーションファイルを、『ステレオフォトメーカー』に読み込ませるだけでOKとなったそうだ。

■左右立体写真を『Looking Glass』

次にむっちゃん氏が取り組んだのは、左右立体写真を『Looking Glass』に表示されることだった。左右2視差を『Looking Glass』の多視点に変更する必要があるのだが、2視差にこだわらなければ、流行りのフォトグラメトリなど、様々な方法がある。しかし、多視点は枚数も多く撮れるシチュエーションも限られてしまう。また、手持ちの立体写真を表示したいという思いから、デスプマップ(奥行き情報)を使うことにした。

しかし、『Looking Glass』は非常に視差が広い。そのため、デスプマップを使用すると後ほど触れるオクルージョンの問題が出てくる。そした危惧はあったものの、とりあえずやってみようということで挑戦している。

左右ステレオ写真が立体に見えるのは、右と左を赤とシアンで重ねて奥に行くほど左右のずれが広がっていく。この左右のずれを、人間は奥行きと認識しているのだ。デプスマップはそれを使って、左右同じ対応をするポイントがどのくらい離れているかを、奥行きとして白黒の濃淡で表しているのだ。

ひとつ注意しなければならないのが、白が手前になるものと黒が手前になるものがあることだ。『ステレオフォトメーカー』では、デフォルトが黒手前にしているが、白前にすることもできる。

この左右のずれをデプスに落とすのは、汚くなってしまい難しい。いろいろと試した結果、一番良かったのが『DMAG5&9b』というツールだったという。こちらはフリーで配布されている、コマンドラインベースのツールだ。このツールはバージョンがいろいろとあり、最新のものがいいのかと思ったらそんなことはなかった。作者に聞いてみたところ、『DMAG5』でデプスを作り、『9b』でデプスを整形するのが一番オススメだと言われたという。

デプス制作ソフト

http://stereo.jpn.org/jpn/stphmkr/makedm/dmag5_9b.zip

デプスが作れるようになると、視差が広がるほどズレ量が大きくなるだけであるため、そこから多視点画像はいくらでも作ることができる。ただし、問題となるのが正面から見た画像に対して横に回り込むと、手前の物体の裏側が元の画像に無いため描かれない。いわゆる「オクルージョン領域」と呼ばれるところだが、デプスから視差画像を作るときには、このオクルージョンの問題がつきものだ。

そこをうまく塗る必要があるのだが、『ステレオフォトメーカー』では背景色で塗るようにしている。結果的に、『Looking Glass』で見たときはあまり気にならないレベルになったそうだ。

ここまでは、2視差画像からデプスを作り『Looking Glass』に表示させる方法だが、そのほかのやり方では、2眼のiPhoneや複眼のAndroidといったスマートフォンを利用する方法もある。これらのスマートフォンには「ポートレート写真」モードが用意されているが、そこにデプスが使われている。各社様々な形式で埋め込まれているのだが、『ステレオフォトメーカー』でも独自解析でデプスが呼び出せるようにしている。

むっちゃん氏のサイトでは、『Looking Glass』用のウェブアプリケーションも多数公開されており、サンプルもダウンロードすることができる。興味がある人は、まずはこちらをチェックしてみよう。

  • Looking Glass用 WEBアプリケーション集

http://stereo.jpn.org/lkg/index.html

■Looking Glass向けに ムービー書き出してみたアレコレ

ライトニングトーク枠として、最初に登壇したのが黒河優介氏だ。同氏からは、「Looking Glass向けに ムービー書き出してみたアレコレ」と題して、『Looking Glass』向けに動画を書き出したときの知見が共有された。

▲黒河優介氏。

『Looking Glass』にはパワフルなPCが必要だが、非力なタブレットPC『Surface』でも動かしたいと考えた黒河氏。それならは動画にすればサクサク動くのではないかと考え、『Looking Glass』向けに動画を書き出してみたそうだ。

この『Looking Glass』は、動画共有サービスの「Vimeo」と提携している。そのため、「Vimeo」用のアプリも標準で用意されている。「Vimeo」側にも特設のコーナーがあり、『Looking Glass』向けの動画だけを見られるようになっている。さらに、誰でも『Looking Glass』向けの動画を作ることができるように、SDKも配布されている。

Quilt動画(Vimeo)

https://vimeo.com/channels/thelookingglass

録画用UnitySDK

https://github.com/vimeo/vimeo-unity-sdk/wiki/Recording-holograms-with-The-Looking-Glass

『Looking Glass』は、複数の角度から見て異なる映像が見られるようになっている。このときに、少しずつ3Dのカメラをずらしていきながらレンダリングを行い、複数のコマが映った多視点画像から独自の動画にして表示している。しかし、共有する場合は最終的な動画ではなく、多視点画像のほうでなくてはいけない。その理由は、『Looking Glass』は個体ごとにキャリブレーションする必要があるからだ。

自分の『Looking Glass』で見られたとしても、他の『Looking Glass』では見られないということもありうるのだ。 

先ほどのSDKを使えば簡単に動画の書き出しができるのだが、それを知ったのは今回の発表の準備をした後だった。そのため、黒河氏は自前で作業を行っていたという。

多視点用の画像出力をそのまま使うわけにはいかないため、HoloPlaySDKを改造して、録画を行っている。リアルタイムで録画してみたところ、ノイズが激しくなってしまった。公式のVimeoSDKでも同じ問題を抱えていることがわかり、それを解決するのは「AVPro」のムービーキャプチャ(75ドル)にアップグレードすることを勧められたという。

そちらは諦めて、一番綺麗な動画を作るのは静止画を連番で書き出すことだと考え、自前でエンコードすることにしている。そこで、オープンなソフトウェアの『ffmpeg』を使用している。連番の書き出しには、『Unity Recorder』を使用している。音声はコマンドラインから抽出し、連番静止画と音声ファイルから動画を制作している。

こうして完成したのが、4096×4096サイズ、5×9(45視点分)のTileの4分ちょっとの動画だ。ファイルサイズは、なんと4.57GBにもなったという。あとはVimeoにアップロードすれば再生できるのだが、4GB以上のファイルは有料となってしまう。そこで、スタンドアローンアプリを作ることにしたそうだ。

ここまでお金が掛からないように工夫をしてきたのだが、Unity標準のVideo Playerでは、4096×4096の動画ファイルは再生するだけでカクついてしまう。UnityのVideo Playerがハードウェアエンコーディングをちゃんとしていないとも考えられるが、1万5000円する『AV Pro』を買ってみたところ、ヌルヌル再生することができたそうだ。

今回黒河氏が作成した実働プログラムとサンプル動画は、下記のURLで配信されている。こちらは、ファイルを差し替えるだけで利用可能となっている。

実働プログラム+サンプル動画

http://wotakuro.sakura.ne.jp/datas/lookingMoviePlayer.zip

PhotoWords 高島おしゃむ
コンピュータホビー雑誌「ログイン」の編集者を経て、1999年よりフリーに。
雑誌の執筆や、ドリームキャスト用のポータルサイト「イサオ マガジン トゥデイ」の
企画・運用等に携わる。
その後、ドワンゴでモバイルサイトの企画・運営等を経て、2014年より再びフリーで活動中。