Metaから10月に発売された新型VRゴーグル「Quest 3」の最大の特徴は「MR」への対応である。筆者はこれまで、従来機「Quest 2」で日常的にVRは使っていたので(主にVRChat)、MRについては「VRの背景をリアル映像にしただけでしょ?」というくらいの認識でいて、それほど重視はしていなかった。が、それは大きな間違いだった。
VRの楽しさは「やってみないと分からない」とよく言われる。PC上の平面的な画像や動画だけでは、どうやっても人体の感覚で得る3D体験は伝えきれないのだ。それと同じく、MRの楽しさもまた、やってみて初めて分かることが多かった。
Quest 3を入手してからのこの2カ月で、筆者はいろいろMRアプリを開発して、楽しんでみた。開発方法について詳しく説明しようとするとかなりの長編連載になってしまうため、本記事では簡単な概要のみ、紹介することにしたい。「面白そうだ」と思ったら、具体的なやり方は各自で調べてもらえれば幸いだ。
VRとARとMRは何が違う?
Quest 3の性能については、すでにいろんなレビューで紹介されているので省略するが、ざっと概要だけ確認しておこう。従来機からの特に大きな変更点は、カラーカメラと深度センサーを搭載したこと。この2つの搭載により、従来は数十万円する業務用機が必要だった本格的なMR体験が、コンシューマ機で可能になったのだ。
これについて触れる前に、まずは用語について補足しておこう。VR、AR、MRなどは、まとめてXRとも呼ばれる。これらの技術は、何が違うのか。人によって解釈が違うところもあるだろうが、筆者は以下のように考えている。
VR(仮想現実)は分かりやすいだろう。これはすべてがCGで描かれており、バーチャル内ですべてが完結している。AR(拡張現実)は、リアル映像をベースに、CGを加えたものだ。そういう点ではMR(複合現実)も近いのだが、MRの大きな違いは、壁やテーブルの位置など、現実世界の3D情報も活用するということである。
たとえば、CGのボールを投げたら、現実世界の壁面で跳ね返る(ように見える)。これだけでも、CGのボールの存在感がグンと上がる。また、CGのボールがテーブルの向こう側に落ちたら、テーブルに隠れて見えなくなる。現実世界では当たり前のこういった処理をすることで、CGの存在がより自然に感じられるようになる。
こういった3D情報の取得に威力を発揮するのが深度センサーである。事前に室内を3Dスキャンする手間が必要なものの、Quest 3を装着して室内を見渡すだけなので、面倒ではない。壁、床、天井の面の位置も、自動で取得してくれる。
実は、従来のQuest 2でも、簡易的なMRは可能だったのだが、Quest 2の外部カメラはモノクロで解像度も粗かった。Quest 3はフルカラーに進化し、しかも解像度が大幅に向上。本格的なMR機として、十分実用レベルとなったのだ。
MRアプリ開発には何が必要?
Quest 3のMRアプリ開発には、ゲームエンジンとして「Unity」または「Unreal Engine」が正式に対応している。これは慣れている方を選べば良いと思うが、筆者はずっとUnityを使っていたので、今回もUnityで開発した。バージョンはとりあえず、2022以上を選んでおけば問題無いだろう。
最初に1つ補足しておきたいのは、プログラミングの知識が無くても、MRアプリの開発は可能だということだ。もちろん、プログラミングができた方がやれることは増えるし、プログラムを書いた方が早い場合も多いのだが、Unityの機能は豊富なので、プログラム無しでもかなりのものは作れる。もし知らなくても諦める必要は無い。
また3Dモデルを作るスキルはあった方が良いが、これも無ければ無いなりになんとかなる。Unityのアセットストアには、様々なエフェクトや3Dモデルなどがあり、これらをうまく活用するだけでも結構いろんなものが作れる。全てを自分一人で作るのは大変なので、有り物を活用するのは時間の節約にもなる。
Unity用のSDKとしては、今回、「Oculus Integration」を使った。現在は新しいSDKとして「Meta XR SDK」が提供されており、Oculus Integrationは非推奨となっているのだが、両方試してみたところ、Oculus Integrationの方がサンプルが充実しており、初めて開発するときの参考にはしやすかった。
やはり、文章で作り方を説明されるより、実際のサンプルプロジェクトを見て、どう実装されているのか直接確認した方が手っ取り早い。Meta XR SDKは新しいため、まだWEB上の情報も少ない。業務で使うならともかく、個人レベルで楽しむ分には、提供され続けている限り、Oculus Integrationを使うのもアリだろう。
Unityでビルドすると、拡張子がapkのファイルが出力される。それをQuest 3にインストールする方法はいくつかあるが、筆者は「Meta Quest Developer Hub」という公式アプリを使っている。ドラッグ&ドロップで簡単にインストールできるほか、Quest 3のスクリーンショットを取得する機能もあったりして便利だ。
実際にアプリを開発してみた
では、実際にQuest 3でどんなMRアプリが作れるのか。筆者が開発したものを簡単に紹介しよう。
最初に作ったアプリは「はやぶさ2#MR」だ。これは、公開されている小惑星探査機「はやぶさ2」の軌道情報を読み込み、探査機や各天体の動きを再現したものである。ベースとなったプログラムはすでにVRChat用に作ってあったので、基本的にはそれを単独のMRアプリとして移植することを目指した。
VRもMRも基本的な作り方は、それほど変わらない。3Dスキャンした現実の壁やテーブルなどの面は、UnityからはCGのオブジェクトと同じように扱われるため、たとえばCGのボールをテーブルの上に落としたとき、下に突き抜けずにテーブル上で止まるようにすることなどは、簡単にできる。
ただ、MRらしさを出すためには、いくつか特有の機能がある。筆者がまず実装しようとしたのは、以下の機能だ。
- 現実世界の映像を表示するパススルー機能
- 現実とCGの前後関係を正しく表示する機能
- 現実の壁・天井・床を操作する機能
- コントローラではなく手で操作する機能
最も基本となるのは(1)のパススルー機能で、これはすぐに実現できた。やや苦労したのが(2)の実装なのだが、この機能のおかげで、たとえば探査機や天体が壁の向こうに行ったときはちゃんと隠されていて、違和感が無い。
(4)はQuest 3のハンドトラッキング機能で実現できる。これはMR特有というわけではないのだが、MRは現実の映像が見えているので、現実と同じように手でUIのボタンを押せるようにした方が違和感が無い。この機能も、Oculus Integrationの中にサンプルがあったので、それを改良して使っている。
次に作ったのは、「花畑を出す魔法MR」というアプリだ。これは、『葬送のフリーレン』という作品の中で、エルフの魔法使い・フリーレンが一番好きという魔法を再現したもの。筆者はこの作品が好きすぎてつい作ってしまったのだが、実際に試せるのはMRならでは。周囲を花で囲まれるのは、なかなか楽しかった。
上記(3)の機能は、「イプシロンS打ち上げMR」で実装した。これは、部屋の中でロケットを打ち上げたくて作ったアプリなのだが、どう考えてもロケットは室内に収まらない。そのため、秘密基地のように床と天井をスライドさせ、地下からロケットをリフトアップし、打ち上げるギミックを実現した。こういう演出もMRとしては定番だ。
「月面MR」は、タカラトミーの「SORA-Q」製品レビューを書くために開発したもの。このアプリでは天井と床ではなく、壁を動かしているが、技術的には同様だ。月面の風景の代わりに、海底にして魚を泳がせれば、水族館のような感じにもできるだろう。自宅でリラックスするのに良さそうだ(というか現在これを開発中)。
最後は「栗饅頭MR」。ご存じ『ドラえもん』で、ふりかけたモノの数を5分ごとに2倍に増やせるという道具「バイバイン」の話があるのだが、増やしすぎて食べきれなかった栗饅頭を宇宙に投棄処分するというラストシーンに、当時子供だった筆者は恐怖を覚えた。その恐怖感を実感するために作ったのだが、部屋の中が栗饅頭で埋まっていって圧迫されるのはマジで怖い。
これらのアプリは、筆者のWEBサイトで公開しているので、Quest 3を持っているようなら、インストールして試すことが可能だ。
注:これらのアプリをインストールし、使用したことによる結果については、筆者および編集部は一切の責任を持てないため、あくまで自己責任であることを了解した上でお試しください。
Quest 3は「買い」か?
各誌で掲載されているQuest 3のレビュー記事を見ると、MR機能を高く評価しつつも、MRアプリの少なさを欠点として指摘している人が多かった印象なのだが、筆者の場合、自分で開発するのが何より好きな人間なので、これは全く問題にならない。「無ければ作る」というのが、X68000以来の伝統である。
しかし、人に勧めにくいのは、その価格である。本格的なMR機種として安くなったとは言え、7万4800円からというのは、普通に考えて財布に優しくない。個人的には、それでもぜひMRを体験して欲しいと思っているのだが、もしVRだけで良いと割り切るようなら、Quest 2を選択するのも十分アリだろう。
Quest 3は画質も向上しているものの、そこまで劇的に見え方が変わるわけではない。Quest 2はセール時には4万円を切る場合もあり(公式サイトでの原稿執筆時の価格は3万9600円)、2倍近い価格差は大きい。新旧モデルのどちらを買えば良いのか、しばらくは悩ましい状況が続きそうだ。
ただ、やはりMRは楽しい。VRは仮想空間がベースであるのに対し、MRは現実世界がベースであり、体験としてはまったくの別物だった。現実では難しいようなことでも、現実の枠内でできる。それが筆者が感じたMRの面白さである。自分で作ったMRアプリを楽しむためのデバイスとしてなら、7万4800円は絶対に「買い」だ。