VR Spectator Screen

Unreal Engine 4 の VR Spectator Screen 機能の概要を説明します。

PlayStation 向けのゲーム開発の場合は PlayStation VR (PS VR) Spectator Screen ドキュメントを参照してください。

他の人が (一人称視点から) VR 環境とインタラクトしているときに、自分は (三人称視点から) Viirtual Reality (VR) の観客になりたい場合に、 Unreal Engine 4 (UE4) の VR Spectator Screen は理想的な機能です。VR Spectator Screen を実行しながら、自分のコンピューター モニター (あるいはテレビ) で他のプレイヤーを観察することができるので、 イマーシブな体験でのフィードバック収集に役立ちます。

画像提供:GhostPaint.com

VRSpecScreen.png

VRPlayerPerspectiveScreen.png

VR Spectator Screen Perspective

VR プレイヤーの HMD の視点

左側の画像では、スペクテイターは VR の中でアーティストが煉瓦の壁に絵を描いているところを見ていますが、右側では、アーティストは VR の中で絵を見つめています。

ヘッドマウントディスプレイ (HMD) のメーカーによっては、VR Spectator Screen は VR Social Screen と同期したり、VR Spectator モードを VR Mirror モードと同期したりすることができます。 本ページにおいては、Spectator Screen は VR デバイスに接続された標準出力デバイス (コンピューター モニターまたはテレビなど) を指します。さらに、 Spectator Mode を有効にすると、プレイヤーは VR 環境で HMD を使用しながら、自分は VR 体験を観察 (特定のシナリオではインタラクト) することができます。

サポートされているプラットフォーム

現在、以下のプラットフォームが UE4 の Spectator Screen モードをサポートしています。

この機能は他のパソコン デバイスやコンソールではサポートが期待できますが、モバイル VR デバイス (プラットフォーム) がサポートすることはないと思います。

Spectator Screen モードを開始する

PS VR を除いて、現在、UE4 では Spectator Screen モードはデフォルトで有効になっています。

Spectator Screen モードでテクスチャの作業をする場合、左上の座標は最低座標値を表し、右下の座標は最高座標値を表します。

VRSpec_BPTextureCoordinate.png

Spectator Screen ブループリント ノード

Example Usage 用に、以下のブループリント インターフェースを使用します。

ノード

説明

Set Spectator Screen Texture

Social (Spectator) Screen モードに表示されているテクスチャを変更するノードです。

Set Spectator Screen Mode Texture Plus Eye Layout

SpectatorScreenMode に TexturePlusEye 関数のレイアウトを設定するノードです。

Set Spectator Screen Mode

Social (Spectator) Screen モードを設定するノードです。

使用例

  1. Spectator Screen をサポートしているプラットフォームに VR プロジェクトの設定を行います。

  2. 次に、ブループリント スクリプトを新規作成して、Spectator Screen に表示したい画像を特定します。説明しやすいように、以下のブループリント ノードを 3 つのブループリント入力に対応させます。

    1. 例えば、1 キーを押すと、最初のブループリント ノードはテクスチャ領域に描画される静的テクスチャを指定します。

      VRSpec_BP_1.png

    2. 2 キーを押すと、2 つ目のブループリント ノードは HDM 視点を全画面に描画するレイアウト (テクスチャを画面の左上隅に描画します) を指定します。さらに、このノードは Eye レイアウトが必ず最初に描かれるようにしつつ、Texture レイアウトを指定します。

      VRSpec_BP_2.png

      Eye および Texture rectangle minimum / maximum 値は、[0.0, 1.0] に正規化されます。

    3. 最後に、3 キーを押すと、3 つ目のブループリント ノードが TexturePlusEye モードを有効にします (切り替わります)。

      VRSpec_BP_3.png

最終結果

要約すると、新しいブループリントで、使用したい Spectator Screen のテクスチャと Spectator Screen モード (Eye and Texture レイアウト) が設定できます。

VRSpec_BP.png

テクスチャはレンダー ターゲット (SceneCaptureComponent2D から書き出せる) となる、あるいは User Interface 要素のコンテナとなりますが、SceneCapture は演算負荷が高くなることがあります。

ランタイムに様々なテクスチャまたはレイアウトをテストするために、Spectator Screen モードをアクティブにしたままテクスチャ (レイアウトでさえも) を切り替えることができます。

モードの切り替え方

新しい Spectator Screen モードに切り替えるには、コンソールを開いて vr.SpectatorScreenMode を入力します。例えば、vr.SpectatorScreenMode 2 を入力すると Distorted モードが有効になります (現在 Oculus Rift がサポートしています)。

VRSpec_CVarExample.png

サポートされているモード

プラットフォームによって、以下を始めとする特定の Screen Spectator モードがサポートされています。

モード

Oculus Rift

SteamVR

PS VR

注釈

0

Disabled

HMD のパフォーマンスを最高にするために、このモードは Spectator Screen 出力を無効にします。

1

SingleEyeLetterboxed

主にデバッグ目的のモードです。画面上に『片目分だけのレターボックス表示だけ表示します。

2

Undistorted

デバッグ モードです。両目のレンダリング領域全体を表示します。

3

Distorted

通常 Oculus のみがサポートしています。Oculus の特定のデバッグ モードでは、色収差を表示するものもあります。

4

SingleEye

Undistorted モードのように、片目用のデバッグ モードです。このモードでシーンが引き延ばされるので、シーンの中の小さなアーティファクトを見つけるのに便利です。

5

SingleEyeCroppedToFit

このモードは目をトリミングして画面全体を埋めます。

6

Texture

指定した UTexture を全画面表示します。

7

TexturePlusMirror

テクスチャをある render rectangle で表示しながら、目は別の render rectangle で表示するモードです。.

Spectator Screen モードを最適化する

現時点では、Spectator Screen モードを最適にする標準設定はありません。Spectator Screen モードに独自の最適化ソリューションを実装するには、シーン キャプチャを 30 fps で実行することを推奨します (VR アプリケーションの実行速度は 60、90、120 fps を前提にします)。 さらに、Spectator Screen 出力を 30 fps に制限することを推奨します。Spectator Screen 出力を所定のハードウェアに制限したくなりますが、 VR フレームレートが 90 fps になるとレンダリングに問題が発生します (基本的には 3 フレームごとに低下します)。

Version 4.17 に関する現段階での周知の問題

  • ランタイム時に作成したレンダー ターゲットは、1 フレームパスされるまでは Spectator Texture として割り当てられません。従って、アプリケーションの最初のフレームがレンダリングされるまで何も処理されません。

  • 現在、レンダーターゲットが Spectator Texture として割り当てられている間に破壊 (リリース) されると、アプリケーションがクラッシュすることがあります。

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