Jetpack XR 向け ARCore
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2025 年 10 月 22 日 | - | - | - | 1.0.0-alpha07 |
依存関係の宣言
Jetpack XR の ARCore への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、 Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha07" // Optional dependencies for asynchronous conversions implementation "androidx.xr.arcore:arcore-guava:1.0.0-alpha07" implementation "androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha07" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha07") // Optional dependencies for asynchronous conversions implementation("androidx.xr.arcore:arcore-guava:1.0.0-alpha07") implementation("androidx.xr.arcore:arcore-rxjava3:1.0.0-alpha07") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.0
バージョン 1.0.0-alpha07
2025 年 10 月 22 日
androidx.xr.arcore:arcore-*:1.0.0-alpha07 がリリースされました。バージョン 1.0.0-alpha07 にはこれらの commit が含まれています。
バグの修正
:xr:arcore:arcore-openxrが:xr:arcore:arcoreの実装依存関係として追加されました(I47315、b/446999229)
バージョン 1.0.0-alpha06
2025 年 9 月 24 日
androidx.xr.arcore:arcore-*:1.0.0-alpha06 がリリースされました。バージョン 1.0.0-alpha06 にはこれらの commit が含まれています。
API の変更
ARCoreのテストサポートがxr:arcore:arcore-testingモジュールに移行しました。(I25469)- レンダリング目的でアプリがデバイスのポーズとディスプレイ構成を取得できるように、
ArDeviceとRenderViewpointを追加しました。(Ib7e3f) HAND_JOINT_TYPE_接頭辞を使用してHandJointType列挙型の名前を変更します。(I3f7cd)HandJointTypeがxr:runtime:runtimeからxr:arcore:arcoreに移動しました。(Iadb9c、b/409058039)Hand.Stateは、パフォーマンス重視のアプリケーションに簡単にアクセスできる形式で、ジョイント ポーズを含むjava.nio.FloatBufferを公開するようになりました。(I55e27)
バージョン 1.0.0-alpha05
2025 年 7 月 30 日
androidx.xr.arcore:arcore:1.0.0-alpha05、androidx.xr.arcore:arcore-guava:1.0.0-alpha05、androidx.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-rxjava3にstateFlowable拡張関数を追加しました。(I083aa、b/427247794)
API の変更
- 動作を反映するように、構成
*Mode値の名前が変更されました。(I6d247、b/414648065) - メインの ARCore アーティファクト(xr:arcore:arcore)には、Kotlin スタイルの非同期 API のみが含まれます。Java デベロッパーは、
xr:arcore:arcore-rxjava3ライブラリに依存して互換性のある API にアクセスできます。(Ia525e、b/422794329) - メインの ARCore アーティファクト(
xr:scenecore:scenecore)には、Kotlin スタイルの非同期 API のみが含まれます。Java デベロッパーは、xr:arcore:arcore-guavaライブラリに依存して互換性のある API にアクセスできます。(Iffcb4、b/422773524) - Java デベロッパーが使用できるように
AnchorGuavaにAnchor.persistAsync()を追加しました。(I4af1c、b/425984631) - Java デベロッパーが使用できるように
EarthGuavaにEarth.createAnchorOnSurfaceAsync(Session, Double, Double, Double, Quaternion, Surface)を追加しました。(I66357、b/425992992) - Java デベロッパーは、
GltfModel.ktのGltfModel.createAsyncの拡張関数を使用します。GltfModelの非同期関数は削除されます。(I0af60) - このライブラリは、型使用である JSpecify nullness アノテーションを使用するようになりました。Kotlin デベロッパーは、次のコンパイラ引数を使用して、正しい使用法を適用する必要があります。
-Xjspecify-annotations=strict(これは Kotlin コンパイラのバージョン 2.1.0 以降のデフォルトです)(Ia8420、b/326456246) - Java デベロッパーが使用できるように、
:xr:arcore:arcore-rxjava3にsubscribeAsFlowable拡張関数を追加しました。(Id3e49、b/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)
TrackingStateとHandJointTypeが ARCore から Runtime に移動しました。Hand.State.isActive (boolean)がHand.State.trackingState (androidx.xr.runtime.TrackingState)に変更されました。- UUID が無効な場合、
Anchor.loadはAnchor.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.leftとHand.rightを使用してトラッキング情報にアクセスします。 - アンカーを生成する API(
Anchor.create、Anchor.load、Plane.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を使用)またはTrackable(createAnchorを使用)に付加できます。アンカーはセッション間で再利用できます。
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ブロックでラップすることをおすすめします。