PlayStation 向けのゲーム開発の場合は PlayStation VR (PS VR) Spectator Screen を参照してください。
他の人が (一人称視点から) VR 環境とインタラクトしているときに、自分は (三人称視点から) Viirtual Reality (VR) の観客になりたい場合に、 Unreal Engine 4 (UE4) の VR Spectator Screen は理想的な機能です。VR Spectator Screen を実行しながら、自分のコンピューター モニター (あるいはテレビ) で他のプレイヤーを観察することができるので、 イマーシブな体験でのフィードバック収集に役立ちます。
画像提供:GhostPaint.com
![]() |
![]() |
---|---|
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 モードでテクスチャの作業をする場合、左上の座標は最低座標値を表し、右下の座標は最高座標値を表します。

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 モードを設定するノードです。 |
使用例
- Spectator Screen をサポートしているプラットフォームに VR プロジェクトの設定を行います。
-
次に、ブループリント スクリプトを新規作成して、Spectator Screen に表示したい画像を特定します。説明しやすいように、以下のブループリント ノードを 3 つのブループリント入力に対応させます。
-
例えば、1 キーを押すと、最初のブループリント ノードはテクスチャ領域に描画される静的テクスチャを指定します。
-
2 キーを押すと、2 つ目のブループリント ノードは HDM 視点を全画面に描画するレイアウト (テクスチャを画面の左上隅に描画します) を指定します。さらに、このノードは Eye レイアウトが必ず最初に描かれるようにしつつ、Texture レイアウトを指定します。
Eye および Texture rectangle minimum / maximum 値は、
[0.0, 1.0]
に正規化されます。 -
最後に、3 キーを押すと、3 つ目のブループリント ノードが TexturePlusEye モードを有効にします (切り替わります)。
-
最終結果
要約すると、新しいブループリントで、使用したい Spectator Screen のテクスチャと Spectator Screen モード (Eye and Texture レイアウト) が設定できます。

テクスチャはレンダー ターゲット (SceneCaptureComponent2D から書き出せる) となる、あるいは User Interface 要素のコンテナとなりますが、SceneCapture は演算負荷が高くなることがあります。
ランタイムに様々なテクスチャまたはレイアウトをテストするために、Spectator Screen モードをアクティブにしたままテクスチャ (レイアウトでさえも) を切り替えることができます。
モードの切り替え方
新しい Spectator Screen モードに切り替えるには、コンソールを開いて vr.SpectatorScreenMode
値 を入力します。例えば、vr.SpectatorScreenMode 2
を入力すると Distorted モードが有効になります (現在 Oculus Rift がサポートしています)。

サポートされているモード
プラットフォームによって、以下を始めとする特定の 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 として割り当てられている間に破壊 (リリース) されると、アプリケーションがクラッシュすることがあります。