-
Notifications
You must be signed in to change notification settings - Fork 8k
/
index.md
50 lines (28 loc) · 4.92 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
---
title: XRBoundedReferenceSpace.boundsGeometry
slug: Web/API/XRBoundedReferenceSpace/boundsGeometry
---
{{APIRef("WebXR Device API")}}{{secureContext_header}}
{{domxref("XRBoundedReferenceSpace")}} の **`boundsGeometry`** 読み取り専用プロパティは、ビューアーが移動できる多角形の内部を構成する点を指定する {{domxref("DOMPointReadOnly")}} オブジェクトの配列です。 各点は 2 次元の点として扱われ、地面レベルに配置する必要があります(つまり、その `y` 座標は 0 である必要があります)。
この境界は通常、XR ハードウェアを制御するソフトウェアを使用してユーザーが構成します。 これは、使用したい空間の境界を歩くか、XR 入力デバイスを使用して部屋の形状を描くことによって行うことができます。 理論的には、より高度なシステムでは、センサーやその他の検出方法を使用して、専用の XR ルーム(それを慎重にホロデッキとは呼んでいないことに気づきましたか?)の境界を決定する場合があります。
## 構文
```
bounds = xrReferenceSpace.boundsGeometry;
```
### 値
`boundsGeometry` プロパティは、{{domxref("DOMPointReadOnly")}} オブジェクトの配列であり、各オブジェクトは、ビューアーが留まる必要がある多角形(polygon、ポリゴン)内の 1 つの頂点を定義します。 各点は床レベルにあり、`y` 座標の値は 0 に設定されている必要があります。 さらに、`w` の値は、配列内のすべての点で常に 1 です。 さらに、点は時計回りにリストする*必要があります*。
`boundsGeometry` の各エントリーは、部屋のネイティブの境界ジオメトリー点のリストのエントリーと同じであり、原点オフセットの逆数が事前に乗算されています。 言い換えると、境界は使用可能な空間の物理的な制限であり、参照空間の境界点がすべて `XRBoundedReferenceSpace` の実際の原点に対して定義されるようにシフトされます。
## 使用上の注意
制限付き参照空間の原点は常に地面レベルにあり、`y` は 0 です。 原則として、基盤となるプラットフォームまたは XR ハードウェアに応じたものとして、`x` と `z` の原点は空間の中心またはその近くにあり、向きは論理的前方を向いています。
部屋の境界がフィンガープリントの目的で使用されるリスクを減らすために、`boundsGeometry` 配列の各点は、丸められるか、ある程度調整される場合があります。 仕様では、ブラウザーが点を最も近い 5 センチメートルにシフトすることを推奨しています(ハードウェアの物理的な制限の外側に出ないようにしながら)。
### 境界の大きさ
`XRBoundedReferenceSpace` は、非常に大きな制限付き領域に使用することを目的としていません。 それよりも、ネイティブの原点から任意の方向に使用可能な移動空間が約 15 メートル以下の 1 部屋の空間に使用することを目的としています。 とはいえ、境界は 2 次元でのみ定義されるため、境界は無限に上向きに拡張されます。
複数部屋の空間を作成する必要がある場合、または非常に大きい空間やさまざまな床レベルが必要な場合は、代わりに無制限の {{domxref("XRReferenceSpace")}} を使用し、必要に応じて独自に境界を適用する必要があります。
### 境界の形状
`boundsGeometry` によって定義される形状は、正方形のように単純な場合もあれば、必要に応じて複雑な場合もあり、凹部や凸部を含む可能性があります。 ただし、`XRBoundedReferenceSpace` を使用して、床レベルが不均一な空間を表すことはできません。 地面は*常に* `y` = 0 にあります。
ユーザーが `boundsGeometry` で指定された境界から出る必要があるようにコンテンツを設計していないことが重要です。 ただし、ユーザーの周囲が定義された境界を超えるように移動することを許可している場合、コンテンツはその状況を適切に処理できる必要があり、これはエラー状態とは見なされません。
一部のサンプルは、メッシュまたはその他の形状をレンダリングしてユーザーに境界を表示しますが、実際のアプリケーションでは、これを行うべきではありません。 ただし、ブラウザーは、リスク(移動し続けると、物理的な壁にぶつかる恐れなど)についてユーザーに適切な警告を提供する必要があります。
## 仕様
{{Specifications}}
## ブラウザーの互換性
{{Compat}}