ARCore for Jetpack XR を使用して知覚によるアプリ エクスペリエンスを強化する

対象となる XR デバイス
このガイダンスは、次のようなタイプの XR デバイス向けのエクスペリエンスを構築する際に役立ちます。
XR ヘッドセット
有線 XR グラス
オーディオ&
ディスプレイ グラス

ARCore for Jetpack XR は、アプリがさまざまな API を通じて現実世界を理解するための強力な認識機能を提供します。これらの API の中には、XR ヘッドセットや有線 XR グラスなどのデバイスの没入型エクスペリエンスを強化するもの、AI グラスなどのデバイスの拡張エクスペリエンスを強化するもの、すべてのタイプの Android XR デバイスのアプリ エクスペリエンスを強化するものがあります。

たとえば、ARCore for Jetpack XR を使用して、平面データを取得したり、空間内の固定位置にコンテンツをアンカーしたり、地理空間ポーズを使用して現実世界の場所にコンテンツをアンカーしたりできます。

ライブラリの依存関係を追加する

XR アプリで知覚機能を使用する前に、AR で強化するアプリ エクスペリエンスの種類に応じて、必要な依存関係を追加します。

セッションにアクセスする

Jetpack XR 向け ARCore の知覚機能は、Jetpack XR ランタイムを使用する Session に依存しています。

アプリがセッションにアクセスする方法は、認識機能で強化するアプリ エクスペリエンスの種類によって異なります。

Jetpack XR Runtime を使用してセッションを作成する

セッションを作成するには、Context を create() メソッドに渡します。この Context は、没入型 XR デバイスまたはモバイル デバイスの Activity、またはスマートグラスの投影コンテキストです。

ARCore セッションの作成は負荷の高いタスクになる可能性があるため、次の例に示すように、バックグラウンドで処理する必要があります。

lifecycleScope.launch {
    when (val result = Session.create(context)) {
        is SessionCreateSuccess -> {
            val xrSession = result.session
            // ...
        }
        else ->
            TODO(/* A different unhandled exception was thrown. */)
    }
}

create() 関数は、オプションの LifecycleOwner パラメータを使用できます。これにより、セッションのライフサイクルを別の LifecycleOwner で管理できます。LifecycleOwner は、指定されたコンテキストのスコープ内でライフサイクルを開始および終了する必要があります。そうしないと、Session がリークしやすくなります。

セッションを構成する

一部の機能はデフォルトで無効になっているため、機能させるには構成する必要があります。セッションを構成するには、configure() を使用し、Session に必要な構成オプションを指定します。さまざまな AR 機能に必要な構成の詳細については、各 AR 機能の対応するページをご覧ください。

次のステップ

アプリにセッションが作成されたら、さまざまな XR デバイスでアプリ エクスペリエンスを向上させる方法を確認します。