2024/12/19
Android XR アプリ開発 | SceneCore APIとScene Viewerで3Dモデルを自由自在に操る
はじめに
Android XRでは、3Dモデルは奥行きと立体感を持つデジタルオブジェクトとして表示され、アプリに現実感と空間的な認識を加えます。ユーザーは自然な操作で3Dモデルとインタラクションでき、これまでにない魅力的な体験を提供します。本稿では、Android XRに対応した3Dモデルの概要と主な機能について解説します。
(この記事は、Android XR Advent Calendar 2024 の20日目です。)
Android XRがサポートしている3Dモデル
Android XRでは、.glTF
または.glb
という形式の3Dモデルが使えます。glTF(GL Transmission Format)は、ファイルサイズを小さく抑えつつ、素早く読み込めて、色々な環境で使える便利な3Dファイル形式です。これらのファイルは、Blender、Maya、Splineといった外部の3D制作ツールから出力できます。
パフォーマンスを最大限に引き出すには、ファイルのサイズをできるだけ小さくすることが大切です。描画速度に影響する可能性のある、ポリゴンの過剰な使用や高解像度のテクスチャは避けるようにしましょう。
プレビュー:
現在、3DモデルはFull Spaceでのみご利用いただけます。
3Dモデルをアプリに組み込む方法
Android XRでは、インタラクティブな3Dモデルをアプリに追加するための方法がいくつかあります。主にSceneCore APIとScene Viewerの2つです。
Jetpack Compose for XR を使っている場合は、Volumeを使うと、UIとの位置関係を考慮しながら3Dモデルを配置できます。
SceneCore API
SceneCore API は、回転、移動、拡大縮小などの操作を実装できます。アプリのUIや背景を表示したまま、3Dモデルとインタラクトできるのが特長です。UIと3Dモデルを親子関係にして、連動させることも可能です。
Scene Viewer
Scene Viewer は、3Dモデルの表示と基本的な操作(回転、移動、拡大縮小など)を提供します。ただし、Scene Viewerは別のアプリとして起動するため、3Dモデルを操作している間はアプリのUIや背景は表示されません。
SceneCore API
SceneCore APIを使えば、ユーザーがアプリから離れることなく、3Dモデルと様々なインタラクションを組み込むことができます。SceneCore APIでは、3Dモデルと一緒にアプリのUI(パネル)や背景も表示できるので、3DモデルとUIを連動させたり、周囲の環境を認識して3Dモデルを現実の空間に固定(アンカー)したりできます。
SceneCore APIでは、さらに以下のこともできます。
3Dモデルに説明(注釈)を加える
複数の3Dモデルを同時に表示する
独自のメニューを作ったり、3Dモデルの表示位置を調整したりする
親子関係
3Dモデルは、パネルや別の3Dモデルと親子関係を持たせることができ、子要素は親要素の動きに合わせて動きます。例えば、親要素が回転すると、子要素も一緒に回転します。
Anchor
ユーザーは3Dモデルを現実世界の特定の場所に固定(アンカー)できます。床や壁といった特定の面はもちろん、水平な面や垂直な面など、一般的な面にもアンカーを設定できます。これにより、3Dモデルが現実世界の空間にしっかりと固定されたように見えます。
Scene Viewer
Scene Viewerを使うと、ユーザーは3Dモデルを見たり、操作したりできます。glTF形式の.glbファイルの3Dモデルを開いて、オブジェクトを好きな場所に配置できます。アプリにこの3Dビューアを組み込むことで、ユーザーは商品のイメージを確認したり、教材を立体的に見たり、3Dモデルを実際に体験したりするのが簡単になります。Scene Viewerには、移動、回転、拡大縮小、アンカーといった基本的な操作を行うためのUIが最初から用意されています。
起動時の表示位置
3Dモデルは、ユーザーが見ている方向から1.5メートル下あたりで丁度、目の前に表示されます。最初は小さく表示され、各方向(縦・横・奥行き)が1.5メートルになるように縮小された状態で表示されます。
操作方法
ユーザーは、自然なジェスチャーを使って3Dモデルを移動させたり、回転させたり、現実空間に固定(アンカー)したり、大きさを変えたりできます。これらの操作を可能にするUIと操作方法が用意されています。
操作メニュー
3Dモデルの操作メニューは、必要に応じて機能を追加できます。例えば、glTFファイルに推奨サイズと実際のサイズが設定されている場合、「1:1」ボタンを押すと、推奨サイズと実際のサイズを簡単に切り替えられます。3Dモデルの表示を終了して元のアプリ画面に戻るには、必ず表示されている「閉じる」ボタンをクリックします。
まとめ
この記事では、Android XRで活用できる3Dモデルの基礎知識から、アプリへの組み込み方法、さらにSceneCore APIとScene Viewerそれぞれの概要について解説しました。Android XRでは、3DモデルはglTF形式で提供されることがわかりました。また、Android XRにはアンカー機能が搭載されており、3Dモデルをジェスチャー操作できる機能も提供されています。Android XRのアプリ開発において、3Dモデルを組み込むことは一般的な手法であると言えます。3Dモデルの基本的な理解を深めた上で、開発に進むことが重要です。
参考情報
Android XRとは|できること、デバイス、開発ツールなど解説
Android XR の情報について以下の記事をご参照ください。
https://ar-marketing.jp/android-xr-what-it-can-be-used-for-devices-tools/
Android XR 技術ブログ
https://1planet.co.jp/tech-blog/category/AndroidXR
空間コンピューティングやARアプリ開発に対する弊社の取り組み
空間コンピューティングやARアプリ開発の取り組みについては、こちらをご覧ください。
https://1planet.co.jp/work/consulting
お問い合わせ
AR関するご依頼・ご相談など、お気軽にお問い合わせください。
https://1planet.co.jp/contact
XR エンジニア
徳山 禎男
SIerとして金融や飲料系など様々な大規模プロジェクトに参画後、2020年にOnePlanetに入社。ARグラスを中心とした最先端のAR技術のR&Dや、法人顧客への技術提供を担当。過去にMagic Leap 公式アンバサダーを歴任。
View More