Jetpack XR 向け ARCore

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

依存関係の宣言

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

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

Groovy

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

Kotlin

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

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

フィードバック

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

新しい問題を報告する

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

バージョン 1.0

バージョン 1.0.0-alpha05

2025 年 7 月 30 日

androidx.xr.arcore:arcore:1.0.0-alpha05androidx.xr.arcore:arcore-guava:1.0.0-alpha05androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha05 がリリースされました。バージョン 1.0.0-alpha05 には、これらの commit が含まれています。

新機能

  • デベロッパーがハンドサイド情報を取得できるように getPrimaryHandSide を追加(I270bd
  • 地理空間チェック VPS 可用性 API を追加(I58573
  • checkVpsAvailability 用の ARCore API を追加(Idbded
  • Java デベロッパーが使用できるように、:xr:arcore:arcore-rxjava3stateFlowable 拡張関数を追加しました。(I083aab/427247794

API の変更

  • 動作を反映するように、構成 *Mode 値の名前が変更されました。(I6d247b/414648065
  • メインの ARCore アーティファクト(xr:arcore:arcore)には、Kotlin スタイルの非同期 API のみが含まれます。Java デベロッパーは、xr:arcore:arcore-rxjava3 ライブラリに依存して互換性のある API にアクセスできます。(Ia525eb/422794329
  • メインの ARCore アーティファクト(xr:scenecore:scenecore)には、Kotlin スタイルの非同期 API のみが含まれます。Java デベロッパーは、xr:arcore:arcore-guava ライブラリに依存して互換性のある API にアクセスできます。(Iffcb4b/422773524
  • Java デベロッパーが使用できるように AnchorGuavaAnchor.persistAsync() を追加しました。(I4af1cb/425984631
  • Java デベロッパーが使用できるように EarthGuavaEarth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface) を追加しました。(I66357b/425992992
  • Java デベロッパーは、GltfModel.ktGltfModel.createAsync の拡張関数を使用します。GltfModel の非同期関数は削除されます。(I0af60
  • このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin デベロッパーは、次のコンパイラ引数を使用して、正しい使用法を適用する必要があります。-Xjspecify-annotations=strict(これは Kotlin コンパイラのバージョン 2.1.0 以降のデフォルトです)(Ia8420b/326456246
  • Java デベロッパーが使用できるように、:xr:arcore:arcore-rxjava3subscribeAsFlowable 拡張関数を追加しました。(Id3e49b/427277298

バージョン 1.0.0-alpha04

2025 年 5 月 7 日

androidx.xr.arcore:arcore:1.0.0-alpha04 がリリースされました。バージョン 1.0.0-alpha04 にはこれらの commit が含まれています。

API の変更

  • Kotlin 2.0 でリリースされたプロジェクトを使用するには、KGP 2.0.0 以降が必要です。(Idb6b5
  • TrackingStateHandJointType が ARCore から Runtime に移動しました。
  • Hand.State.isActive (boolean)Hand.State.trackingState (androidx.xr.runtime.TrackingState) に変更されました。
  • UUID が無効な場合、Anchor.loadAnchor.AnchorLoadInvalidUuid を返します。

バージョン 1.0.0-alpha03

2025 年 2 月 26 日

androidx.xr.arcore:arcore:1.0.0-alpha03 がリリースされました。前回のアルファ版からの重要な変更はありません。バージョン 1.0.0-alpha03 にはこれらの commit が含まれています。

バージョン 1.0.0-alpha02

2025 年 2 月 12 日

androidx.xr.arcore:arcore:1.0.0-alpha02 がリリースされました。バージョン 1.0.0-alpha02 にはこれらの commit が含まれています。

新機能

  • ハンド トラッキングのサポートを追加しました。Hand.leftHand.right を使用してトラッキング情報にアクセスします。
  • アンカーを生成する API(Anchor.createAnchor.loadPlane.createAnchor)は、すべて AnchorCreateResult を返すようになり、AnchorCreateResourcesExhausted を適切に実装するようになりました。

バグの修正

  • Anchor.detach が、セッション更新スレッドとの競合状態により致命的なクラッシュを引き起こすことがなくなりました。
  • エミュレータで実行すると Anchor.create がより安定する

バージョン 1.0.0-alpha01

2024 年 12 月 12 日

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

初回リリースの機能

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

  • Session: ARCore for Jetpack XR は、Jetpack XR Runtime を内部で使用して機能を強化しています。Session は、ほとんどの ARCore for Jetpack XR API とのやり取りに使用されるため、そのドキュメントをご覧ください。

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

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

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

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

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

既知の問題

  • unpersist の呼び出しと、getPersistedAnchorUuids から返される結果から UUID が削除されるまでに遅延が生じることがあります。

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

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

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

  • 特定の状況では、「Anchor was not persisted」というメッセージとともに persist を呼び出すと、RuntimeException が誤ってスローされることがあります。そのような状況でも、関数は成功し、アンカーは永続化されます。回避策として、persist の呼び出しを try ブロックでラップすることをおすすめします。