Jetpack XR 向け ARCore
| 最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
|---|---|---|---|---|
| 2026 年 5 月 6 日 | - | - | - | 1.0.0-alpha13 |
依存関係の宣言
Jetpack XR の ARCore への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、 Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.xr.arcore:arcore:1.0.0-alpha13" }
Kotlin
dependencies { implementation("androidx.xr.arcore:arcore:1.0.0-alpha13") }
依存関係について詳しくは、ビルド依存関係の追加をご覧ください。
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.0
バージョン 1.0.0-alpha13
2026 年 5 月 6 日
androidx.xr.arcore:arcore-*:1.0.0-alpha13 がリリースされました。バージョン 1.0.0-alpha13 に含まれる commit については、こちらをご覧ください。
API の変更
TrackingStateとVpsAvailabilityResultがandroidx.xr.arcore packageに移動し、androidx.xr.runtimeの型が非推奨になりました。(Ic7930、b/480462213)Plane.Typeの名前をPlaneTypeに変更しました(I8c90c、b/482675376)Hand.HandSideの名前をHandSideに変更しました(Ica562、b/482675376)Plane.Labelの名前をPlaneLabelに変更しました(Ic6b67、b/482675376)Geospatial.Surfaceの名前をGeospatialSurfaceに変更しました(I1a8be、b/482675376)Geospatial.Stateの名前をGeospatialStateに変更しました。(I203fa、b/482675376)NativeDataAPI をxr:runtime:runtimeライブラリに移動しました。(I87954、b/494251500)Session.createとSession.configureが非網羅的になり、when ステートメントに else 句が必要になりました。(I9885e、b/495805998、b/495805998)androidx.xr.runtime.FieldOfViewが非推奨になりました。代わりにandroidx.xr.runtime.math.FieldOfViewを使用してください(Ia01a0、b/480233045)- Orbiter を、位置、オフセット、offsetType、配置、高度ではなく、
OrbiterAnchorPoint + VolumeOffsetまたはOrbiterPoseProviderを使用するように変更しました。また、shouldRenderInNonSpatialパラメータも削除しました。非空間でオービターをレンダリングしたくない場合は、オービターを if ステートメントでラップし、SpatialCapabilitiesを確認する必要があります。(I9fbb3、b/462428503) - 移動可能な修飾子を追加しました。これらの修飾子は、現時点では
SpatialPanelsとSpatialExternalSurfaceでうまく機能します。SpatialGltfModelsでもまもなくサポートされる予定です。ただし、すべてのSubspaceComposablesで適切にサポートされるようにする予定です。(I9a3cd、b/479530787、b/478935063、b/478935063) - デベロッパーは
ArDevice.stateFlow をモニタリングしてState.trackingStateを確認し、トラッキングの忠実度に基づいてアプリのレンダリングや警告を適宜調整することが求められます。(Ic00f0、b/445466590) HandJointType列挙値の名前を変更しました。(Ifbc83、b/482670596)FaceConfidenceRegion定数の名前を変更しました。(Ia62d5、b/482670596)FaceBlendShapeType定数の名前を変更しました。(I33b8b、b/482670596)CreatePoseFromGeospatialPoseErrorInternalとCreateGeospatialPoseFromPoseErrorInternalを追加しました。(I4bcf1、b/482666615)DeviceTrackingMode.LAST_KNOWNの名前をSPATIAL_LAST_KNOWNに変更(非推奨のフォールバック付き)、3DoF トラッキング用にINERTIAL_LAST_KNOWNを追加、TRACKING_DEGRADEDをTrackingStateに追加しました。(Ie661c、b/445466590)GroupEntityが非推奨になりました。基本の Entity 機能のみを持つ Entity を取得するには、Entity.createを呼び出します。これにより、Entity インターフェースが返されます。(I4c450、b/473867483)XrLogAPI を追加しました。JetpackXR でロギングを有効にするには、XrLog.isEnabledをtrueに設定します。ログレベルを設定するには、XrLog.Levelを使用します。(I76a1f、b/463460895、b/487378441)
バグの修正
- openxr デバイスにデバイス トラッキング状態のサポートを追加します。(I91485、b/445466590)
バージョン 1.0.0-alpha12
2026 年 3 月 25 日
androidx.xr.arcore:arcore-*:1.0.0-alpha12 がリリースされました。バージョン 1.0.0-alpha12 に含まれる commit については、こちらをご覧ください。
API の変更
Config.augmentedObjectCategoriesを List から Set に変更しました。(I25a64、b/487376359)androidx.xr.arcore.Eye型とandroidx.xr.arcore.Hand型。(I42438、b/449032900)- リソース スコープ設定用に Android コンテキストを渡せるように、
Session.createオーバーロードを追加しました。(I7d3fe、b/415805990、b/477386334) FakeRuntimeAnchor.ANCHOR_RESOURCE_LIMITをFakeRuntimeAnchor.anchorResourceLimitに変更します。(I90841、b/431992235)TiltGestureAPI を試験運用版にしました。この API は今後変更または削除される可能性があります。この API を使用するには、@ExperimentalGesturesApi(Ic9858)にオプトインします。- Config で
AugmentedObjectトラッキングのカテゴリを設定する機能を追加しました(I1f6e4、b/480220930)
バグの修正
PerceptionRuntimeFactoryの実際の場所で META-INF/services/ ファイルを更新して、Chrome のビルドを修正しました。(I7a801、b/481288291)
バージョン 1.0.0-alpha11
2026 年 2 月 25 日
androidx.xr.arcore:arcore-*:1.0.0-alpha11 がリリースされました。バージョン 1.0.0-alpha11 に含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-alpha10
2026 年 1 月 28 日
androidx.xr.arcore:arcore-*:1.0.0-alpha10 がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
新機能
TiltGestureAPI を導入し、デバイスの傾き(上/下)の状態を移行の進行状況とともに安定して検出するためのリアクティブなFlowを提供します。(Ic269f、b/448152779)- Jetpack XR 向け ARCore で XR ランタイム ロギング メカニズムが使用されるようになりました。詳しくは、
androidx.xr.runtime.Logをご覧ください。(l52735、b/448697662)
API の変更
Geospatial.createPoseFromGeospatialPoseが OpenXR 対応デバイスで動作するようになりました。(l362c6)
バージョン 1.0.0-alpha09
2025 年 12 月 3 日
androidx.xr.arcore:arcore-*:1.0.0-alpha09 がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
バージョン 1.0.0-alpha08
2025 年 11 月 19 日
androidx.xr.arcore:arcore-*:1.0.0-alpha08 がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
新機能
- Jetpack XR の
ARCoreが、Google Play 開発者サービス(AR)を利用できるデバイスをサポートするようになりました。 - VPS の可用性とポーズ変換のための Geospatial API を追加しました(I144dc)
バージョン 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ブロックでラップすることをおすすめします。