次の方法で共有


基本的な考え方

インサイドアウト ヘッド トラッキング システムは、驚くような新しいテクノロジです。 その強みとは、まるで魔法のようです。 しかし、弱点もあります。

HoloLens のようなインサイドアウト ヘッド トラッキング システムは、頭部が近くの物理的特徴に対して相対的な場所を伝えるのが得意です。 同様に、現実世界の特徴が頭部のどこに関連しているかを見分けるのが得意です。

しかし、それらは頭部がどこにあるのか、頭部がどこにあったのかを相対的に示すのが得意でありません。 頭部が A 地点から B 地点に移動するとき、一般に頭部の移動距離についてトラッキング システムに若干の誤差が生じます。 つまり、トラッキング システムは、A 点と B 点の間の距離について、誤った判断をすることになります。この効果は、「スケール問題」 と呼ばれることが多く、混乱を招きます。

そして、頭部が B 地点からA地点に戻る場合、再び移動距離を間違えることになります。 驚くほど正確に近いのですが、明らかに間違っています。 この効果は 「ドリフト」 とも呼ばれます。

これらの問題点については、この FAQ で詳しく説明しています。

ポイントは、World Locking Tools でこれらの問題を解決できる点です。 後者の場合は、A 点付近の物理的な特徴から、頭部が A 点の近くに戻ってきたことを認識し、頭部の座標を補正することができます。

前者のスケールの問題では、ワールドロッキングツールはアプリケーションからの入力で、A 点から B 点の位置を把握し、その移動距離も修正できます。

World Locking Tools がこれらの問題を解決する方法をさらに理解するために、いくつかの追加用語が役に立ちます。

スポンジ状とワールドロックされた空間

スポンジ状空間

World Locking Tools の核となるものは、最適化エンジンです。 これは、入力として、現在のヘッド トラッキング情報と共に、世界で現在アクティブな空間アンカーのグラフを取ります。 この入力は、本書および関連文書、コード内では、一般にスポンジ状態と呼ばれています。 スポンジ状態は、常に流動的であるため、このような名前がついています。 空間アンカーは、入力されるセンサーデータによって状態が改良されるため、常に互いに対して、また本来のスポンジ状座標空間内に対して移動します。

このスポンジ状空間は、複合現実感アプリケーションの開発者が作業できる唯一の座標系です。

ワールドロック空間

スポンジ状態から、World Locking Toolsのエンジンが安定した空間を計算し、スポンジ状空間と物理的な世界を最適に配置します。 この安定な空間はワールドロック空間、その完全な状態はFrozen State と呼ばれます。

スポンジ状空間もワールドロック空間も直交座標系であり、実際には回転とオフセットしか違わないことを認識することは重要です。 しかし、スポンジ状空間からワールドロック空間への変換は、新しいセンサーデータの処理に伴い、フレームごとに変化します。

この 2 つの空間の違いは、スポンジ状空間では、入力されたセンサー データが空間アンカーを互いに、あるいはヘッドに対して自由に調整(つまり移動)できるのに対し、ワールドロック空間では、そのような動きを最小限に抑えるように選択されている点です。 この違いにより、ワールドロックされた空間に配置されたシーン オブジェクトは、個々の空間アンカーに接続されずに、物理的な世界に固定されたように見えます。 エンジンはフレームごとに、基本となるアンカーが最も安定するワールドロックされた空間を計算します。 つまり、仮想オブジェクトが現実世界の特徴と最適に位置合わせされたままになるワールドロックされた空間です。

この変換は、シーン グラフ内の親カメラのローカル変換を調整することによって、各フレームのシーンに適用されます。 カメラが元のスポンジ状空間を定義しているので、この 「スポンジ状からワールドロックされた」 ものを挿入することで、カメラの階層に変換され、シーンのルート空間がワールドロックされた空間として確立されます。

永続化

Frozen State は、オプションでセッションをまたいで持続させることができます。 現在の状態を保存したり、保存した状態から読み込んだりするための手動コントロールがあります。 さらに、World Locking Tools マネージャーのフラグにより、Frozen State での定期的な自動保存と、起動時に最後に保存した状態の自動読み込みを有効または無効にできます。

これらの機能を使用すると、現実空間のスキャンと安定化が複数のセッションで持続できます。

また、空間ピン機能でモデリング空間を現実空間に合わせた場合、その配置を持続させることができます。 その場合、最初の配置セッションで、モデリングされたシーンを物理空間に配置するための空間ピンを設定した後、以降のセッションでは、仮想と現実の特徴を配置した状態でモデリング シーンを物理空間に自動的に読み込む読み込むことが可能です。

詳細については、「永続化」 と「空間ピン機能」を参照してください。

カメラ移動の影響

ここで注意する必要がある微妙な点は、修正変換をカメラに適用することで、ネイティブ Unity の 「固定参照フレーム」 が、最適なワールド ロックされた参照フレームに変換されたことです。 シーン内のオブジェクトは移動していないため、この補正が物理シミュレーションなどの動的計算に干渉することはありません。

ただし、固定参照フレーム内でカメラを移動させることには何らかの影響があります。 具体的には、固定参照フレームとカメラ空間との間の変換が頭部の変換だけであると仮定したサブシステムは、正しくありません。

テレポートなどの機能は、すでにカメラとルート空間の間に変換を配置する能力に依存しているため、このエラーは通常問題にはなりません。

また、MRTK はすでにこのような変換の必要性を考慮入れているので、MRTK のサービスを利用するユーザーにとっては「単なる動作」にすぎません。

MRTK を利用できない下位レベルのシステムに直接アクセスする必要があるユーザーには、アダプターのビルド用にサンプルが用意されています。 このような例のいくつかを以下に示します。

関連項目