Android XRについて調べています。今回はアプリの利用形態について整理してみました。
1. Android XRにおけるアプリの利用形態は"Home Space"と"Full Space"の2種類のみ
Home SpaceとFull Spaceの違いを書いたイラストはこちらです。
左のように、空間に板状のスクリーンを複数並べてマルチタスクのように使う場合をHome Spaceと呼びます。
右のように、空間全部を使う場合をFull Spaceと呼びます。
それぞれの主な特徴を書き出します。
名称 | 特徴 |
---|---|
Home Space | - 複数アプリを使用できる - これまでのAndroid アプリを修正なしに使用できる - 3Dモデル表示はサポートしない |
Full Space | - Full Space対応アプリが表示している時、他の全てのアプリは非表示になる - JetPack XR SDKを使用して、既存の2D Androidアプリを対応させることができる - Unity, OpenXR, WebXRを使用してアプリ開発ができる - 3Dモデル表示をサポートする |
参考: Foundations | Android XR | Android Developers
2. "Full Space"形態の持つ3種類の表示方法
このように、Spatial Panels (Spatial UI と同じ意味で使われている可能性あり) , 3D models, Spatial Environmentの3パターンあります。
参考:
Design for Android XR differentiated apps | Android Developers
2.1 Spatial Panels
このように、新しいパネル状のデザインが定義されています。
これらのパネルは、このように配置方法が様々です。
参考:
Spatial UI | Android XR | Android Developers
2.2 3D models
このように空間に3Dモデルを表示する機能です。
3Dモデルは1つあるいは複数表示できますし、グループ化もできます。
ファイルフォーマットは.glTF または .glbと決まっています。パフォーマンス向上のためには、ファイルサイズをできるだけ小さくする、解像度が高いテクスチャは使わない、ということが書かれていました。
Android XR supports 3D models with either a .glTF or .glb file extension. GL Transmission Format (glTF) is a standard 3D file format that minimizes asset size, loads fast, and is operable across platforms. You can export these file formats from third-party digital content creation tools such as Blender, Maya, Spline, among others.
To optimize performance, prioritize small file sizes. Avoid excessive polygon counts or high-resolution textures that could impact rendering speed.
参考:
3D model design | Android XR | Android Developers
2.3 Spatial Environment
Meta Quest デバイスでゲームをするときのように、完全にVR空間に没入する場合か、Mixed Reality表示で現実空間にオブジェクトが表示される場合の利用形態です。 (Android XRではMixed RealityではなくARと呼んでいるようです)
空間を覆う360度画像の話とか、パフォーマンスに関する話が書いてあります。
When a user launches your Android XR app in Full Space, you can present it in passthrough or override their environment with an immersive virtual space.
参考:
Spatial environments | Android XR | Android Developers
3. おわりに
思ったよりも色々と、細かく決まっているようです。
今回紹介した内容は全て公式ドキュメントから引用しています。公式ドキュメントにはアプリ開発用のデザイン定義なども書いてあります。
次回、時間が取れたらもう少し詳細に調べてみたいと思います。