開発

ガーディアンシステム

ガーディアン境界は、定義されたプレイエリアの境界にユーザーが接近すると、アプリ内に壁と床のマーカーを表示します。ユーザーが境界に接近しすぎると、半透明なメッシュグリッドが、ゲームまたはゲーム体験上にレイヤーとして重なって表示されます。
次の画像はガーディアン境界が有効になった状態を示しています。この例では、ユーザーの(Rift Touchコントローラーを持った)両手がガーディアンからはみ出ています。
Guardian System boundary activated with user hands protruding through the grid.

Riftでガーディアンシステムをセットアップする

境界を設定すると、ユーザーが境界に接近しすぎた場合に、アプリケーションのレイヤーに境界が表示されます。
: ユーザーは壁と床、または床のみに境界を設定できます。または、完全に無効にすることもできます。
境界線をセットアップするには、次のようにします。
  1. Oculusアプリを開きます。
  2. [Settings (設定)] > [Devices (デバイス)] > [Run Full Setup (フルセットアップを実行)]を選択します。
  3. [Rift][Touch]を選択します。
  4. スクリーン上の指示に従ってセンサートラッキングを承認します。
  5. [Mark Your Boundaries(境界をマーク)]ページが表示されるまで進みます。
  6. スクリーン上の指示に従い、インデックストリガーボタンを使ってプレイエリアの外側の境界を描きます。現時点では、幅と深さの最小値に関する制限はありません。
完了したら[Next(次へ)]を押します。境界が保存されます。

ゲーム設定

初期化中、アプリはAPIリクエストを行い、アウターバウンダリーとプレイエリアを取得することができます。アウターバウンダリーとは、ユーザーが設定の際に定義したスペースのことです。プレイエリアとは、アウターバウンダリー内にある四角形のスペースのことです。この情報により、アプリは現実の世界と一致する「境界」を持ったバーチャル世界をセットアップできます。例えば、ユーザーが定義したプレイエリアを基に、コックピットのサイズを調整できます。
次の関数は、アウターバウンダリーとプレイエリアに関する情報を返します。
関数説明
ovr_GetBoundaryDimensions
プレイエリアまたはアウターバウンダリーの幅、高さ、深さをメートルで返します。
ovr_GetBoundaryGeometry
プレイエリアまたはアウターバウンダリーを定義するポイントを返します。プレイエリアについては、四角形のエリアを定義している4つのポイントを返します。アウターバウンダリーについては、アウターバウンダリーを定義するすべてのポイントを返します。
実行中、アプリはovr_GetBoundaryVisibleを使って、境界が可視化されているかどうかに関する情報を取得できます。可視化されている場合、アプリでどのように反応するか選択できます。例えば、アプリを一時停止する、アプリを遅くする、または単にメッセージを表示する、などが選べます。
境界ステータスの情報は、次を含む構造体で返されます。
メンバー説明
IsTriggering
ovrBool
境界が可視化されているかどうかを返します。
ClosestDistance
float
最も近いプレイエリアまたはアウターバウンダリー面までの距離です。
ClosestPoint
ovrVector3f
最も近い境界面上のポイントです。
ClosestPointNormal
ovrVector3f
最も近い境界面の単位法線です。
さらに、ovr_RequestBoundaryVisible()ovrTrueに設定することで、境界を可視化させてユーザーを誘導したり、スペースをどのように使用するか説明したりすることができます。完了したら、ovrFalseを渡してください。
: 境界がユーザーによりトリガーされて表示された場合は、境界を強制的にオフにすることはできません。
デフォルトの境界の色はシアンです。色を変更するには、ovr_SetBoundaryLookAndFeel()を使用してください。

コードサンプル

最初の足がかりとして、Samples/GuardianSystemDemoに次のAPIの使用法を示したコードサンプルを用意しています。
  • ovr_TestBoundary
  • ovr_TestBoundaryPoint
  • ovr_RequestBoundaryVisible
テストAPIを使用して、境界データを持つボックス同士を衝突させます。境界の可視状態と色は毎秒変化し、さらにHMDまたはTouchコントローラーが境界に近づきすぎると、シミュレーションは速度を落とします(その後、停止します)。
ナビゲーションロゴ
日本語
© 2026 Meta