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-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
ブロックでラップすることをおすすめします。