本文へスキップ

ワールド・ポーズ・システム(WPS)

ワールド・ポーズとは?

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

WPSはスマートフォンでGPS信号を受信できる場所であればどこでも動作しますが、その精度はGPSの精度によって異なります。

WPSを使用するメリット

GPSの位置情報やコンパスの方位を使用するアプリケーションであれば、WPSが提供する精度や安定性の向上によって高いパフォーマンスを実現できます。 また、WPSと既存の地理データを組み合わせた新しいタイプのAR体験もあります:

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

WPSの実際の使用例を確認するには、サンプルプロジェクトをお試しください。

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

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

WPSを有効にする

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

The World Pose 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 is called before the first frame update
void Start()
{
_WPSCameraHelper = _arCameraManager.GetComponent<ARWorldPositioningCameraHelper>();
}

// Update is called once per frame
void Update()
{
float heading = _WPSCameraHelper.TrueHeading;
Quaternion rotation = Quaternion.Euler(0, 0, heading);

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

ワールド・ポーズ・システムを使ってワールド座標に固定されたオブジェクトを配置するには、ワールド・ポーズ・システム(WPS)を使ったアプリの作り方を参照してください。

ワールド・ポーズの仕組みは?

WPSは、GPS、コンパスの方位、セッションのARKit/ARCoreのトラッキングデータを組み合わせることで、結果の正確性を高めます。 WPSでARKit/ARCoreトラッキングを使用するにはカメラを有効にする必要がありますが、カメラビューをユーザーに表示する必要はありません。

WPSに関するFAQ

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

WPSでは、標準のプラットフォームAPIよりも、コンパス方位や緯度/経度の位置を正確に取得できます。 また、GPSやコンパス方位のデータをARトラッキングと組み合わせることで、フレーム間の安定性が高くなるため、仮想コンテンツのレンダリングに適しています。 さらに、すべてのプラットフォームで共通のUnityインターフェイスが提供され、地理データの操作を簡略化するヘルパークラスも用意されているため、デバイス固有のGPSに関する問題を心配する必要がありません。

WPSが正常に動作しなくなる条件はありますか?

WPSは、GPS信号が取得できない場合や、ARトラッキングの信頼性が低い環境では正常に動作しません。 GPSは一般的に、デバイスが地下や建物内にある場合に利用できなくなります。 また、暗闇や移動中の車両内では、ARトラッキングが失敗する可能性が高まります。 このような状況を避けることで、アプリの安定した動作が保証されます。

WPSのデータ転送量はどのくらいですか?

WPSでは、すべてのデータをデバイス上でローカルに処理します。 大量のデータを転送することはありません。

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

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

WPSの精度はどのくらいですか?

WPSの精度は、GPS信号の品質に依存します。 良好な条件下では、WPSの精度は1メートル未満で、中央値は約3メートルです。 まれに(使用率の10%未満)、ユーザーが正しい位置から最大10メートルずれる可能性があります。そのため、アプリケーションを設計する際には、ある程度の誤差を許容する必要があります。