エンジニアの河合です。

Meta Quest 2 のパススルーをつかって、MRシューターをつくろうというシード(ワントゥーテンにはシードという自由開発制度があります)を社内で共有しました。動機としては以下のポイントになります。(Unityを使用)

  • クエスト2でPassThrough(パススルー)がつかえるようになった
  • オバケハンターの素材をつかってMRにして遊びたい

遊びのイメージ

遊びのイメージはこんな感じです。

Youtubeのリンク参照ですが、子供のころのこういう遊びをMRで拡張してみたい、というところが実現できればなという試みです。

ポイントとしてはコリジョン、ソファとか机とかにちゃんとCGが干渉する、というところをしっかりやりたいと思ってます。

  • 光線銃のおもちゃをMRで拡張するイメージ
  • クエストをかぶったらソファの後ろにオバケがいる世界をつくる
  • ソファや家具にはちゃんと当たり判定がある
  • ソファや家具に光線銃の光線があたったらエフェクトを出したい(火花がでたり)

Meta Quest 2 をつかったMRってどうなのか

クエスト2のSDKについてです。2021年末になりますが動画がでてまして、この動画の中でPassThroughとSpatialAnchorsについて述べられていました。

実際につかっている様子なども動画の中で確認できます。

https://www.facebook.com/watch/?v=425242799124044

(MR開発についてのメタ社のビデオ2021/年末発表のもの)

ポイントにあがっていた技術が3つあります。

1 : Passthrough :クエストのカメラで現実世界がみえる機能

2 : Spatial Anchors:現実世界の位置情報を保持する機能。

3 : Scene Understanding:壁、天井、机、などを分類してあつかえる機能。

このうち1と2はすでにUnityでも使用可能で、3については上記ビデオによると2023前半に機能提供予定ぽい?ようです。

1 : Passthroughをテスト

実際にまずPassthroughを検証してみました。動画では部屋の壁に手動でコリジョンをおいて、おばけと壁が干渉するようにしてみてます。

白黒で映像に歪みがあり、ずっとつけていられるような快適さはありませんでした。5分ぐらいがつけてて限界かも。

2 : Spatial Anchorをテスト

こちらはSpatial Anchorsのテストをした様子です。↑の動画ではノートPCの上辺だったりにアンカーを配置し、一度配置したアンカーがクエストのガーディアンを作り直しても位置情報が保持されてるのを確認しています。

ただし、トラッキングロストするとアンカー位置がおかしくなって、アンカーが失われてしまったので、安定性はまだ改善の余地ありでした。

現実空間と位置合わせしてみるテスト

iPhoneのLiDARアプリ(Scanniverse)で部屋のメッシュを生成し、現実空間にビタ合わせしてみるテストです。びたびたとはいかず、大体あってるかな、という程度の精度でした。

動画ではメッシュそのままをCGとして表示しています。みたところだいぶ荒い、ので、そのままはつかえませんが、

  • CG精度をあげるためのアタリとして使用する
  • コリジョン(あたり判定)用として使用する

などでのつかいどころはありそうです。リアルスケールとそのまま合致するので、使い勝手はあるかと思います。

現実空間のメッシュ化については、iPhone13ProのLiDARをつかったアプリ、ScanniVerseで作成→Blenderでリダクションして使用しました。

課題など

以下のように課題がちらほら見つかりました。

  • PassThtoughはIL2CPPじゃないとうごかないので、ビルドに毎回時間がかかりがち。
  • クエストでVFX(Visual Effect Graph)をうごかすのにつまずいた。Vulkanとかも関係してくる模様。

次のステップ

  • 現実の壁からおばけが出てくる演出(現実の壁に波紋をつくりたいが、うまくいってない)
  • おばけをつかんでなげとばす
  • コリジョン判定いれてMR光線銃をつくる
  • マルチプレイ

2019はVRで遊んでました

ちなみに2019時点ではクエスト(初代)+Unity+ Photon でのマルチプレイシューターを社内で実験的に作ってました(懐かしい、、)。