自転車に乗ってペダルを漕ぎながら、HMD(ヘッド・マウント・ディスプレイ)で360度の全天球映像を見るVR作品「The Ridable City」には、いくつかの実装システムがある。2017年2月の展示ではPlaystation VR(以下、PSVR)とMacBook Proを用いたところ、不思議に思う人が少なくなかった。PSVRはゲーム機のPlaystation 4(以下、PS4)用の周辺機器であって、Mac用ではないからだ。
しかし、MacでPSVRを利用するのは簡単だ。まず、PS4とPSVRを起動した後、図のようにMacに繋ぎ替える。そして、MacMorpheusをダウンロードして起動する。MacMorpheusはオープン・ソースとしてGitHubで公開されている。手っ取り早く動作を確認したい場合は、ビルド済みのアプリケーションがダウンロード可能。もちろん、Apple純正の開発環境Xcodeでビルドしても良い。
MacMorpheusが起動すると、ファイル選択ダイアログが開く。この時に下部のポップアップ・メニューで映像モードを指定して、全天球映像のムービー・ファイルを選ぶ。Thetaなどで撮影した映像なら「2D 360° Regular」だ。これでMacでもPlaystaion VRでも両眼映像が表示される。つまり、Playstation VRはMacの外部ディスプレイとして働き、映像はミラーリングされるわけだ。
映像モード
・2D 180° Regular
・3D 360° Horizontal (Stacked)
・3D 180° Vertical (Side By Side)
PSVRを装着して頭を上下左右に振れば、その方向の映像が表示される。PSVRの傾きセンサーの値を、USBのHID(ヒューマン・インターフェース・デバイス)としてMacMorpheusが取得しているからだ。正面を向いてRキーを押せば視点がリセットされるなど、いくつかのコントロールもある。もっともHMDを被ったままでは、適切なキーを押すのが難しい。実世界では盲人になるVRらしい難点だ。
コントロール
・Enter – Toggle fullscreen
・Space – Play / Pause
・Arrows – Skip backward / forward
・R – Center view / reset orientation
・ESC – Exit fullscreen / quit
・Mouse drag – Look around
Objective-Cで記述されたMacMorpheusは、自由に機能を拡張できる。The Ridable Cityでは、自転車の後輪の回転速度によってムービーの再生速度を変えている。これは簡単なようで面倒だ。なにしろ、Google Cardboardなど他のシステムでは、ムービーの可変再生がサポートされていない。仮にサポートされていても、望むような結果にならないと思われる。
MacMorpheusはムービー再生にAVPlayerを用いるので、rateプロパティの値を変えれば再生速度が変わる。だが、実際には音声が一瞬途切れてしまう。これで連続的に変化させれば、無音または奇妙な再生になる。これを解決するには、音声のみをAVAudioPlayerで再生すると良い。AVPlayerと同時にAVAudioPlayerもrateプロパティで再生速度を設定し、ループ周期で映像と音声を同期する。
このように、MacMorpheusを利用すればPSVRを使って比較的簡単にVR開発が行える。ただし、PSVRの最大の難点はケーブルが多いことだろう。以下の写真はPS4にPSVRだけを接続しているが、これだけでもケーブルがスパゲッティ状態だ。実際には、これにディスプレイとMacが加わるのだから、壮絶を極める。最初の図のような綺麗な配線は正しく絵空事だ。VRは無線に限る。
昨日実際にやってみましたが、とても参考になりました。
ただ、テレビが点いていないとPSVRが有効にならないのが残念なのと(PS4とPSVRだけの時はテレビは不要)、全体的にゆがんで見えるのがとても気になりました。
自作の3D 360° Horizontal (Stacked)向け動画をPS4 & Littlstarで見ると正しく見えるので、アジャストが出来れば良いなと思いました。