ARCore の主な変更点
ARCore v1.44.0 の新機能
このリリースに新機能はありません。
ARCore v1.43.0 の新機能
Geospatial Creator での Places API の移行
Geospatial Creator の検索機能で、Google の New Places API が使用されるようになりました。検索機能を使用するには、Google Cloud コンソールで「Places API (new)」を有効化します。
ARCore v1.42.0 の新機能
Unity 用 Geospatial Creator でタイルにスナップする
ARGeospatialCreatorAnchor
Editor Inspector パネルに [Snap to Tile] ボタンが追加されました。このボタンを使用すると、Terrain または Rooftop アンカーのエディタ専用の高度値を、アンカーの現在の緯度と経度における 3D タイル ジオメトリの上部に設定します。このプロパティは実行時の動作には影響しません。これにより、エディタ内のアンカーの位置を、実行時にその位置に合わせて調整できます。
ARCore v1.41.0 の新機能
Geospatial Creator API
Unity 用 Geospatial Creator に、エディタモードでの Geospatial Creator オブジェクトの作成と操作がサポートされるようになりました。新しく使用可能になったクラスと API については、Geospatial Creator API ガイドをご覧ください。
AR Foundation バージョン 5.x のサポート(ベータ版)
Unity の AR Foundation の ARCore Extensions で、AR Foundation バージョン 5.x がサポートされるようになりました。既存のプロジェクトを AR Foundation に移行するには、移行ガイドをご覧ください。
ARCore v1.40.0 の新機能
iOS の Scene Semantics
Scene Semantics API は、ARCore SDK for iOS と、iOS プラットフォームをターゲットとする Unity の AR Foundation の ARCore Extensions で利用できるようになりました。Scene Semantics API を使用すると、デベロッパーはユーザーの周囲のシーンをリアルタイムで把握し、ピクセルを 11 クラスの屋外コンポーネントにラベル付けできます。詳しくは、シーン セマンティクスの概要をご覧ください。
iOS
Unity(AR Foundation)
Unity 用 Geospatial Creator でスポットを検索する
Unity 用 Geospatial Creator がテキスト検索に対応し、Photographic 3D Tiles ビューを配置できるようになりました。詳しくは、Geospatial Creator でスポットを検索するをご覧ください。
ARCore v1.39.0 の新機能
このリリースに新機能はありません。
ARCore v1.38.0 の新機能
このリリースに新機能はありません。
ARCore v1.37.0 の新機能
シーンのセマンティクス
Scene Semantics は周囲のシーンについてより詳細な情報を提供し、ユーザーの周囲の状況を把握しやすくします。Scene Semantics は、カメラの画像フィードに対して ML モデルを実行し、各ピクセルが屋外のコンセプトの 11 のラベルのいずれかに対応するセマンティック画像を提供します。
詳細については、Scene Semantics の概要と semantics_java サンプルアプリをご覧ください。
街並みのジオメトリ
Streetscape Geometry は、新しい ARCore Geospatial API で、Geospatial API が有効になっている場合に、ユーザーの周囲にある建物や地形のジオメトリを提供します。
Android(Kotlin/Java)
Streetscape Geometry デベロッパー ガイド(Kotlin/Java)をご覧ください。また、geospatial_java サンプルアプリが更新され、Streetscape Geometry が追加されています。
Android NDK(C)
詳しくは、ストリートビュー ジオメトリ デベロッパー ガイド(C)をご覧ください。
Unity(AR Foundation)
詳しくは、ストリートビュー ジオメトリ デベロッパー ガイド(Unity)をご覧ください。
iOS
詳しくは、ストリートビュー ジオメトリ デベロッパー ガイド(iOS)をご覧ください。また、GeospatialExample アプリが更新され、Streetscape Geometry が含まれます。
GARStreetscapeGeometry
:GARStreetscapeGeometry.mesh
は 3D メッシュを提供します。GARStreetscapeGeometry.meshTransform
は、セッションの世界空間を基準としたジオメトリの原点変換を提供します。GARStreetscapeGeometry.trackingState
はトラッキング状態を維持します。GARStreetscapeGeometry.type
は地形ジオメトリか建物ジオメトリかを示します。GARStreetscapeGeometry.quality
はジオメトリの品質を提供します。GARStreetscapeGeometry.identifier
は、ジオメトリの一意の識別子を提供します。GARSession.createAnchorOnStreetscapeGeometry:transform:error:
は、指定された場所と向きにアンカーを作成します。GARSession.raycastStreetscapeGeometry:direction:error:
は、シーンに読み込まれた Streetscape Geometry に対してレイキャストを実行します。
屋上アンカー
屋上アンカーは、コンテンツを屋上に固定するための新しい地理空間アンカータイプです。
Android(Kotlin/Java)
地理空間アンカー(Java)をご覧ください。また、geospatial_java サンプルアプリが更新され、屋上アンカーが追加されました。
Android NDK(C)
詳細については、地理空間アンカー(C)をご覧ください。
Unity(AR Foundation)
詳細については、地理空間アンカーをご覧ください。また、地理空間サンプルが更新され、屋上アンカーが含まれるようになりました。
ARAnchorManagerExtensions.ResolveAnchorOnRooftopAsync()
は、指定された緯度、経度、屋上からの高度および向きに、シーン内のゲーム オブジェクトのアンカーを提供します。ResolveAnchorOnRooftopPromise
ResolveAnchorOnRooftopResult
iOS
詳しくは、地理空間アンカー(iOS)をご覧ください。また、GeospatialExample アプリが更新され、Rooftop アンカーが含まれるようになりました。
GARSession.createAnchorWithCoordinate:altitudeAboveRooftop:eastUpSouthQAnchor:completionHandler:error:
は、指定された場所に屋上アンカーを作成します。屋上からの高度(メートル単位)と地球からの相対方向の向きです。GARCreateAnchorOnRooftopFuture
は、Rooftop アンカーを解決する非同期の状態を保持します。GARRooftopAnchorState
は、屋上アンカーの解決状態を表します。
Geospatial Depth
VPS がカバーされているエリアの ARCore セッションで、Depth API と Streetscape Geometry モードの両方を有効にすると、Streetscape Geometry を使用して、生成された奥行き画像が改善されます。Streetscape Geometry は、65.535 m の範囲で生成された各奥行き画像に統合されます。このメリットを確認するために Depth API を呼び出す際に変更は必要ありません。
Android(Kotlin/Java)
詳しくは、Geospatial Depth(Java)をご覧ください。
Android NDK(C)
詳しくは、Geospatial Depth(C)をご覧ください。
Unity(AR Foundation)
詳しくは、Geospatial Depth(C)をご覧ください。
iOS
現在、Scene Semantics は iOS ではご利用いただけません。
Vulkan レンダリング サポート
ARCore は、AHardwareBuffer
を介してカメラ画像を公開することで、Vulkan レンダリング サポートを提供するようになりました。このハードウェア バッファを使用するには、VkImage
にバインドします。
詳しくは、Vulkan を使用した ARCore アプリケーションのレンダリングと hello_ar_vulkan_c サンプルアプリをご覧ください。
Android(Kotlin/Java)
Android NDK(C)
Unity(AR Foundation)
現時点では、AR Foundation を使用した Unity では Vulkan レンダリングを利用できません。
電子式手ぶれ補正(EIS)
ARCore は、電子式手ぶれ補正機能を使用するように構成できます。カメラフレームが滑らかになり、より滑らかなユーザー エクスペリエンスを実現できます。
詳しくは、電子式手ぶれ補正機能の有効化と hello_eis_kotlin サンプルアプリをご覧ください。
Android(Kotlin/Java)
Config.ImageStabilizationMode
Frame.transformCoordinates3d()
Session.isImageStabilizationModeSupported()
OPENGL_NORMALIZED_DEVICE_COORDINATES
以外の 2D 座標でFrame.transformCoordinates3d()
を呼び出すと、IllegalArgumentException
がスローされずにクラッシュするという問題が報告されています。この問題は次のリリースで解決される予定です。
Android NDK(C)
ArImageStabilizationMode
ArFrame_transformCoordinates3d()
ArSession_isImageStabilizationModeSupported()
AR_COORDINATES_2D_OPENGL_NORMALIZED_DEVICE_COORDINATES
以外の 2 次元座標でArFrame_transformCoordinates3d()
を呼び出すと、AR_ERROR_INVALID_ARGUMENT
を返す代わりにアプリが中止されるという問題が報告されています。この問題は次のリリースで解決される予定です。
Unity(AR Foundation)
EIS は現在、AR Foundation を使用した Unity では利用できません。
iOS
EIS は現在、iOS ではご利用いただけません。
ARCore 非同期 API
このリリースでは、Future と Promise のパラダイムに沿って、非同期オペレーションを行う際のエルゴノミクスを改善する新しい ARCore 非同期 API が導入されています。
Android(Kotlin/Java)
- 地形アンカーの解決:
Earth.resolveAnchorOnTerrainAsync()
を使用してResolveAnchorOnTerrainFuture
を取得します。古いシンボルEarth.resolveAnchorOnTerrain()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーの解決:
Session.resolveCloudAnchorAsync()
を使用してResolveCloudAnchorFuture
を取得します。古いシンボルSession.resolveCloudAnchor()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーのホスティング:
Session.hostCloudAnchorAsync()
を使用してHostCloudAnchorFuture
を取得します。古いシンボルSession.hostCloudAnchor()
とSession.hostCloudAnchorWithTtl()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - APK の提供状況の確認:
ArCoreApk.checkAvailabilityAsync()
を使用してコールバックを登録します。古いシンボルArCoreApk.checkAvailability()
のサポートは終了していません。
Android NDK(C)
- 地形アンカーの解決:
ArEarth_resolveAnchorOnTerrainAsync()
を使用してArResolveAnchorOnTerrainFuture
を取得するか、ArResolveAnchorOnTerrainCallback
を使用します。古いシンボルArEarth_resolveAndAcquireNewAnchorOnTerrain()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーの解決:
ArSession_resolveCloudAnchorAsync()
を使用してArResolveCloudAnchorFuture
を取得するか、ArResolveCloudAnchorCallback
を使用します。古いシンボルArSession_resolveAndAcquireNewCloudAnchor()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーのホスティング:
ArSession_hostCloudAnchorAsync()
を使用してArHostCloudAnchorFuture
を取得するか、ArHostCloudAnchorCallback
を使用します。古いシンボルArSession_hostAndAcquireNewCloudAnchor()
とArSession_hostAndAcquireNewCloudAnchorWithTtl()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - APK の提供状況の確認:
ArCoreApk_checkAvailabilityAsync()
を使用してコールバックを登録します。古いシンボルArCoreApk_checkAvailability()
のサポートは終了していません。
Unity(AR Foundation)
- 地形アンカーの解決:
ARAnchorManagerExtensions.ResolveAnchorOnTerrainAsync()
を使用してResolveAnchorOnTerrainPromise
を取得します。古いシンボルARAnchorManagerExtensions.ResolveAnchorOnTerrain()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーの解決:
ARAnchorManagerExtensions.ResolveCloudAnchorAsync()
を使用してResolveCloudAnchorPromise
を取得します。古いシンボルARAnchorManagerExtensions.ResolveCloudAnchorId()
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーのホスティング:
ARAnchorManagerExtensions.HostCloudAnchorAsync()
を使用してHostCloudAnchorPromise
を取得します。古いARAnchorManagerExtensions.HostCloudAnchor()
シンボルはサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。
iOS
- 地形アンカーの解決:
GARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:completionHandler:error:
を使用してGARCreateAnchorOnTerrainFuture
を取得します。古いシンボルGARSession.createAnchorWithCoordinate:altitudeAboveTerrain:eastUpSouthQAnchor:error:
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーの解決:
GARSession.resolveCloudAnchorWithIdentifier:completionHandler:error:
を使用してGARResolveCloudAnchorFuture
を取得します。古いシンボルGARSession.resolveCloudAnchorWithIdentifier:error:
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。 - クラウド アンカーのホスティング:
GARSession.hostCloudAnchor:TTLDays:completionHandler:error:
を使用してGARHostCloudAnchorFuture
を取得します。古いシンボルGARSession.hostCloudAnchor:error:
とGARSession.hostCloudAnchor:TTLDays:error:
はサポートが終了しており、ARCore の新しいバージョンで削除される可能性があります。
ARCore v1.36.0 の新機能
iOS での Swift Package Manager のサポート
ARCore SDK for iOS で、Swift Package Manager が公式にサポートされるようになりました。Swift Package Manager を使用して ARCore と統合する方法については、iOS アプリで AR を有効にするをご覧ください。
ARCore v1.35.0 の新機能
地理空間のポーズの精度が方向をヨーに置き換える
すべての地理空間のポーズで、方向の精度が置き換えられ、ヨー回転の向きの精度が公開されるようになりました。
- Java/Kotlin:
GeospatialPose.getHeading()
をGeospatialPose.getEastUpSouthQuaternion()
に、GeospatialPose.getHeadingAccuracy()
をGeospatialPose.getOrientationYawAccuracy()
に置き換えます。 - C:
ArGeospatialPose_getHeading()
をArGeospatialPose_getEastUpSouthQuaternion()
に、ArGeospatialPose_getHeadingAccuracy()
をArGeospatialPose_getOrientationYawAccuracy()
に置き換えます。 - iOS:
GARGeospatialTransform.heading
をGARGeospatialTransform.eastUpSouthQTarget
に、GARGeospatialTransform.headingAccuracy
をGARGeospatialTransform.orientationYawAccuracy
に置き換えます。 - Unity:
GeospatialPose.Heading
をGeospatialPose.EunRotation
に、GeospatialPose.HeadingAccuracy
をGeospatialPose.OrientationYawAccuracy
に置き換えます。
その他の変更と更新
その他の変更、バグの修正、パフォーマンスの改善については、リリースノートをご覧ください。
- ARCore SDK for Android リリースノート
- ARCore for Android NDK リリースノート
- ARCore SDK for iOS リリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.34.0 の新機能
デバイスの現在地で地理空間機能を利用できるかどうかを確認する
Geospatial API で、ランタイム時に指定された水平位置での Visual Positioning System(VPS)の可用性を確認できるようになりました。この API は、アクティブな AR セッションがなくても使用できます。たとえば、VPS が利用可能な場合にのみ [Enter AR] ボタンを表示できます。
- Java/Kotlin:
Session.checkVpsAvailabilityAsync()
- C:
ArSession_checkVpsAvailabilityAsync()
- iOS:
GARSession.checkVPSAvailabilityAtCoordinate:completionHandler:
- Unity(AR Foundation):
AREarthManager.CheckVpsAvailability()
地理空間のポーズの向き
地理空間のポーズで向きが 3D 空間で表示されるようになりました。
- Java/Kotlin:
feedbackGeospatialPose.getEastUpSouthQuaternion()
- C:
ArEarth_getGeospatialPose()
- iOS:
GARGeospatialTransform.eastUpSouthQTarget
- Unity:
GeospatialPose.EunRotation()
地理空間のポーズの変換
地理空間のポーズをワールド空間(AR)のポーズに変換したり、ワールド空間のポーズから変換したりできるようになりました。
AR ポーズから地理空間のポーズを取得するには:
- Java/Kotlin:
Earth.getGeospatialPose()
- C:
ArEarth_getGeospatialPose()
- iOS:
GARSession.geospatialTransformFromTransform:error:
- Unity:
AREarthManager.Convert(Pose)
地理空間のポーズから AR のポーズを取得するには:
- Java/Kotlin:
Earth.getPose()
- C:
ArEarth_getPose()
- iOS:
GARSession.transformFromGeospatialCoordinate:altitude:eastUpSouthQTarget:error:
- Unity:
AREarthManager.Convert(GeospatialPose)
これらの関数から取得された地理空間のポーズの見出し値は 0 に設定されています。代わりに、次のように使用します。
- Android(Java/Kotlin/C): ポーズの EUS 四元数
- iOS: ポーズの
eastUpSouthQTarget
- Unity: ポーズの
EunRotation
その他の変更と更新
その他の変更、バグの修正、パフォーマンスの改善については、リリースノートをご覧ください。
- ARCore SDK for Android リリースノート
- ARCore for Android NDK リリースノート
- ARCore SDK for iOS リリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.33.0 の新機能
新しい Cloud Anchors エンドポイント
- Cloud Anchors を使用するには、サポートが終了した古い ARCore Cloud Anchor API ではなく、ARCore API を有効にする必要があります。古いアプリ バージョンをサポートするには、移行中に両方を有効にできます。ARCore SDK 1.32.0 以下でビルドされたアプリは古い API をターゲットにし、ARCore SDK 1.33.0 以降でビルドされたアプリは新しい API をターゲットにします。次の点にご注意ください。
- 新しい API では、ドメイン名
arcorecloudanchor.googleapis.com
ではなくarcore.googleapis.com
を使用します。 - API によって制限されている API キーを使用している場合は、ARCore API を許可する必要があります。
- バックエンドから ARCore Cloud Anchor Management API にリクエストを送信する場合は、ARCore API を有効にした後、ドメイン名も
arcore.googleapis.com
に変更する必要があります。 - 古い API/エンドポイントは、2023 年 8 月まで引き続きサポートされます。
- 詳細については、ARCore 1.33 Cloud Anchor エンドポイントの変更をご覧ください。
- 新しい API では、ドメイン名
地形アンカー
- Geospatial Terrain anchor API は、指定された水平位置と、その水平位置の地形に対して指定された高度にアンカーを作成します。
その他の変更と更新
その他の変更、バグの修正、パフォーマンスの改善については、リリースノートをご覧ください。
- ARCore SDK for Android リリースノート
- ARCore for Android NDK リリースノート
- ARCore SDK for iOS リリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.32.0 の新機能
このリリースに新機能はありません。
Android と Unity(AR Foundation) for Android
- ARCore の
targetSdkVersion
が Android API レベル 32 に更新されました。アプリでtargetSdkVersion
を指定していない場合、マニフェストのマージにより、アプリのtargetSdkVersion
は 32 になります。- Android SDK: プロジェクトの
build.gradle
またはAndroidManifest.xml
でtargetSdkVersion
を指定すると、ARCore のtargetSdkVersion
値がオーバーライドされます。 - AR Foundation for Android: Unity プロジェクトの [Project Settings] > [Player] > [Android] > [Other Settings] で対象 API レベルを指定すると、ARCore の
targetSdkVersion
値がオーバーライドされます。
- Android SDK: プロジェクトの
その他の変更と更新
その他の変更、バグの修正、パフォーマンスの改善については、リリースノートをご覧ください。
- ARCore SDK for Android リリースノート
- ARCore for Android NDK リリースノート
- ARCore SDK for iOS リリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.31.0 の新機能
ARCore Geospatial API
新しい ARCore Geospatial API は、Google Earth の 3D モデルのデータと Google マップのストリートビュー画像データを利用して、グローバル規模の臨場感あふれる位置情報ベースの拡張現実体験をアプリで実現します。
プラットフォーム固有のデベロッパー向けドキュメントと新しい Geospatial API の使用方法については、ARCore Geospatial API の概要をご覧ください。
遠距離の水深
ARCore Depth API が、より長距離の深度センシングを含むように最適化され、表現可能な深度観測の範囲が広がりました。16 ビットの深度画像がすべて使用され、最大範囲は 65, 535 mm になります。以前は 13 ビットのみが入力され、上限は 8, 191 mm でした。
プラットフォーム固有のデベロッパー向けドキュメントについては、Depth の変更をご覧ください。Depth API の変更点については、
プラットフォーム固有の注意事項
Android
新しい ARCore Geospatial API
Java
Earth
は、地球の相対座標でのローカライズ機能を提供します。Earth.createAnchor()
は、指定された場所と地球を基準とする向きに新しいAnchor
を作成します。
Earth.Earthstate
は、TrackingState
を含むEarth
の現在の状態を記述します。GeospatialPose
は、地球を基準とした特定の位置、高度、コンパス方位を表します。
C
ArEarth
は、地球の相対座標によるローカライズ機能を提供します。ArEarth_acquireNewAnchor()
は、指定された場所と地球を基準とする向きに新しいAnchor
を作成します。ArEarthState
は、ArTrackingState
を含むArEarth
の現在の状態を記述します。
ArGeospatialPose
は、地球を基準とした特定の位置、高度、コンパス方位を表します。
ARCore Depth API の更新
Java
- Depth API 関数の呼び出しが変更されました。
Frame.acquireDepthImage
はFrame.acquireDepthImage16Bits
にマッピング。Frame.acquireRawDepthImage
はFrame.acquireRawDepthImage16Bits
にマッピング。- 両方の呼び出しの出力画像形式が
android.graphics.ImageFormat#DEPTH16
からandroid.hardware.HardwareBuffer#D_16
に変更されました。 - 奥行きは引き続きミリメートル単位で 16 ビットの整数で表されますが、16 ビットはすべて深さを表すため、最大表現範囲は 8, 191 mm ~ 65, 535 mm になります。
- Depth API 関数呼び出しの
Frame.acquireDepthImage
とFrame.acquireRawDepthImage
は非推奨になりました。代わりにFrame.acquireDepthImage16Bits
とFrame.acquireRawDepthImage16Bits
を使用してください。
- Depth API 関数の呼び出しが変更されました。
C
- Depth API 関数の呼び出しが変更されました。
ArFrame_acquireDepthImage
はArFrame_acquireDepthImage16Bits
にマッピング。ArFrame_acquireRawDepthImage
からArFrame_acquireRawDepthImage16Bits
- 両方の呼び出しの出力画像形式が
AR_IMAGE_FORMAT_DEPTH16
からAR_IMAGE_FORMAT_D_16
に変更されました。 - 奥行きは引き続きミリメートル単位で 16 ビットの整数で表されますが、16 ビットはすべて深さを表すため、最大表現範囲は 8, 191 mm ~ 65, 535 mm になります。
- Depth API 関数呼び出しの
ArFrame_acquireDepthImage
とArFrame_acquireRawDepthImage
は非推奨になりました。代わりにArFrame_acquireDepthImage16Bits
とArFrame_acquireRawDepthImage16Bits
を使用してください。
- Depth API 関数の呼び出しが変更されました。
Unity(AR Foundation)
新しい ARCore Geospatial API:
AREarthManager
は、地球の相対座標によるローカライズ機能を提供します。EarthTrackingState
は、最新のフレームの地球のトラッキング状態を取得します。EarthState
は Earth のエラー状態を維持します。
GeospatialPose
は、地球を基準とする特定の場所、高度、コンパス方位を表します。ARGeospatialAnchor
は、シーン内のゲーム オブジェクト用のアンカーであり、地球を基準とする位置と向きで指定します。
iOS
新しい ARCore Geospatial API:
GAREarth
地球を基準としたローカライズを行います。GAREarthState.earthState
はエラーの状態と条件を管理します。GAREarthState.trackingState
は、地理空間データに必要なトラッキング状態を維持します。
GARGeospatialTransform
位置、方角、高度、精度推定などを含むグローバル変換の表現。GARSession.createAnchorWithCoordinate:altitude:eastUpSouthQAnchor:error:
指定された場所と地球を基準とする向きに地理空間アンカーを作成します。
その他の変更点
その他の変更、バグの修正、パフォーマンスの改善については、リリースノートをご覧ください。
- ARCore SDK for Android リリースノート
- ARCore for Android NDK リリースノート
- ARCore SDK for iOS リリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.30.0 の新機能
このリリースに新機能はありません。
Android
@NonNull
と@Nullable
によるアノテーション付きの API 戻り値。- サンプルのビルドに使用するビルドツールのバージョンを更新しました(Gradle を 7.0.2 に、Android Gradle プラグインを 7.0.4 に更新)。既存の ARCore アプリケーションでは、これらのツールのアップグレードは必要ありません。新機能、既知の問題、互換性の情報については、Android Gradle プラグインに関する Android のドキュメントをご覧ください。
Unity(AR Foundation)
新しい
arcore-unity-extensions-without-edm4u.tgz
リリースを追加しました。このリリース バリアントは、Unity 用 External Dependency Manager などの外部依存関係をバンドルせず、EDM へのアップグレードを可能にします。この Lite リリースを使用すると、Firebase ライブラリ使用時の非互換性が解決される場合があります。開始するには、AR Foundation 用 ARCore 拡張機能のインストール手順をご覧ください。2021.2 以降のサポートを向上させるため、ExternalDependencyManager を v1.2.168 にアップグレードしました。詳しくは、EDM の変更ログをご覧ください。
セッション構成に変更がない場合でも、ARCore セッションがすべてのフレームを構成するため FPS が低下する問題を修正しました。
iOS
- さまざまなバグの修正とパフォーマンスの改善を行いました。
ARCore v1.29.0 の新機能
このリリースに新機能はありません。
Android
- hello_ar_java および hello_ar_kotlin: インスタント プレースメントを使用して配置されたオブジェクトを区別しやすくするために、
SCREENSPACE_WITH_APPROXIMATE_DISTANCE
を使用して配置されるオブジェクトの色を変更しました。 - persistent_cloud_anchor_java: 欠落しているビルド依存関係をサンプルに追加しました。プロジェクトが正しくセットアップされていても、アンカーをホストすると、状態
CloudAnchorState ERROR_NOT_AUTHORIZED
になるバグを修正しました。
Unity(AR Foundation)
- ARCore Extensions パッケージは ARKit XR Plugin に依存し、インストールされている AR Foundation のバージョンが ARKit XR プラグインのバージョンと互換性を持つようになりました。これにより、Unity 2019.x に ARCore 拡張機能をインストールして ARKit XR プラグインを有効にする際のコンパイル エラーを修正しました。
- ARCore Extensions のプロジェクト設定が、[Project Settings] > [XR] > [ARCore Extensions] から [Project Settings] > [XR Plug-in Management] > [ARCore Extensions] に移動しました。
ARCoreExtensionsConfig
、ARCoreExtensionsCameraConfigFilter
、ARCoreRecordingConfig
が [Create] > [XR] > [ARCore Extensions] から [Create] > [XR] メニューに移動しました。
iOS
- さまざまなバグの修正とパフォーマンスの改善を行いました。
リリースノートへの記入
- ARCore SDK for Android リリースノート全文
- ARCore for Android NDK の完全なリリースノート
- ARCore SDK for iOS の完全なリリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.28.0 の新機能
- 2022 年 11 月以降、AR 対応アプリは NDK イメージまたは画像メタデータを取得できなくなります。影響を受ける SDK のバージョンは、呼び出される関数によって異なります。詳しくは、サポート終了のお知らせをご覧ください。
- C:
ArImage_getNdkImage()
とArImage_getNdkCameraMetadata()
の呼び出しは、AImage
オブジェクトとACameraMetadata
オブジェクトに対して常にnullptr
を返します。 - Java:
Frame#acquireCameraImage()
から返されるImage
オブジェクトのサイズは0
x0
ピクセルです。Frame#getImageMetadata()
を呼び出すと、常にIllegalArgumentException
がスローされます。 - Unity(AR Foundation): AR Foundation 2.1(Unity 2019 LTS)を使用している場合、
XRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
を呼び出すと常にfalse
が返されます。AR Foundation 4.x 以降のバージョンは影響を受けません。XRCameraSubsystem.TryGetLatestImage(out XRCameraImage)
の呼び出しは通常どおり動作します。 - ARCore SDK for Unity(非推奨):
Frame.CameraImage.AcquireCameraImageBytes()
の呼び出しのサイズは0
×0
ピクセルになります。Frame.CameraMetadata.GetAllCameraMetadataTags()
を呼び出すと、空のList<CameraMetadataTag>
が返されます。
- C:
- Java:
ArImage#getCropRect()
がフルサイズの切り抜き長方形を返すようになりました。つまり、Image 内のすべてのピクセルが有効になりました。詳細については、android.media.Image#getCropRect()
をご覧ください。
ARCore v1.27.0 の新機能
このリリースに新機能はありません。さまざまなバグの修正とパフォーマンスの改善については、以下のリリースノートをご覧ください。
- ARCore SDK for Android リリースノート全文
- ARCore for Android NDK の完全なリリースノート
- ARCore SDK for iOS の完全なリリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
このリリースには、さまざまなバグ修正に加え、以下が含まれています。
Kotlin のサンプルアプリ
Kotlin を使用する際のベスト プラクティスを示す hello_ar_kotlin を追加しました。
詳しくは、Android 向けクイックスタートをご覧ください。
ARCore で画像分類モデルを使用する方法を示す ml_kotlin を追加しました。
詳細については、ML モデルの入力として ARCore を使用するをご覧ください。
ARCore v1.26.0 の新機能
このリリースでは、次の重要な変更が追加されました。
- 記録と再生のデータセットで URI がサポートされるようになりました。
その他の変更と更新
その他のバグ修正とその他の互換性を破る変更については、以下のリリースノートをご覧ください。
- ARCore SDK for Android リリースノート全文
- ARCore for Android NDK の完全なリリースノート
- ARCore SDK for iOS の完全なリリースノート
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.25.0 の新機能
このリリースに新機能はありません。さまざまなバグの修正とパフォーマンスの改善については、以下のリリースノートをご覧ください。
- ARCore SDK for Android リリースノート全文
- ARCore for Android NDK の完全なリリースノート
- ARCore SDK for iOS の完全なリリースノート
- ARCore SDK for Unity のリリースノート全文
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.24.0 の新機能
このリリースでは、次の重要な変更が追加されました。
- 新しい Raw Depth API: 画像空間フィルタリングなしで奥行きのある画像を提供します。
- Recording & Playback API に対するカスタムデータトラック記録機能
- 深度ヒットテストの実施機能
未加工の深さ
Raw Depth API は、Full Depth API データよりも精度が高いカメラ画像の深度データを提供しますが、必ずしもすべてのピクセルを網羅しているわけではありません。未加工の奥行き画像と、それに対応する信頼度画像をさらに処理することもできます。これにより、アプリは個々のユースケースに十分な精度を持つ奥行きデータのみを使用できます。
デベロッパー ガイド:
カスタム トラックの記録
Recording & Playback API の新しいカスタムデータ トラック機能を使用すると、記録中に ARCore フレームにカスタムデータを追加し、再生中に同じデータをフレームから取得できます。
デベロッパー ガイド:
深度ヒットテスト
以前は、ヒットテストは検出された平面に対してのみ実行でき、場所は大きくて平らな面に限定されていました。深度ヒットテストでは、平面ではないサーフェスやテクスチャの低いサーフェスでも、スムーズな深さ情報と未加工の深度情報の両方を利用して、より正確なヒット結果を提供します。
デベロッパー ガイド:
その他の変更と更新
その他のバグ修正とその他の互換性を破る変更については、以下のリリースノートをご覧ください。
- ARCore SDK for Android リリースノート全文
- ARCore for Android NDK の完全なリリースノート
- ARCore SDK for iOS の完全なリリースノート
- ARCore SDK for Unity のリリースノート全文
- AR Foundation 向け ARCore 拡張機能のリリースノート
ARCore v1.23.0 の新機能
デュアルカメラのサポートは保留中です
デュアルカメラのサポートは数週間以内にリリースされる予定です。詳しくは、サポートされているデバイスのページをご覧ください。
新しいデバッグツール
ブロードキャスト インテントを送信することで、デベロッパーは次のことを行えます。
Android デバッグログへの ARCore API 呼び出しロギング
ARCore のパフォーマンス オーバーレイ
Cloud Anchors のホスティングと解決
ARCore SDK 1.11.0 以前を使用してビルドされた AR 対応アプリは、Cloud Anchors をホストまたは解決できなくなりました。
C:
ArSession_hostAndAcquireNewCloudAnchor
とArSession_resolveAndAcquireNewCloudAnchor
から返される Cloud Anchors の状態は常にAR_CLOUD_ANCHOR_STATE_ERROR_INTERNAL
です。Java:
Session.hostCloudAnchor(Anchor)
とSession.resolveCloudAnchor(String)
が返す Cloud Anchors の状態は常にAnchor.CloudAnchorState.ERROR_INTERNAL
です。Unity:
XPSession.CreateCloudAnchor(Anchor)
とXPSession.ResolveCloudAnchor(string)
から返される Cloud Anchors の状態は常にCloudServiceResponse.ErrorInternal
です。
ARCore SDK 1.12.0 以降でビルドされたアプリは影響を受けません。ARCore Cloud Anchor API の使用には非推奨ポリシーが適用されます。
その他の変更と更新
その他のバグの修正とその他の互換性を破る変更については、以下のリリースノートをご覧ください。
ARCore v1.22.0 の新機能
このリリースでは、AR Foundation の ARCore 拡張機能用に、新しい録画および再生 API と Camera Config Filter API が追加されています。詳細については、ARCore 拡張機能の完全なリリースノートをご覧ください。
その他の変更と更新
その他のバグの修正とその他の互換性を破る変更については、以下のリリースノートをご覧ください。
ARCore v1.21.0 の新機能
このリリースでは、Android、Android NDK、Unity 用の新しい Recording API と Playback API が追加されています。
録画と再生
Recording API と Playback API を使用すると、特定の環境内で動画データと AR データを 1 回録画し、そのコンテンツを使用してテスト目的でライブカメラ セッションを置き換えることができます。ARCore は、録画したセッションを MP4 ファイルに保存します。MP4 ファイルには、デバイス上の複数の動画トラックやその他のデータが含まれます。その後、ライブカメラ セッションの代わりにこのデータを使用するようにアプリに指示できます。これにより、そのコンテンツを無期限にリプレイして、そのフィールドに戻ることなく、さまざまな AR エフェクトを試すことができます。
詳細:
Java:
C:
Unity:
ARCore v1.20.0 の新機能
このリリースでは、次の重要な変更が追加されました。
永続的な Cloud Anchors を新たにサポートしました。
Android および Android NDK の画像メタデータ機能を更新しました。
新しいガイダンスでは、AR Foundation 用の ARCore Extensions または Unity 2018.4 以降で ARCore SDK for Unity(1.19 以降)をサポートするため、Gradle バージョン 5.6.4 以降が必要となっています。
永続的な Cloud Anchors を新たにサポート
ARCore v1.20 より前のバージョンでは、Cloud Anchors は最初にホストされてから最大 24 時間しか解決できませんでした。永続的な Cloud Anchors を使用すると、有効期間(TTL)が 1 ~ 365 日の範囲で Cloud Anchor を作成できるようになりました。Cloud Anchor Management API を使用して、すでにホストされているアンカーの存続期間を延長することもできます。
永続的な Cloud Anchors の使用には、新しい Cloud Anchors の非推奨ポリシーが適用されます。
C: デベロッパー ガイド、
ArSession_hostAndAcquireNewCloudAnchorWithTtl
、ArSession_estimateFeatureMapQualityForHosting
Java: デベロッパー ガイド、
hostCloudAnchorWithTtl
、estimateFeatureMapQualityForHosting
。iOS: デベロッパー ガイド、
hostCloudAnchor:TTLDays:error:
、estimateFeatureMapQualityForHosting:
。AR Foundation の ARCore Extensions: Android デベロッパー ガイド、iOS デベロッパー ガイド、
ARAnchorManager.HostCloudAnchor(ARAnchor, int)
、ARAnchorManager.SetAuthToken(string)
、ARAnchorManager.EstimateFeatureMapQualityForHosting(Pose)
。Android をターゲットとする Unity: デベロッパー ガイド、
XPSession.CreateCloudAnchor(Anchor, int)
、XPSession.EstimateFeatureMapQualityForHosting(Pose)
iOS をターゲットとする Unity: デベロッパー ガイド、
XPSession.SetAuthToken(string)
、XPSession.CreateCloudAnchor(UnityARUserAnchorComponent, int)
その他の変更と更新
その他のバグの修正とその他の互換性を破る変更については、以下のリリースノートをご覧ください。
ARCore v1.19.0 の新機能
このリリースでは、次の重要な変更が追加されました。
- Android、Android NDK、Unity 向けの新しい Instant Placement API が追加されました。
- Unity を使用した Android 11 のビルドに関する新しいガイダンス。
インスタント プレースメント
Instant Placement API を使用すると、ユーザーは ARCore がサーフェスのジオメトリを検出するのを待つことなく、画面に AR オブジェクトを配置できます。ユーザーが環境内を移動すると、オブジェクトの配置がリアルタイムで調整されます。ARCore が AR オブジェクトが配置されている領域で正しいポーズを検出すると、白いオブジェクトが自動的に更新され、ポーズの正確さが確保され、不透明になります。
次のクリップでは、実際のテーブルに置かれた Android の仮想図形を示しています。人形は最初に置いたときは白く、かなり小さいです。ARCore がシーンの寸法の計算を絞り込んだ後、図はより正確な位置にジャンプします。これにより、オブジェクトの認識される「サイズ」に差異が生じる可能性があります。
詳細:
Android:
Android NDK:
Unity:
ARCore v1.18.0 の新機能
このリリースでは、次の重要な変更が追加されました。
- Android、Android NDK、Unity 向けの新しい Depth API。
- 拡張顔アセットを作成して Android Studio にインポートするための新しいガイダンス。
- Depth API は、
4.1.0-preview.2
でAR Foundation
とARCore XR Plugin
の両方でサポートされる予定です。
Depth API
奥行き対応デバイスの場合、Depth API は ARCore 対応デバイスの RGB カメラ、またはアクティブな奥行きセンサー(使用可能な場合)を使用して、奥行きマップを作成します。深度マップが提供するピクセルごとの深度を使用して、仮想オブジェクトを現実世界のオブジェクトの前または後ろに正確に表示し、臨場感のあるリアルなユーザー エクスペリエンスを実現できます。
たとえば、次の画像は、ドアの横にトランクがあり、現実の空間に置かれた Android の仮想人物を示しています。Depth API は、トランクの端の背後に人物を適切に隠します。
詳細:
Android:
Android NDK:
Unity:
ARCore v1.17.0 の新機能
ARCore SDK for Android で注目
複数のカメラフレームをバッファリングできる新しいメソッドを追加しました。マルチスレッド レンダリングなどの他の手法と併用することで、フレームレートのばらつきを減らすことができます。
不足していた深度センサーの使用状況とターゲット FPS のゲッターを追加しました。
Android SDK for Android のリリースノート全文もご覧ください。
ARCore SDK for Unity で注目
- Unity バージョン 2018.2 以降でマルチスレッド レンダリングのサポートが追加されました。ほとんどの場合、パフォーマンスが向上し、フレームレートのばらつきを軽減できます。これは Unity プロジェクト設定であり、[Project Settings] > [Player] > [Android] > [Other Settings] > [Multithreaded Rendering] で確認できます。詳しくは、デベロッパー ガイドをご覧ください。
- 特定の ARCore セッション エラー状態を示す
SessionStatus.ErrorCameraNotAvailable
とSessionStatus.ErrorIllegalState
を追加しました。
ARCore SDK for Unity のリリースノートもご覧ください。
ARCore SDK for iOS で注目
Cloud Anchors SDK のバイナリサイズが大幅に縮小されました。
AR(拡張顔)機能でビットコードがサポートされるようになりました。
ARCore SDK for iOS の完全なリリースノートもご覧ください。
ARCore v1.16.0 の新機能
ARCore SDK for Android と Sceneform SDK for Android で顕著
このリリースでは、次の重要な変更が追加されました。
- ほとんどのデバイスは、デバイスのデフォルトの GPU テクスチャ解像度よりも低い GPU テクスチャ解像度で、サポートされている追加のカメラ設定を返すようになりました。詳しくは、ARCore 対応デバイスをご覧ください。
これらの拡張 GPU 解像度は、
getSupportedCameraConfigs(CameraConfigFilter)
API を介して利用できます。
関連項目:
AR Foundation の ARCore Extensions で注目
このリリースでは、次の重要な変更が追加されました。
AR Foundation の
XRCameraConfiguration
は、必要な条件に基づいて適切なカメラ構成を選択できるメソッドで拡張されています。これらのメソッドには、GetTextureDimensions()、GetFPSRange()、GetDepthSensorUsages() があります。詳しくは、手順をご覧ください。Unity 2019.3.0f6 が ARCore 拡張機能の最小推奨バージョンになりました。 AR Foundation 3.1.0-preview.6 には、Unity バージョン 2019.3 以降が必要です。
Unity のクロス プラットフォーム AR API で、アンカー、Cloud Anchor、Cloud Anchor ID という用語が使用されるようになりました。ARCore 拡張機能のドキュメントは、これを反映するように更新されています。
関連項目:
ARCore SDK for Unity で注目
このリリースでは、次の重要な変更が追加されました。
- ほとんどのデバイスは、デバイスのデフォルトの GPU テクスチャ解像度よりも低い GPU テクスチャ解像度で、サポートされている追加のカメラ設定を返すようになりました。(詳しくは、ARCore 対応デバイスをご覧ください)。これらの拡張された GPU 解像度は、ARCoreCameraConfigFilter API を介して利用できます。
関連項目:
ARCore SDK for Unity のリリースノート全文
ARCore v1.15.0 の新機能
AR Foundation の ARCore Extensions で注目
このリリースでは、次の重要な変更が追加されました。
Android と iOS の両方で共有される AR エクスペリエンスを作成する方法を示す CloudAnchors サンプルを追加しました。Android または iOS の手順をご覧ください。
Unity 2019.2.17f1 が ARCore 拡張機能で使用するために推奨される最小バージョンになりました。
ARCore SDK for Unity で注目
このリリースには、次の既知の問題があります。
Android 9 と USB 3 ケーブルを使用している場合、インスタント プレビューで Unity がフリーズすることがあります。 この事象を解消するには、Android 10 にアップデートするか、USB 2 ケーブルを使用してください。
Unity のゲームビューの解像度が高すぎる場合、インスタント プレビューがデバイスに表示されないことがあります。この問題を解決するには、エディタで Unity のゲームビューの解像度を下げます。
ARCore SDK for Unity のリリースノート全文
その他の変更
その他のバグの修正とその他の互換性を破る変更については、以下のリリースノートをご覧ください。
ARCore v1.14.0 の新機能
このリリースでは、次の重要な変更が追加されました。
アプリがデバイス上の別のアプリに一時的にカメラを失った場合、トラッキング エラーの原因がより具体的になりました。
Android:
TrackingFailureReason
がNONE
ではなくCAMERA_UNAVAILABLE
になっている。Android NDK:
ArTrackingFailureReasons
がAR_TRACKING_FAILURE_REASON_NONE
ではなくAR_TRACKING_FAILURE_REASON_CAMERA_UNAVAILABLE
になりました。Unity:
Session.LostTrackingReason
がNone
ではなくLostTrackingReason.CameraUnavailable
になっています。
Google は、Google プライバシー ポリシーと Google API 利用規約に従い、お客様による ARCore Extensions パッケージの使用からデータを収集して処理します。これはオプトアウトできます。
ARCore v1.13.0 の新機能
このリリースでは、次の重要な変更が追加されました。
Unity の AR Foundation 用の ARCore Extensions を使用して、Cloud Anchors を使用する iOS アプリをビルドできるようになりました。
Sceneform での環境の HDR 照明推定のサポート。
その他のバグの修正とその他の互換性を破る変更については、以下のリリースノートをご覧ください。
ARCore v1.12.0 の新機能
このリリースでは、次の変更が追加されました。
iOS に AR 機能を追加しました。詳細については、こちらの概要、quickstart、デベロッパー ガイドをご覧ください。
Unity の AR Foundation 用の ARCore Extensions を使用して、Cloud Anchors で Android アプリをビルドできるようになりました。
Cloud Anchors が次のように変更されます。
- ARCore SDK 1.12 以降の使用に関する最新のプライバシー要件に準拠するには、通知画面に Cloud Anchors の使用について目立つように開示する必要があります。具体的には、「このセッションを提供するため、Google はカメラからの映像データを処理します」。これを行うには、Cloud Anchor サンプルアプリで利用可能な推奨のユーザー通知フローを実装します。
詳しくは、ユーザーのプライバシー要件をご参照ください。
Cloud Anchors の詳細:
Android:
Android NDK:
iOS:
Unity:
ARCore 拡張機能:
ARCore v1.11.0 の新機能
このリリースでは、次の変更が追加されました。
ARCore サービスの名前が Google Play 開発者サービス(AR)に変更されました。Google Play デバイスでは、Google Play 開発者サービスの一部として配布されるようになりました。
ARCore のカメラ設定は、サポートされているデバイスで 60 fps を目標にしており、搭載されているデバイスでは奥行きセンサーの使用を優先します。新しいカメラ構成フィルタを使用して、カメラのキャプチャ フレームレートを 30 fps に制限したり、ARCore が深度センサーを使用しないようにしたり、両方のオプションに基づいてフィルタしたりできます。
カメラ設定の詳細については、以下をご覧ください。
Android:
Android NDK:
Unity:
ARCore v1.10.0 の新機能
このリリースでは、Android、Android NDK、Unity 用の Lighting Estimation API に新しい環境 HDR 照明推定機能が追加されました。
これらの API は、機械学習を使用して入力カメラ画像を分析し、環境光を推定します。この照明予測データを使用すると、主要な指向性光、シャドウ、周囲光、仮想オブジェクトの鏡面的なハイライト、反射など、非常にリアルな照明をレンダリングできます。その結果、よりリアルに感じられるバーチャル コンテンツが作成されます。
詳細:
Android:
Android NDK:
Unity:
ARCore v1.9.0 の新機能
Android 向け ARCore SDK の新機能
このリリースでは、以下の新しい API と機能が追加されています。
Scene Viewer は、ウェブサイトから AR エクスペリエンスを実現する没入型ビューアです。Android モバイル デバイスのユーザーは、自身の環境でウェブホストされた 3D モデルを簡単に配置、表示、操作できます。
拡張画像の新機能:
ARCore が移動拡張画像を追跡するようになりました。動画の例としては、通行するバス上の広告、ユーザーが手を動かしたときに持っている平らな物体の画像などがあります。
画像が検出されると、画像がカメラビューの外に一時的に移動した場合でも、ARCore は画像の位置と向きのトラッキングを継続できます。
AugmentedImage#getTrackingMethod()
(Java)またはArAugmentedImage_getTrackingMethod()
(NDK)を使用して、拡張画像が現在カメラでトラッキングされているか(FULL_TRACKING
)、最後の既知の位置(LAST_KNOWN_POSE
)に基づいてトラッキングされているかを判別します。
Cloud Anchors のドキュメントに、アンカーのホストと解決の詳しい説明が追加されました。
ARCore SDK for Unity の新機能
拡張画像の新機能:
ARCore が移動拡張画像を追跡するようになりました。動画の例としては、通行するバス上の広告や、ユーザーが持っている平らな物体の画像などがあります。
画像が検出されると、画像がカメラビューの外に一時的に移動した場合でも、ARCore は画像の位置と向きのトラッキングを継続できます。
新しい
AugmentedImage.GetTrackingMethod()
API を使用すると、アプリは、拡張画像が現在カメラによってトラッキングされているか(FullTracking
)、最後の既知の位置(LastKnownPose
)に基づいてトラッキングされているかを判断できます。
Cloud Anchors のドキュメントに、アンカーのホストと解決の詳しい説明が追加されました。
iOS 向け ARCore SDK の新機能
以下のデバイスに対応:
第 5 世代 iPad Mini
第 3 世代 iPad Air
Cloud Anchors のドキュメントに、アンカーのホストと解決の詳しい説明が追加されました。