VR/AR/MRは「空間的コンピューティング」の波だ Googleが語るDaydream・Tangoの基礎【Unite】
5月8、9日に東京国際フォーラムで開催された、Unity開発者向けイベントの「Unite 2017 Tokyo」。8日、Googleはスポンサードセッションとして「What to Pack: Exploring VR & AR with Daydream and Tango」というタイトルでセッションを行い、スマホでVRとARに取り組むその理由と、VRの「Daydream」、ARの「Tango」というプラットフォームを解説した。
本セッションは、Uniteとしては「BEGINNER」のマークがついている通り、全体的にはDaydreamとTangoを総括する初心者向けの内容が中心だったが、ユーザーの没入感を大事にする考え方など、ハイエンドのデスクトップPC向けVRとは違う形でのノウハウの紹介を含んでいた。改めてAndroidというモバイルプラットフォームを中心に据えたGoogleの考え方がよく詰まったセッションであったので、まとめていこう。
ユーザーに情報を届ける次世代の主流がVR/AR/MR
Alex Lee氏はVRとARのプログラムマネージャーで、全世界でこのようなVRとAR、DaydreamとTangoの話をしているとのこと。今日はMobile AR & VRと題して、GoogleがなぜARとVRに関心があるのか、投資をしているか。その理由についてお伝えしよう。
この図はコンピューティング技術の波を表していて、1つの波がおよそ15年を示している。Mainframeから始まり、PC、Internet、Mobileと続いて、次のビッグウェーブとしてVR/AR/MRが来ている。これは空間的コンピューティング(spatially computing)の波であると言える。
GoogleはVRやARそのものが最終目的でなく、様々な情報をユーザーに届けることを目的としている会社だ。このVR/ARで表現される空間的な認知コンピューティング(spatially aware computing)が、ユーザーに情報を届ける次世代の主流になると考えて、これらに取り組んでいる。
VRでは行ったことがない、体験したことがない世界があたかもそこにあるように。ARでは実世界を拡張するという仕組みを、30億台のGoogleのモバイルユーザーに届けようとしている。
※1 30億はAndroidの総アクティベーション数と推測される。
VR、Daydreamとその没入感のための取り組みについて
これは将来の話ではなく、すでにリリースしているプラットフォームについてだ。DaydreamはGoogleの「Pixel」が、TangoはLenovoの「PHAB2 Pro」がそれぞれ最初に発売した対応機器となった。
Daydreamは、全世界で1000万以上のスマートフォンユーザーに体験してもらっているCardboardと、ハイエンドだが持ち運びやケーブルのとりまわしなど物理的な制限に縛られるデスクトップVRとの中間に位置するプラットフォームである。
GoogleのPixelのほか、ZTE、Huawei、Motorola、Asusの各サードパーティーからDaydream対応スマートフォンが発表されている。
それらのスマートフォンをDaydream Viewと呼ばれるゴーグルに装着して利用する。このゴーグルには、クリックできるタッチパッド、アプリボタン、ホームボタンが搭載された専用コントローラが付属している。
Dyadreamはホームアプリを提供している。このアプリのホーム画面を使うことで、ゴーグルを外すことなく、Google Playからのアプリのインストールや、すでにインストールしたアプリの起動が可能だ。コントローラーのホームボタンを押せば、いつでもこの画面に戻れる。
……と、ここまではエンドユーザー向けのDaydream話で、これからは開発者向けにDaydreamが何を実現するための仕組みなのか、どのように実現しているのか、没入感のために何が大事かを語っていた。
人間の脳が外界を知覚する要素として、視覚(何を見たか)、聴覚(何を聞いたか)、どのようなインタラクションがあったかという3つの要素がある。
まず視覚について、人間に遅延はなく、頭が向いている方向の見たものを0ms(ミリ秒)で知覚できる。ところが、これをデバイスで再現しようとすると、人間が動いてからセンサーが認識するまでに20ms、これをCPUで扱うのに5ms、頭の向きにあわせて描画するのに30ms、さらにディスプレーに表示して人間の目で知覚するまでに30ms……とそれぞれのフェーズでかかってしまう。
これを、人間の脳を騙し、現実で起きていると思わせるには20ms以下におさえる必要があり、Googleはこれを「MAGIC」と呼んでいる。
この20msを実現するために、低遅延のディスプレー、高パフォーマンスのSoC、低遅延・高性能のセンサーを搭載した「Daydream Ready」と呼ばれる対応端末を用意している。また、Android 7.0(Nougat)のプラットフォームを組み合わせることで、パフォーマンスの維持、ヘッドトラッキング、システムUI、低遅延な制御──を実現している。
2つ目は、聴覚による没入感について。そこに木があるというバーチャル世界があった際に、ハイポリで詳細な木を用意するよりは、ローポリの木に、音による演出を加える方が没入感が高くなる。ローポリの木はパフォーマンスの観点でもハイポリより優しい。
この、空間的な音声表現を実現するために、例えば森や宇宙船の中といった音響環境を再現する必要がある。Googleでは、そのためのライブラリ(※2)を提供している。これにより、目指しているバーチャル世界にあわせた音響環境にて、オブジェクトが存在する方向から音を鳴らせる。
※2 Google VR SDK – Spatial Audio
3つ目は、インタラクションとコントローラーの話。DaydreamコントローラーはBluetoothで接続されており、手に持って扱う。加速度・ジャイロのセンサーを搭載し、センサーからの入力に基いてDaydreamプラットフォームは腕モデルをシミュレーションする(※3)。肩・腕・手がどのような姿勢になっているかを推測し、開発者はその座標情報を取得できるわけだ。ユーザーにゴルフをさせたり、フライパンを振らせたりすることが可能だ。
※3 設定で左手と右手を切り替えることができ、非常によく腕の姿勢に追従する。とくにポインター操作は快適で、前述のホーム画面において、2Dディスプレーとマウスのように自然に操作できる。
このコントローラーの扱いについてはDaydream Controller Playgroundという16のデモが含まれたアプリがあって、オープンソースとしてUnityプロジェクトを公開している。ぜひ参考にしてほしい。
これらの要素を組み合わせて、ユーザーに快適な体験を届けるためには、いくつかの重要なポイントがある。ユーザーは快適な座り心地の、固定された椅子に座っていることを想定すべきである。例えばキャスター付きの自由に移動が可能な椅子も考えられるが、それは快適な体験につながらない(※4)。また、上下左右に首を動かすことはできるが、股下を覗き込んだり、大きく真後ろを振り向かせるような動作はさせるべきではない。座っている状態は問題がないが、歩いている中程度のモーション、空を飛んでいるような強いモーションの取り扱いには十分に注意する必要がある。
※4 Daydreamはポジショントラッキングには対応していないため、身体を横に動かせてしまうと違和感が発生し、酔いに繋がる危険性がある。また、360度回ることは可能だが、前後左右をせわしなく向かせるような体験は非常にコストが高いこと、また、人間は上半身をひねることにより横や後方を確認することが自然であるため、ここもまたポジショントラッキングに対応していないDaydreamでは姿勢とディスプレーに表示された内容の矛盾が発生することになる。このあたりのプラットフォーム特性を踏まえて、「快適なソファーに座ったつもりで」という表現は適切で秀逸だと感じた。
また、あたかも違う世界にいるように没入していても、あくまでバーチャルな体験として、安全であることをユーザーに示す必要がある。極端に高いところ、極端に狭いところ、目の前にトゲがあるようなところ、オブジェクトの中に自身が埋まったような世界は避けるべきである。
高いクオリティで、しかし60fpsを維持できるよう、様々なツールの提供を予定している。モバイルでもリアルなライティングを実現するDaydream Rendererや、フレームごとのCPU, GPU状況をグラフィカルに確認できるパフォーマンス測定ツールの提供を今月末に予定している(関連記事)。
AR、Tangoで実現できる現実世界の認識
Tangoは、現実の世界をスマートフォンが理解できるようにするシステムである。人間の目はこのような寝室を見た際、どこが床で、どう回ってベッドまで歩いていけばいいかを考えるが、Tangoはこの人間が認識しているものをスマートフォンでももう少し扱えるようにする。
これを実現するために、Tangoには「奥行きの認識」「モーショントラッキング」「それらを利用した画像処理」という3つの特別な機能と、その実現に必要なハードウェアを搭載した。
Daydreamと同様に、Tangoも複数企業から対応デバイスがローンチされている。
Tangoはデバイスがどの向きか、どう動いたかをトラッキングする「モーショントラッキング」、外界の近い遠いを認識する「奥行きの認識」、外界の情報を学習し制御することにより、今どの領域のどの位置に居るかを扱う「領域学習」を実現する。これらの機能により、アプリケーションが実際どのようにARを実現するかを順番にみていこう。
ポケモンGOのようなUIをもつアプリケーションを考えてみよう。まずカメラにオーバレイでキャラクターを表示する。これだけでは、デバイスを動かしても同じ位置にキャラクターが表示されたままである。Tangoの機能にて床が検出され、そこに重力の概念を加えると、床の上にキャラクタを配置できるようになる。さらに外界を認識し、バーチャルオブジェクトを扱うと、物体の後ろにキャラクターが隠れるといった表現が可能になる。
Tangoのアプリケーション例を紹介する。GAPのアプリでは等身大で確認しながら着せ替えができて、そのまま気に入った服を購入することが可能だ。家具を現実の部屋に配置し、サイズなどを確認するアプリもある。
教育目的のアプリでは、地球を表示するものがある。大きな地球儀のまわりを歩きながら世界各地を確認したり、地殻やマントルといった地球の構造を示すビューに切り替えられる。
領域学習の機能を用いて、建物の複数階の構造を立体的に認識し、Google マップにマッチングさせて表示することもできる。
博物館向けのアプリでは、外側からでは棺しか確認することができないが、X線写真のようにミイラの中の骨格を重ねて表示するこができる。
これらのDaydreamとTangoの開発情報については、それぞれの開発者向けサイト(developers.google.com/vrとdevelopers.google.com/tango)を参照してほしい。
(TEXT by ようてん)
*Unite 2017 Tokyoまとめページはこちら。
●関連リンク
・Daydream
・Tango
・Unite 2017 Tokyo
・Unity