本文へスキップ
バージョン: 3.5

ワールド・ポジショニング・システム(WPS)

WPSとは?

ライトシップ・ワールド・ポジショニング・システム(WPS)は、端末のGPSやコンパスの方位データを使用する代わりに、携帯電話の3D位置と方位を地理座標で提供します。 WPSは、標準的なGPS測位よりも精度が高く、フレーム間の安定性が高いため、ARアプリケーションに適しています。 ユーザーが動き回っても、WPSはデバイスの位置を維持するため、長時間・長距離の連続使用に適しています。

WPSはGPS信号のある場所であればどこでも機能しますが、精度はGPSの精度によって異なります。

他のLightship Experimental Featuresと同様に、WPSはサポートされておらず、変更される可能性があります。

WPSは何に使えるのか?

GPSの位置やコンパスの方位角を使用するアプリケーションは、WPSが提供する精度と安定性の向上により改善されます。 また、WPSと既存の地理データを組み合わせた新しいタイプのAR体験もあります:

  • デバイスの正確な3D位置を地図上に表示する三人称視点ビューの作成。
  • カメラビューを補強したり、プロシージャル生成にコンテキストを提供するために地理データを使用します。
  • 地図データを、現実世界のトポロジーを反映した仮想世界に置き換え、プレーヤーが歩き回って探索できるようにします。

WPSのユースケースのいくつかを実際に見るには、サンプルプロジェクトを試してみてください。

世界測位による安定性の向上は、下の画像でデバイスのコンパスと並べて見ることができます。

Side-by-Side showing world positioning against the device compass

ワールド・ポジショニング・システムの実現

Hierarchy内のXROriginコンポーネントに[ARWorldPositioningManager]を追加することで、プロジェクト内でワールドポジショニングシステムが有効になります。 これにより、MainCameraに[ARWorldPositioningCameraHelper]が自動的に追加されます。 WPSによって提供される、より正確なコンパスとGPSプロパティを必要とするアプリケーションでは、CameraHelperから直接アクセスすることができます。

世界測位システムUPMをプロジェクトに追加する

WPS UPMをプロジェクトに追加するには、Lightship GithubからWorld Positioning System UPMをダウンロードしてください。

The World Positioning Manager viewed in the Inspector.
クリックしてWPSCompass.csを表示します
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Niantic.Experimental.Lightship.AR.WorldPositioning;

public class WPSCompass : MonoBehaviour
{
[SerializeField] private ARCameraManager _arCameraManager;

private ARWorldPositioningCameraHelper _WPSCameraHelper;

// Startは最初のフレーム更新の前に呼ばれる
void Start()
{
_WPSCameraHelper = _arCameraManager.GetComponent<ARWorldPositioningCameraHelper>();
} // Updateはフレームごとに1回呼ばれる。

// Updateはフレームごとに1回呼ばれる
void Update()
{
float heading = _WPSCameraHelper.TrueHeading;
Quaternion rotation = Quaternion.Euler(0, 0, heading);

double latitute = _WPSCameraHelper.Latitude;
double longitude = _WPSCameraHelper.Longitude;
}.
}

ワールドポジショニングシステムを使用したワールド座標へのオブジェクトの配置については、ハウツーページワールドポジショニングシステム(WPS)を使用したアプリの作り方を参照してください。

WPSはどのように機能するのか?

WPSはGPS、コンパスの方位、ARKit/ARCoreのトラッキングデータをセッションから組み合わせ、より正確な結果を出します。 WPSでは、ARKit/ARCoreトラッキングのためにカメラを有効にする必要がありますが、カメラビューがユーザーに見える必要はありません。

WPS FAQ

なぜデバイスのGPSやコンパスの方位ではなく、WPSを使うのですか?

WPSは、標準的なプラットフォームAPIから得られるよりも正確なコンパス方位と緯度経度位置を提供する。 GPSと方位データをARトラッキングと融合させ、バーチャルコンテンツのレンダリングに適したフレーム間安定性を実現する。 また、すべてのプラットフォームで同じUnityインターフェイスを提供し、地理データの処理を簡素化するヘルパークラスを提供し、デバイス固有のGPSの問題についての心配を取り除きます。

どのような条件下では、WPSはまったく機能しないのですか?

GPS信号がない場合、またはARトラッキングが確実に機能しない場合、WPSは失敗します。 デバイスが地下や建物の中にある場合、GPSは通常利用できない。 ARトラッキングは暗闇や移動中の車内では失敗することが多い。 このような状況を避けることで、アプリが確実に動作するようになる。

WPSのデータ転送量は?

WPSは、すべてのデータをデバイス上でローカルに処理する。 大した量のデータを転送するわけではない。

WPSはデバイスのパフォーマンスやバッテリー寿命にどのような影響を与えますか?

WPSは1CPUスレッドの約10%を使用するため、すでにARKit/ARCoreを使用しているアプリケーションに大きな影響を与えることはありません。 バッテリー消費量は画面や3Dレンダリングに匹敵するため、長時間の使用に適している。

WPSの精度は?

精度はGPS信号の質に左右される。 良好なコンディションでは、WPSの精度は1メートル以下で、中央値は約3メートルである。 まれな状況(使用率の10%未満)では、ユーザーが正しい位置から最大10メートル離れて配置されることがあるため、アプリケーションはある程度の誤差を許容して設計されるべきである。