本日はMetaQuest3の技術調査枠です。
MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。
本記事はアプリ起動時の原点座標のタイプを変更する手順です。
前提条件
以下の記事で作成したパススルーを有効にした Unity プロジェクトを基に設定を行います。
bluebirdofoz.hatenablog.com
アプリ起動時の原点座標のタイプを変更する
Meta XR SDKで設定可能なアプリ起動時の原点座標のタイプは以下の3種類です。
・Floor Level
・Eye Level
・Stage
本設定はMRTK-Quest_OVRCamearRigプレハブに設定されている OVR Manager コンポーネントの[Tracking Origin Type]で変更できます。
本記事では前回のパススルーの設定記事で複製したプレハブを編集して違いを確認しました。
アプリの原点座標が分かるようアプリのX:0, Y:0, Z:0の位置にCubeオブジェクトを配置しました。
本アプリを部屋の中央に立った状態で起動してみます。
Floor Levelの場合
[Tracking Origin Type]が[Floor Level]のアプリの場合、起動時の足元が原点に設定されます。
X:0, Y:0, Z:0の位置に配置したCubeオブジェクトが起動時の足元に表示されます。
Eye Levelの場合
[Tracking Origin Type]が[Eye Level]のアプリの場合、起動時のデバイスの位置が原点に設定されます。
X:0, Y:0, Z:0の位置に配置したCubeオブジェクトが起動時の頭の位置に表示されます。
Stageの場合
[Tracking Origin Type]が[Stage]の場合、アプリを起動したプレイ空間を基準に原点が設定されます。
以下のように部屋の中心にubeオブジェクトが表示されます。
Stageとそれ以外の違い
[Stage]は一見[Floor Level]と同じに見えますが、プレイ空間を基準に原点が設定されているため、部屋のどこでアプリを起動しても必ずCubeは部屋の中心に表示されます。
位置リセット時の動作
[Floor Level]や[Eye Level]はQuestの位置リセットを行うと合わせてアプリの原点もリセットされてしまいます。
[Stage]の場合はプレイ空間を移動しない限りアプリの原点がリセットされなくなります。