Jetpack XR SDK には、Android XR デバイス向けの没入型エクスペリエンスと拡張エクスペリエンスを構築するために必要なすべてのツールとライブラリが含まれています。
没入感のあるエクスペリエンスを構築する
XR ヘッドセットや有線 XR グラスなどの専用のハイファイ デバイスをターゲットにします。Kotlin や Compose などの最新の Android 開発ツールと、Java や Views などの前世代のツールを使用します。UI を空間化したり、3D モデルを読み込んでレンダリングしたり、現実世界をセマンティックに理解したりできます。
Android 向けのモバイルアプリや大画面アプリをすでに開発している場合、Jetpack XR SDK を使用すると、既存のレイアウトを空間化し、3D モデルや没入型環境でエクスペリエンスを強化することで、アプリを新しい次元に引き上げることができます。既存の Android アプリを空間化するための推奨事項については、品質に関するガイドラインをご覧ください。
拡張された便利なエクスペリエンスを構築する
軽量でスタイリッシュなオーディオ グラスとディスプレイ グラスをターゲットにします。Kotlin や Jetpack Compose Glimmer などの最新の Android 開発ツールを使用します。スマートフォンからグラスに投影されるアプリ エクスペリエンスを促進する API を使用します。
Jetpack ライブラリを使用する
Jetpack XR SDK ライブラリは、リッチで没入感のあるエクスペリエンス、軽量で拡張されたエクスペリエンス、およびその間のあらゆるエクスペリエンスを構築するための包括的なツールキットを提供します。次のライブラリは Jetpack XR SDK の一部です。
- Jetpack Compose for XR: Android XR の空間機能を活用する空間 UI レイアウトを宣言的に構築します。
- XR 向けマテリアル デザイン: XR に適応するマテリアル コンポーネントとレイアウトを使用してビルドします。
- Jetpack SceneCore: 3D コンテンツを使用して Android XR シーングラフを構築、操作します。
- ARCore for Jetpack XR: 認識機能を使用して、デジタル コンテンツを現実世界に持ち込みます。
- Jetpack Compose Glimmer: ディスプレイ グラス向けに最適化された、拡張 Android XR エクスペリエンスを構築するための UI ツールキット。
- Jetpack Projected: スマートフォンからオーディオ グラスやディスプレイ グラスへの投影アプリ エクスペリエンスを容易にする API。
デベロッパー プレビュー中の API 開発
Jetpack XR SDK ライブラリは Android XR デベロッパー プレビューの一部であり、これらの API はまだ開発中です。既知の問題については、ライブラリのリリースノートをご覧ください。
- Jetpack Compose for XR リリースノート
- ARCore for Jetpack XR のリリースノート
- Jetpack SceneCore リリースノート
- XR ランタイム リリースノート
- Jetpack Compose Glimmer のリリースノート
- Jetpack Projected のリリースノート
これらのリストにない問題が発生した場合は、バグを報告するか、フィードバックを送信してください。
Jetpack Compose for XR
Jetpack Compose for XR では、行や列などの空間化されたコンポーネントを使用して、使い慣れた宣言型の Compose モデルで空間 UI とレイアウトを構築できます。
このライブラリには、空間パネルやオービターなどのサブスペース コンポーザブルも用意されています。これらを使用すると、既存の 2D Compose またはビューベースの UI を空間レイアウトに配置できます。他のサブスペース コンポーザブルは、他のタイプの空間ユースケースを処理します。たとえば、SceneCoreEntity を使用すると、UI を基準に 3D モデルなどのエンティティを配置できます。
Jetpack Compose for XR は、既存の Android アプリを空間化する場合でも、新しい XR アプリをゼロから作成する場合でも使用できます。
詳細については、空間 UI のデベロッパー ガイドとライブラリおよび API リファレンス ドキュメントをご覧ください。
XR 向けマテリアル デザイン
マテリアル デザインには、XR に適応するコンポーネントとレイアウトが用意されています。アダプティブ レイアウトを使用してビルドしている場合。詳しくは、XR 向けマテリアル デザインの実装をご覧ください。
Jetpack SceneCore
Jetpack SceneCore ライブラリを使用すると、エンティティで定義された 3D コンテンツを、相互に、また環境に対して配置、調整できます。SceneCore を使用すると、次のことができます。
- 空間環境を設定する
PanelEntityのインスタンスを作成する- 3D モデルを配置してアニメーション化する
- 空間オーディオ ソースを指定する
- エンティティにコンポーネントを追加して、移動、サイズ変更、現実世界へのアンカーを可能にする
Jetpack SceneCore ライブラリは、ビューを使用して構築されたアプリの空間化もサポートしています。詳しくは、ビューの操作ガイドをご覧ください。
詳細については、API リファレンスをご覧ください。
Jetpack XR 向け ARCore
既存の ARCore ライブラリをベースにした ARCore for Jetpack XR ライブラリは、デジタル コンテンツを現実世界と融合させる機能を提供します。このライブラリには、モーション トラッキング、永続アンカー、ヒットテスト、セマンティック ラベリング(床、壁、テーブルトップなど)による平面識別が含まれています。このライブラリは、OpenXR を利用した基盤となる認識スタックを活用しています。これにより、幅広いデバイスとの互換性が確保され、アプリの将来性が高まります。
詳しくは、Jetpack XR 向け ARCore を使用するをご覧ください。
Jetpack Compose Glimmer
Jetpack Compose Glimmer は、ディスプレイ グラス向けに最適化された、拡張 Android XR エクスペリエンスを構築するための UI ツールキットです。一日中装着するデバイス向けに、美しく、ミニマルで、快適な UI を構築します。
- 一目でわかる視認性と読みやすさを重視した設計: スマートフォンとは異なり、プライマリ キャンバスは光学シースルー ディスプレイ(透明)です。Jetpack Compose Glimmer は、グラス固有のテーマ設定、簡素化されたカラーパレット、タイポグラフィを提供します。これにより、コンテンツを読みやすく、処理を高速化し、気が散らないようにすることができます。
- ウェアラブル固有のインタラクションに最適化: メガネの使用方法に合わせてインタラクション モデルを最適化しました。Jetpack Compose Glimmer コンポーネントは、明確なフォーカス状態(気が散るリップル効果ではなく、最適化されたアウトラインなど)を備えており、タップ、フレームのスワイプ、音声などの一般的な物理入力を処理するように構築されています。
- 使い慣れた宣言型 UI パターンを使用する: Jetpack Compose Glimmer は完全に Jetpack Compose 上に構築されているため、Android での宣言型 UI の構築についてすでに知っていることをすべて使用できます。Text、Icon、Button などのコアなビルド済みコンポーズ可能な関数と、TitleChip などの特殊なコンポーネントのフルセットが提供されます。これらはすべて、スマートグラス環境向けに最適化されています。
Jetpack Projected
オーディオ グラスとディスプレイ グラス向けにビルドすると、アプリは、アプリの XR エクスペリエンスを投影するコンパニオン ホストデバイス(Android スマートフォンなど)で実行されます。Jetpack Projected を使用すると、Android ホストデバイスに XR 投影機能がある場合、これらの Android ホストデバイスはオーディオ グラスまたはディスプレイ グラスと通信できます。
- 投影されたデバイス ハードウェアにアクセスする: 投影されたデバイス(オーディオ グラスまたはディスプレイ グラス)に関連付けられたデバイス コンテキスト。この投影されたコンテキストにより、カメラなどの投影されたデバイス ハードウェアにアクセスできます。オーディオ グラスまたはディスプレイ グラスに表示するために特別に作成された専用のアクティビティは、すでに投影コンテキストとして機能しています。アプリの別の部分(スマートフォン アクティビティやサービスなど)がグラスのハードウェアにアクセスする必要がある場合は、投影されたコンテキストを取得できます。
- 権限リクエストを簡素化する: オーディオ グラスとディスプレイ グラスは、標準の Android 権限モデルに沿って動作します。アプリがカメラなどのデバイス ハードウェアにアクセスする前に、グラス固有の権限を実行時にリクエストする必要があります。権限ヘルパーは、スマートフォンとグラスの両方のインターフェースでこれらの権限のリクエスト メカニズムを効率化し、一貫したリクエスト エクスペリエンスを提供します。
- デバイスとディスプレイの機能を確認する: 投影されたデバイスにディスプレイがあるかどうか、また、ビジュアルを表示するディスプレイの状態を確認します。デバイスの機能に基づいてアプリを適応させます。たとえば、デバイスにディスプレイがない場合やディスプレイがオフになっている場合は、より多くの音声コンテキストを提供することをおすすめします。
- アプリのカメラ操作にアクセスする: アプリは、ユーザーのカメラ操作にアクセスできます。たとえば、動画ストリーミング アプリでカメラのオンとオフを切り替えることができます。
Android XR エミュレータで XR アプリのエクスペリエンスをテストする
Android XR エミュレータは、XR アプリ デベロッパー向けに設計された Android Emulator の特殊なバージョンです。Android Studio の使い慣れた環境で XR アプリをテストしてデバッグできます。XR ヘッドセットや有線 XR グラスなどの没入型デバイスから、オーディオ グラスやディスプレイ グラスなどのスマートグラスまで、あらゆるタイプの Android XR デバイスの仮想デバイスを作成できます。
アプリを実行してデバッグする準備ができたら、以下のガイドをご覧ください。
OpenXR™ および OpenXR ロゴは、The Khronos Group Inc. が所有する商標であり、中国、欧州連合、日本、英国で商標として登録されています。