Jetpack XR 向け ARCore

認識機能を使用して、デジタル コンテンツを現実世界に持ち込みます。
最新の更新 安定版リリース リリース候補版 ベータ版リリース アルファ版リリース
2024 年 12 月 12 日 - - - 1.0.0-alpha01

依存関係の宣言

Jetpack XR 用 ARCore の依存関係を追加するには、Google Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、 Google の Maven リポジトリをご覧ください。

アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。

Groovy

dependencies {
    implementation "androidx.xr.arcore:arcore:1.0.0-alpha01"
}

Kotlin

dependencies {
    implementation("androidx.xr.arcore:arcore:1.0.0-alpha01")
}

依存関係について詳しくは、ビルド依存関係の追加をご覧ください。

フィードバック

お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。

新しい問題を報告する

詳細については、Issue Tracker のドキュメントをご覧ください。

バージョン 1.0

バージョン 1.0.0-alpha01

2024 年 12 月 12 日

androidx.xr.arcore:arcore-* 1.0.0-alpha01 がリリースされました。

初回リリースの機能

既存の ARCore ライブラリを基に開発された ARCore for Jetpack XR ライブラリは、デジタル コンテンツを現実世界と融合させる機能を提供します。このライブラリには、モーション トラッキング、永続アンカー、ヒットテスト、セマンティック ラベルリングによる平面の識別(床、壁、テーブルトップなど)が含まれています。Jetpack XR の ARCore の使用方法について詳しくは、デベロッパー ガイドをご覧ください。

  • Session: Jetpack XR 向け ARCore は、内部で Jetpack XR ランタイムを使用して機能を強化します。ほとんどの ARCore for Jetpack XR API は Session を使用して操作するため、そのドキュメントをご覧ください。

  • Plane: 飛行機を使用して周囲の世界を把握します。各プレーンには、そのプレーンを意味的に記述する Label があります。subscribe を使用すると、検出された最新の飛行機に関する通知を受け取ることができます。state を使用すると、特定の飛行機の変更に関する通知を受け取ることができます。

  • Anchor: 仮想オブジェクトと現実世界の場所を結ぶリンク。アンカーは、空間内の特定の位置(create を使用)または TrackablecreateAnchor を使用)に配置できます。

    • アンカーはセッション間で再利用できます。persist を使用して保存し、getPersistedAnchorUuids を使用して列挙し、load を使用して取得できます。使用しなくなったら必ず unpersist してください。

    • アンカーは、Jetpack XR の ARCore と Jetpack SceneCore の間で相互運用できます。アンカーを使用して AnchorEntity を作成できます。また、既存の AnchorEntity がある場合は、getAnchor を使用してそのバッキング アンカーを取得することもできます。

    • hitTest を使用して、自然なユーザー インタラクションを実現します。hitTest は Ray を使用して、どのコンテンツが交差しているかを判断し、その場所から Anchor を作成します。InputEvent からヒットテストを実施することを検討してください。

既知の問題

  • unpersist を呼び出してから、getPersistedAnchorUuids によって返された結果から UUID が削除されるまでに時間がかかることがあります。

  • create は、新しいアンカーを返すための十分なリソースがシステムにあることを検証しません。アンカーを過度に作成すると、クラッシュが発生する可能性があります。

  • 以前に保持されていて保持解除されたアンカーの保持は現在サポートされていません。

  • エミュレータでの使用はサポートされていますが、実際のデバイスで実行する場合ほど動作が安定しない場合があります。特に、create の呼び出しがネイティブ コードエラーで失敗し、アクティビティがすぐに終了する可能性があります。

  • 特定の状況では、persist を呼び出すときに「アンカーが保持されませんでした」というメッセージとともに RuntimeException が誤ってスローされることがあります。このような場合でも、関数は正常に実行され、アンカーは保持されます。回避策として、persist の呼び出しを try ブロックでラップすることをおすすめします。