Android をターゲットとする Unity(AR Foundation)アプリで Geospatial API を有効にする

アプリの設定を構成して、Geospatial API を使用できるようにします。

前提条件

続行する前に、AR の基本的なコンセプトARCore セッションを構成する方法を理解しておいてください。

Geospatial API の詳細については、Geospatial API の概要をご覧ください。

ARCore を使った開発を初めて行う場合は、スタートガイドで、ソフトウェアとハードウェアの要件、前提条件、その他使用しているプラットフォームに固有の情報をご確認ください。

ARCore Geospatial API を使用するには、プロジェクトで AR FoundationARCore Extensions for AR Foundation をサポートしている必要があります。

ARCore API を有効にする

アプリで Visual Positioning System(VPS)を使用する前に、新規または既存の Google Cloud プロジェクトで ARCore API を有効にする必要があります。このサービスは、地理空間アンカーのホスティング、保存、解決を行います。

キーなしの承認が推奨されますが、API キー認証もサポートされています。

必要なライブラリをアプリに追加する

ARCore API の呼び出しをアプリに許可したら、アプリで地理空間機能を有効にするためのライブラリを追加する必要があります。

  1. [Edit] > [Project Settings] > [XR Plug-In Management] > [ARCore Extensions] に移動します。
  2. [オプション機能] で [地理空間] を選択します。

セッション構成で地理空間機能を有効にする

アプリで地理空間機能が有効になったら、アプリの AR セッション設定で地理空間機能を有効にして、ARCore API と通信できるようにします。

  1. プロジェクトの Assets フォルダに、スクリプト可能な ARCoreExtensionsConfig オブジェクトが含まれていることを確認します。これを作成するには、[Assets] ペインを右クリックして、[Create] > [XR] > [ARCore Extensions Config] を選択します。
  2. [Assets] フォルダで ARCoreExtensionsConfig スクリプト可能オブジェクトを選択し、[Geospatial Mode] を [Enabled] に設定します。

  3. ARCoreExtensionsConfig 構成を使用するように ARCore Extensions ゲーム オブジェクトを構成します。[Hierarchy] ペインで、最初に ARCore Extensions をセットアップしたときに作成した [ARCore Extensions] ゲーム オブジェクトを見つけ、[ARCore Extensions Config] フィールドを [Assets] フォルダ内のスクリプト可能な ARCoreExtensionsConfig オブジェクトに接続します。

デバイスデータの使用を許可するようユーザーに求める

ARCore Geospatial API を使用するアプリは、デバイスからのデータの使用を確認して許可するためのプロンプトをユーザーに表示する必要があります。詳しくは、ユーザーのプライバシー要件をご覧ください。

デバイスの互換性を確認する

ARCore をサポートするすべてのデバイスが Geospatial API をサポートしているわけではありません。ユーザーのデバイスの互換性を確認するには、AREarthManager.IsGeospatialModeSupported() を呼び出します。FeatureSupported.Unsupported が返された場合は、セッションの構成を試行しないでください。

実行時に位置情報の利用許可をユーザーに求める

ARCoreExtensions.Update() で地理空間モードが有効になっている場合、ARCore 拡張機能は適切な位置情報の利用許可を自動的にリクエストします。ユーザーが正確な位置情報の利用許可を付与しないと、セッションの再開に失敗し、「権限が付与されていません」というエラーが生成されます。これは終了エラーです。権限リクエストを再度トリガーするには、再起動する必要があります。

デバイスの現在地で利用可能な地理空間を確認する

Geospatial API は、VPS と GPS を組み合わせて地理空間ポーズを決定するため、デバイスが自身の位置を特定できる限り、この API を使用できます。屋内空間や密集した都市環境など、GPS 精度が低いエリアでは、API は VPS の受信可能範囲を利用して、高精度のポーズを生成します。一般的な条件下では、VPS の位置精度は約 5 メートル、回転精度は 5 度であると期待できます。AREarthManager.CheckVpsAvailability() を使用して、指定された場所が VPS に対応しているかどうかを確認します。

Geospatial API は、VPS がカバーされていない地域でも使用可能です。頭上の障害物がほとんどないか、まったくない屋外環境では、GPS で十分な精度のポーズを生成できます。

次のステップ