プレイ領域の境界を視覚化する

OpenXR とヘッドマウントを使用した際のユーザーのステージを視覚化します

Choose your operating system:

Windows

macOS

Linux

ユーザーは、デバイス上でプレイ領域の境界を指定できます (このプレイ領域は、ステージと呼ばれることもあります)。** OpenXR API を使用すると、Unreal Engine でこれらの境界にアクセスできます。

image alt text

Oculus デバイスでは、ユーザーが近づくとガーディアン境界が表示されます。

このページでは、プロジェクトのプレイ領域の境界を視覚化する方法を説明します。デバイスでプレイ領域の境界を設定するには、デバイスのドキュメントを参照してください。

プレイ領域の境界を取得する

Get Play Area Bounds 関数は、プレイ領域内にある最大の長方形の長さを返します。ユーザーが境界に近づくと、OpenXR 互換のランタイムによってプレイ領域の境界が視覚化されます。また、ユーザーが境界に近づいたときにアプリケーションのカスタム ビジュアライゼーションでそれを通知したい際にも便利です。

image alt text

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 テンプレート) 」を使用すると、テレポート中にこのビジュアライゼーションを実装できます。

image alt text

テレポートのビジュアライゼーションの定義は、「 Content/VRTemplate/Blueprints 」にある Blueprint VRTeleportVisualizer で行います。以下では、境界を視覚化する手順を説明します。

Begin Play で以下を行います。

  1. ブループリントが、Stage 参照スペースを使用して Get Play Area Bounds を呼び出します。

  2. 次に、そのブループリントが X および Y データを Niagara System NS_PlayAreaBounds のユーザー変数に割り当てます。

  3. NS_PlayAreaBounds は、Get Play Area Bounds から返された X 値と Y 値を使用して長方形を動的に描画します。

ティックで下記を行います。

  1. ブループリントが、 NS_TeleportRing で識別されるテレポートの場所を基準にして NS_PlayAreaBounds を移動します。

  2. これにより、テレポート後、プレイ領域の境界に対してプレイヤーがどこにいるかを正確に視覚化できます。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル