Choose your operating system:
Windows
macOS
Linux
ユーザーは、デバイス上でプレイ領域の境界を指定できます (このプレイ領域は、ステージと呼ばれることもあります)。** OpenXR API を使用すると、Unreal Engine でこれらの境界にアクセスできます。
このページでは、プロジェクトのプレイ領域の境界を視覚化する方法を説明します。デバイスでプレイ領域の境界を設定するには、デバイスのドキュメントを参照してください。
プレイ領域の境界を取得する
Get Play Area Bounds
関数は、プレイ領域内にある最大の長方形の長さを返します。ユーザーが境界に近づくと、OpenXR 互換のランタイムによってプレイ領域の境界が視覚化されます。また、ユーザーが境界に近づいたときにアプリケーションのカスタム ビジュアライゼーションでそれを通知したい際にも便利です。
Get Play Area Bounds
関数には 3 つの参照スペースがあり、
Eye Level (目の高さ)
、
Floor Level (床の高さ)
、
Stage (ステージ)
を返すことができます。これらの 3 つのスペースは、それぞれ OpenXR 参照スペースである
View (ビュー)
、
Local (ローカル)
、および
Stage (ステージ)
にマップされます。多くの場合で、
Stage
参照スペースを返すことをお勧めします。OpenXR 参照スペースの詳細については、『
OpenXR Specification]
』を参照してください。
Get Play Area Bounds
関数がデータを返さない場合、使用している OpenXR ランタイムがプレイ領域の境界の OpenXR 機能を実装していない可能性があります。
テレポーテーションのビジュアライゼーション
プレイ領域の境界のビジュアライゼーションの例の 1 つとして、テレポーテーションに対する視覚化があります。「 VR Template (VR テンプレート) 」を使用すると、テレポート中にこのビジュアライゼーションを実装できます。
テレポートのビジュアライゼーションの定義は、「 Content/VRTemplate/Blueprints 」にある Blueprint VRTeleportVisualizer で行います。以下では、境界を視覚化する手順を説明します。
Begin Play で以下を行います。
-
ブループリントが、Stage 参照スペースを使用して
Get Play Area Bounds
を呼び出します。 -
次に、そのブループリントが X および Y データを Niagara System NS_PlayAreaBounds のユーザー変数に割り当てます。
-
NS_PlayAreaBounds は、Get Play Area Bounds から返された X 値と Y 値を使用して長方形を動的に描画します。
ティックで下記を行います。
-
ブループリントが、 NS_TeleportRing で識別されるテレポートの場所を基準にして NS_PlayAreaBounds を移動します。
-
これにより、テレポート後、プレイ領域の境界に対してプレイヤーがどこにいるかを正確に視覚化できます。