Oculus Riftで始めるVRアプリ開発(F8開催直前特集)
Oculus Riftと2015年の商用ヘッドマウントディスプレイの勃興 ― 開発環境の変化と業界の動向
ここ最近のOculus Riftの進化を、時系列を追って押さえておこう! ハードウェアの変遷やGPUメーカーの動向、2015年のVR開発のポイントについても言及する。
本稿は、2014年秋から2015年春現在までのOculus Riftの進化を時系列でまとめた。F8 Facebook Developer Conferenceというカンファレンスが、米国時間で3月25日~26日で開催される予定で、そこでOculus Riftに関するセッションも準備されている。本稿はその予備知識としてぜひ活用していただきたい。
Oculus Connect 2014ハイライト
2014年9月、ロサンゼルスでOculus VR初の開発者カンファレンスであるOculus Connectが開催された。Oculus VR社はFacebookに買収されたものの、このイベントではFacebookのロゴは全く掲示されておらず、終始、Oculus VRのイベントとして運営が行われていた。本節では、その中でも特に重要だと思われる内容をピックアップした。Oculus Connectの発表は全て、サイト上に動画とスライドがアップロードされているため、ぜひそちらも確認してみてほしい。
VRによって人間の知覚をだます時代を目指すOculus
Oculus Connectの2日目に行われた基調講演では、CEOであるBrendan Iribe氏、CTOであるJohn Carmack氏、そしてチーフサイエンティストであるMichael Abrash氏の3名が続けて登壇し、コンシューマー版プロトタイプであるCrescent Bay(図1)の発表などのトピックもあったが、中でも印象的だったのはAbrash氏の講演だ。
彼は講演の中でPerception(知覚)こそReality(現実)であることを説き、新設された研究部門であるOculus Researchで、視覚だけではなく聴覚、嗅覚、触覚、味覚、運動感覚、対話的インターフェースこそがバーチャルリアリティに必要なものであり、Oculus VRではこれらの研究を推し進めてプラットフォームを作り、開発者がアプリケーションを作る関係が不可欠であることを強く主張していた。Abrash氏の講演では、人間の視野に見合った映像を出すには、片目当たりで32K×24K解像度の表示が必要という話もした。これだけでも10年20年スパンで技術進歩を待たなければ実現できないものであり、Oculus VRの目指す未来は一朝一夕にしてならないことを示している。
ハリウッドのVFX業界との連携を図るOculus VR
Oculus Connectでは基調講演の他に、各方面の技術についてのセッションがあり、Oculus SDKのチュートリアルやロードマップの解説、認知心理学の観点からのアプリ開発方法、アプリ開発事例、Unreal Engine 4(以下UE4)での最適化手法などさまざまなものがあったが、筆者の目をひときわ引いたのは「FILM AND STORYTELLING IN VR」というVRでの映像とストーリーテリングを題材にしたディスカッションだった(図2)。モデレーターはOculus VR社のFilm and Mediaディレクターで多くの映像スタジオを経験したEugene Chung氏で、他の登壇者もハリウッド映画のVFXを担当した映像クリエイターと、Unreal Engineを開発しているEpic Games社CTOのKim Liberi氏というメンバーだった。
中でもヘッドトラッキングに応じて見る位置を視聴者が変えられるVR映像のVFXに必要なツールについて話している様子はかなり印象的だった。だからこそカットシーンエディターを内蔵したゲームエンジンを開発しているEpic Games社のCTOが呼ばれたと考えられる。目線で実際にVR映像を作るために必要なものについて議論が交わされていた。
このセッションの内容を踏まえるかのように、2015年3月2日~6日に開催されたGame Developers Conference(GDC)では、Weta Digital社がUE4で作成したVFX映像をCrescent Bayで体験できるVRデモが展示された。残念ながら筆者は現地には行けなかったので体験できなかったものの、Oculus VRが開設したVR映像制作スタジオのOculus Story Studioと合わせて、今後、VR向けのVFX映像は大きく伸びていくだろう。
2015年3月現在までに公開・発表された大きな変化
Samsung Gear VRのリリース
2014年9月、かねてよりうわさのあったAndroid版のOculus製品であるGear VR Innovator Edition(以下Gear VR)が発表された。
これはサムスン電子と協力して開発された製品で、2560×1440解像度の有機ELパネルを持つGalaxy Note 4をHMD(ヘッドマウントディスプレイ)化するGear VRハードウェアを組み合わせたものだ(※サムスンはOculus Riftのパネルも提供している)。
Oculus Rift DK2で追加された位置トラッキングは不可能だが、PC不要のスタンドアロンになったことで、ケーブルが不要になり装着感が非常に向上している。アーリーアダプター向けのバージョンであるInnovator Editionが12月に発売され、Oculus VRはこれを準コンシューマー製品として位置付けている。
Gear VRではOculus公式のストアも開設されており、端末から直接アプリや動画をダウンロードできる。今年4月にGalaxy Note 4より小型で軽量かつppiが向上したGalaxy S6/S6 Edge対応の新型が出ることと、今年中に一般コンシューマー向けの正式製品の発売が現時点で明らかにされている。Oculus Riftの第一世代製品版(Consumer Version 1)がリリースされる時も、Gear VR同様にOculusのストアからアプリを購入・ダウンロードできるようになることだろう。
Unreal Engine 4のVR対応強化
Epic Games社が2014年3月にGitHubでUE4のソースコードを公開したことで話題となった。Oculus VRもUE4を自社のデモを開発するために使っており、UE4のVRアプリケーション開発用の機能を追加したバージョンがGitHubでフォークリポジトリとしてホスティングされている。
Oculus VRが追加した機能として最も大きなものはVRプレビューだ。UE4やUnityのようなゲームエンジンは、編集中のシーンをエディター上で再生できるが、VRプレビューを使えば、プレビュー再生が自動的にOculus Riftの画面に表示される。Direct HMD Accessモードにも対応しているため、編集中はRiftの画面には何も表示されないようにすることも可能だ。UE4はOculus RiftではなくGear VRにもすでに対応している。
UnityのネイティブVR対応の発表
機能が追加されたのはUnreal Engineだけではなく、Unityも同様だ。今月(2015年3月)初めのGame Developers ConferenceでUnity 5.0の正式版と、その機能無制限無料版であるUnity Personalが発表されたことは記憶に新しいが、UnityでOculus RiftやGear VRのアプリを開発するためにはOculus VRのサイトに登録し、開発者ページからPC/Mobile SDKをダウンロードする必要がある。これがUnity外部のネイティブプラグインとして実装されていたため、Unity Personalが発表されるまではUnity Proの購入が必須で、また開発にはOculus Rift向けのPrefabやComponentを使用する必要があるなど、難易度が高くなっていた。
しかしUnity 5.xのロードマップで、Oculus RiftやGear VRをWindows/Mac/iOS/Androidと並ぶプラットフォームの一つとしてUnityの標準機能に統合されることが明らかになっている。これにより、将来的にUnityユーザーはOculus RiftのSDKを別途ダウンロードせずに開発を始めることができ、また、Oculus専用のPrefabやComponentではなくUnity標準のカメラをOculus Rift用の左右立体視カメラに切り替えることができる。Unity Professionalユーザーは特典のベータプログラムで先行アクセスできる予定で、Personalにも一般公開された暁にはOculus Rift/Gear VR向けアプリケーション開発のハードルが大きく下がっていることだろう。
立体音響用オーディオSDKの提供
2014年9月、Oculus VRはVisiSonics社のRealSpace 3D技術のライセンス契約を行ったことを発表した。ヘッドマウントディスプレイを使ったアプリケーションに必要なサウンドとは、頭の向きと位置に合わせて音の聴こえ方も変わってくれることである。RealSpace 3Dはそれをソフトウェアで再現する技術を有しており、早くからOculus Rift向けのサンプルアプリケーションも公開していた。下の動画はその技術を用いたデモであり、イヤホンやヘッドホンで聴くと、頭の位置と出音の位置によって聴こえ方が全く変わっていることが確認できるはずだ。
Oculus VRはこの技術を使った開発者向けのAudio SDKのプレビュー版を公開しており、すでに上の動画のような立体音響をアプリケーションに追加できるようになっている。
ハードウェアの変遷
Oculus Rift製品版のスペックはどうなる?
Oculus Rift DK1は1280×800解像度のタブレット向け液晶パネルにヘッドトラッキング用の1000Hz加速度・ジャイロ・地磁気センサーを組み合わせたものだった。そしてDK2は1920×1080で低残像75Hzの有機ELパネルに変更されたHMD部分と、その位置を赤外線によって計測する位置トラッキングカメラの構成となった。
Oculus Connectで発表されたCrescent Bayはコンシューマー版のプロトタイプと位置付けられており、当初はDK2から順当にスペックアップした2560×1440の有機ELパネルと推測されていたが、今月(2015年3月)、Oculus VRの創業者であるPalmer LuckeyがSXSWで行われたパネルディスカッションで、パネルを2つ搭載していることを明らかにした。Crescent Bayの詳細なスペックとコンシューマー版の予定スペックは現時点で全く明らかにされていないが、単純に解像度を上げて描画負荷を上げるのではなく、専用のパネルを作ることで解像度の割に高精細な表示を行っている可能性もある。
いずれにせよOculus Riftが製品化に向けて性能と完成度を向上させていることは明らかで、コンシューマー向け製品であるそれは、今年6月のE3前後に正式発表が行われると考えられ、Facebookの開発者カンファレンスであるF8でもコンシューマー版の情報が発表される可能性もある。
実在感を極める入力デバイスを模索するOculus VR
2014年3月にFacebookに買収されて以来、Oculus VRはかなりのハイペースで企業買収を行っている。
2014年だけでも、ゲーム用のリアルタイムネットワーク通信ミドルウェアであるRakNetを買収してオープンソース・ソフトウェアとして公開し、12月にはヘッドマウントディスプレイにセンサーカメラを搭載してLEAP Motionのようなハンドトラッキングを行うNimble VRと、リアルタイムの画像処理によって現実世界の物体をトラッキングするSLAM(Simultaneous Localization and Mapping)技術を有する13th Labを買収している。すでに数多くの採用実績があるRakNetはともかく、Nimble VRと13th Labに関してはシーズ型の技術ベンチャーであり、今後1~2年で実製品に採用されることは恐らくないだろう(Oculus VRの開発速度を見てみると「絶対に」ないとは言い切れない)。
これらの技術は、冒頭で書いたOculus VRのビジョンを実現するため、長期スパンで完成度を高めるR&Dが継続されていくと思われる。
VR映像の没入感を上げるためのGPUメーカーの動向
グラフィックスアプリケーションにつきものの「遅延」
現在のコンピューターでは通常、CPUプロセスで発行したグラフィックス処理をGPUで描画し、さらにそれが実際のパネルに表示されて人の目に見えるまでのタイムラグがあり、これが一般的に「遅延」と呼ばれるものだ。HMDを用いたVRアプリケーションの場合は、この遅延を抑えれば抑えるほど、頭の動きや入力操作に対する画面の追従性が良くなるため、Oculus Rift DK2以降ではTimewarpと呼ばれる技術を実装している。
画面表示の遅延を「魔法」で減らすTimewarp技術
現在のディスプレイは60Hzの描画周期が主流で、16.6ミリ秒の間隔でしか画面を表示できない。Oculus Rift DK2の場合は、75Hzなので13.3ミリ秒間隔だが、3.3ミリ秒程度の短縮では状況は根本的には改善されない。そこでOculus VRが開発したTimewarpは、描画周期よりもはるかに速い1000Hzのセンサーの入力情報を利用して「描画した画面が実際に表示される瞬間の頭の向き」を予測し、それに応じて表示される視界をズラす処理をかけることによって、見た目上の遅延をほぼ0ミリ秒に抑えている。
しかし、Timewarpも銀の弾丸では無い。現在、この処理はGPUでの描画が終わり、ディスプレイに転送する直前のタイミングで実行されるため、そもそもアプリケーションが処理落ちしてしまうと、正しいTimewarpを実行することもできなくなる。ディスプレイの描画周期に合わせなければ画面を表示することはできないので、例えば本来13.3ミリ秒以内に終わらなければならなかった描画処理が14ミリ秒掛かってしまうと、それが表示されるのは表示処理が始まった時点から14ミリ秒後ではなく、26.6ミリ秒後となってしまうのだ。これが頻繁に起きると「現実の頭の位置とズレた表示」が繰り返され、視界を揺り動かされたようになり、酔いを引き起こしてしまう。
これを根本的に解決するためには処理落ちさせないことはもちろんだが、Timewarpの処理を画面の描画処理とは非同期にディスプレイの描画周期ごとに強制実行することによってある程度解決できる。しかし、これを実現するためには、GPUの描画にTimewarp処理を「割り込む」必要があり、スケジューリングの自由度が高いLinuxベースのAndroidで動作するGear VRではこれに類する機能を実装済みだが、Windows上のDirect3Dアプリケーションではまだ実装が困難なため、Oculus Riftでは現時点で未対応である。
Oculus VRとGPUメーカーの密接な連携
Oculus Connectのセッションにおいても、非同期のTimewarpを実現するためにAMDとnVidiaの両GPUメーカーと協力して、PCでも非同期Timewarpや効率の良い立体視描画などを実装するために動いていることが発表されていた。そして今年のGDCでは、両社のVRアプリケーション向けAPIが発表された。AMDはLiquid VR、nVidiaはVR Directという名称であり、どちらも描画処理の最中にセンサー情報を引っ張ってくるために必要なLate Latchingや、非同期Timewarpのために必要なコンテキストスイッチをハードウェアが実行するためのAPIをそれぞれの方法で実装している。
非同期Timewarpに必要なGPUのコンテキストスイッチは、Windows 8のDirectX 11.1世代からOSでサポートされていたものの、必須要件ではなかったため、現行のGPUドライバーでは実装されていなかった。
Windows 10のDirectX 12世代でレンダリングパイプラインの自由度が上がるため、非同期Timewarpの実装も容易になるとのことだが、現行のGPUとOSでもドライバーの更新と専用APIの利用により、VRに最適化されたレンダリングパイプラインで描画できるというわけだ。
2015年のVR開発は、どうすればよいのか?
ハイエンド層を向くか、カジュアル層を向くか
上記の通り、VRアプリケーションにおいて処理落ちは大敵であり、今後、PCで非同期Timewarpが実装されても処理落ちによるカクカクした映像は少なからず酔いを引き起こす。グラフィックスの質を上げれば上げるほど、要求スペックは増大するため、UE4やUnityなどで最新のグラフィックス技術を導入したフォトリアルなデモをHMDで滑らかに表示しようとすれば、GPUだけで5万円以上する高価なゲーミングPCが必須となる。PCゲームを遊ぶユーザーでもこれほどのPCを所有し、常にハードウェアを更新する層は非常に少ない。
一方で、Gear VRのようなモバイルHMDはそもそものハードウェアスペックがPCと比べ大きく劣るため、モバイルで滑らかなリアルタイムアプリケーションを実現することはかなり難しいが、実現できればそれは多くのPCで快適に動作するものになる。
筆者の意見としては、現行のグラフィックス技術ではどれだけ頑張っても現実には肉薄できない上に、処理落ちを起こした場合のペナルティが大きすぎるため、グラフィックスを落としてでもパフォーマンスを優先するべきだ。もちろん、固定されたハードウェアで実行できる展示用途などにおいてはこの限りではないが、パフォーマンスが最適化されたアプリケーションならば、低性能の安いPCで実行できるため、より台数を増やすことも容易になる。
Oculus Riftの発売時期は? Oculus以外のヘッドマウントディスプレイは?
Oculus Riftの製品版についてはいまだ発表されていないが、去年11月にCEOのBrendan氏が製品版の発売時期について「months away(あと幾月)」と発言したり、CTOのJohn Carmack氏がGear VR製品版の年内発売がアナウンスされた後にOculus Riftの発売時期は発表されなかったことに対し、「Gear VRより後ということではない旨」をツイートしたりしているため、開発・製造過程で何か問題が起きない限り2015年内にリリースされることは間違いないだろう。
今月のGDCでは、Oculus Riftの他にもPCゲーム世界最大手の配信プラットフォームであるSteamを運営するValve社がHTCと提携し、全く新しいHMDであるSteamVR(図8)を年内発売と発表したり、SCE社がPS4で動作するProject Morpheus(図9)の新型プロトタイプと2016年上半期発売予定を発表したりするなど、Oculus VR以外の企業もVR HMDの開発に本腰を入れて開発を進め、その成果が出始めた。
今年1月のCESでは、ゲーミングデバイスメーカーのRazer社も、Oculus以前からHMDを製造していた企業や、Razer Hydraを開発したスタッフが在籍するSixense社や、LEAP Motionなどを巻き込んで開発中の、オープンソースプロジェクトであるOSVR(図10)を発表するなど、Oculus以外のHMDも非常にホットなのだが、本記事では残念ながらOculus RiftとGear VRの話題のみでこの分量となったため、他のHMDに触れるのはまた別の機会となる。
去年3月の買収発表によってOculus Riftと現在のバーチャルリアリティ技術が世界的に盛り上がったが、買収から丸1年が経過したFacebook社のカンファレンスF8にてOculus VR社の最新成果が明らかにされる可能性はかなり高い。2日目の基調講演は本稿で取り上げたMichael Abrash氏が登壇するため、そこで前述したようなOculusの遠大なロードマップについての内容が含まれる可能性が強く、1日目の全体基調講演でも何か大きな発表がされる可能性がある。当日はストリーミング配信で基調講演を見られるため、ぜひ確認されたい。
渡部 晴人
島根県松江市出身。2013年よりフェンリル株式会社島根支社に所属。
現職ではWeb開発のフロントエンドとバックエンド両方を担当。
2013年から個人で開発したOculus Rift・LEAP Motion対応ゲームソフトBLAST BUSTER(旧称:Perilous Dimension)を数多くのイベントで出展し、2014年には窓の杜ゲーム大賞を受賞。
学生時代から非接触ジェスチャーデバイスに触れており、真に万人向けの入力インターフェースを模索中。
1. Oculus Rift Development Kitの基礎知識
UnityとUnreal Engine 4で、ゴーグル型のヘッドマウントディスプレイ「Oculus Rift」(Development Kit 2)用アプリを開発する方法を解説する連載がスタート。