nDisplay コンフィギュレーション ファイルのリファレンス

nDisplay コンフィギュレーション ファイルで使用できるすべての設定のリファレンス ガイドです。

Windows
MacOS
Linux

nDisplay システムのほとんどの設定要素は、単一のコンフィギュレーション ファイルで定義します。このファイルでは、ネットワークを構成するコンピュータ、各コンピュータ上で Unreal Engine がレンダリングするウィンドウとビューポートの特性、各ビューポートがレンダリングする必要のある仮想ワールドのパーツ、受け入れる入力デバイスのタイプなどが指定されます。

このページでは、nDisplay コンフィギュレーション ファイルで使用可能なすべての設定について説明します。

nDisplay コンフィギュレーション ファイルの概要を把握し、独自のコンフィギュレーション ファイルを作成するには、手始めに nDisplay プラグインで提供されているサンプル コンフィギュレーションを使用することをお勧めします。NDisplay テンプレートからプロジェクトを作成した場合、これらのファイルは「Content/ExampleConfigs」の下にある「Project」フォルダにあります。その他の場合、これらのファイルは、「Templates/TP_nDisplayBP/Content/ExampleConfigs」の下にある Unreal Engine のインストール フォルダにあります。

nDisplay コンフィギュレーション ファイルの構造は、視覚化のレンダリングに使用するさまざまなタイプのコンポーネントに直接関連付けられています。

  • コンフィギュレーション ファイルには、設定するコンポーネントのタイプごとに独自の行があり、ユーザーが割り当てる文字列 ID で識別されます。特定のコンフィギュレーション セクションで他のコンフィギュレーション セクションを参照する必要がある場合は、この文字列 ID を使用します。

  • このファイルで設定するコンポーネントの多くには、仮想 3D 空間における位置 (および多くの場合回転状態) が定義されています。各オブジェクトの位置と回転状態は、そのオブジェクトの が基準となります。デフォルトでは、すべてのオブジェクトの親は VR 空間の原点です。原点は、VR 空間が開始すると見なされる 3D ワールド空間の任意の点です。また、1 つ以上のコンポーネントの親として機能することができる scene_nodes という特殊な名前付きのトランスフォームを 3D 空間で構成することもできます。このトランスフォームを構成することで、スクリーン、カメラ、その他のコンポーネントの空間レイアウトを簡素化できます。
    scene_nodes を使用して、すべてが仮想空間の同じポイントから始まる 3D トランスフォームの階層を構築する方法については、以下の「コンフィギュレーション ファイルのシーン構造体の例 」のセクションを参照してください。

  • 仮想 3D 空間または実世界の物理空間での測定値を参照するすべてのパラメータは、特に指定のない限り、メートル単位および度単位の値が想定されます。これには、スクリーン、シーン ノード、カメラなどが含まれます。

  • スクリーン スペースの測定値を参照するすべてのパラメータは、ピクセル単位の値が想定されます。これには、ウィンドウとビューポートが含まれます。

Cluster Node コンフィギュレーション

NDisplay ネットワークで使用する Unreal Engine アプリケーションの各インスタンスで、cluster_node コンフィギュレーションを定義する必要があります。各 cluster_node コンフィギュレーションには、メイン アプリケーション ウィンドウのプロパティを定義する window コンフィギュレーション セクションへの参照が含まれている必要があります。

cluster_node コンフィギュレーションでは、そのアプリケーション インスタンスを実行するコンピュータのホスト名または IP アドレスも定義します。cluster_node コンフィギュレーションごとに異なる物理コンピュータを設定したり、同一ホスト上で実行される複数の cluster_node コンフィギュレーションを設定することもできます。

コンフィギュレーションの例:

この例では、マスター ノード (ネットワークごとに 1 つ) を設定します。

[cluster_node] id=node_front addr=192.168.0.1 window=wnd_LT sound=true port_cs=41001 port_ss=41002 master=true

この例では、マスター以外のクラスタ ノードを示しています。

[cluster_node] id=node_left addr=192.168.0.2 window=wnd_large sound=false

パラメータ:

パラメータ

説明

id

cluster node コンフィギュレーションの一意の名前。

addr

Unreal Engine のインスタンスを実行するコンピュータの IP アドレス。これは IPv4 アドレスである必要があります。IPv6 はサポートされていません。

window

Unreal Engine アプリケーションのインスタンスのメイン ウィンドウのサイズと位置を定義する window コンフィギュレーションの名前。

sound

Unreal Engine のインスタンスでサウンドを再生するかどうかを指定します。オプションとして、デフォルト値は false です。

port_cs port_ss port_ce

マスター ノードがクラスタの他のノードと通信するために使用するポート。port_cs はクラスタ同期用、port_ss はスワップ同期用、port_ce クラスタ イベント用です。オプションとして、デフォルト値はそれぞれ「14001」、「14002」、および「14003」です。

master

Unreal Engine のインスタンスがクラスタのマスター ノードであるかどうかを指定します。このパラメータを「true」に設定できるのは、1 つの cluster_node セクションのみです。オプションとして、デフォルト値は false です。

Window コンフィギュレーション

window コンフィギュレーションでは、Unreal Engine アプリケーションのインスタンスのメイン ウィンドウの一連のプロパティを定義します。このコンフィギュレーションを使用して、nDisplay がアプリケーションを起動したときのウィンドウの開始サイズや配置、ウィンドウをフルスクリーンで表示するかどうかなどを設定します。

また、1 つ以上の viewport コンフィギュレーションも指定します。このコンフィギュレーションでは、nDisplay でシーンのレンダリングを表示するメイン アプリケーション ウィンドウ内の特定の領域を識別します。

コンフィギュレーションの例:

この例では、単一のビューポートを含むアプリケーション ウィンドウを設定します。

[window] id=wnd_one fullscreen=false WinX=0 WinY=0 ResX=640 ResY=480 viewports=vp_LT

この例では、4 つの個別のビューポートを含むアプリケーション ウィンドウを設定します。

[window] id=wnd_four fullscreen=false WinX=0 WinY=0 ResX=640 ResY=480 viewports="vp_LT,vp_RB,vp_LB,vp_RT"

パラメータ:

パラメータ

説明

id

window コンフィギュレーションの一意の名前。

fullscreen

ウィンドウをフルスクリーン モードで実行するかどうかを指定します。この値を「false」に設定する場合は、以下の WinXWinYResX、および RexY の各設定を指定する必要があります。

Winx WinY

デスクトップ上のアプリケーション ウィンドウの左上隅の位置をスクリーン スペースのピクセル単位で指定します。

ResX ResY

アプリケーション ウィンドウのサイズをスクリーン スペースのピクセル単位で指定します。

viewports

nDisplay でレンダリングされたシーンのビューを表示するメイン アプリケーション ウィンドウの領域を定義する 1 つ以上の viewport コンフィギュレーション セクションを参照します。
複数のビューポートを指定する場合は、viewport コンフィギュレーションの複数のセクション名の間をコンマで区切ってリストし、そのリストを引用符で囲む必要があります。上記の「コンフィギュレーションの例」セクションの wnd_four 例を参照してください。このリストの順序は、ビューポートの視覚的な順序や配置には影響しません。親ウィンドウ内のビューポートの配置は、指定の viewport コンフィギュレーションで定義されます。

使用するビューポートの定義がウィンドウのサイズを超えないようにしてください。

postprocess

nDisplay がウィンドウに出力する前に最後に生成される出力画像に適用するポストプロセス操作を定義する 1 つ以上の postprocess コンフィギュレーション セクションの ID を指定します。オプションとして、出力する前に最終画像をトランスフォームする必要がある場合のみ、このパラメータを使用します。複数のポストプロセス コンフィギュレーションを指定する場合、nDisplay は順番にトランスフォーメーションを適用します。

Viewport コンフィギュレーション

上記の各 window コンフィギュレーションでは、1 つ以上の viewport コンフィギュレーションを参照します。参照される各コンフィギュレーションでは、nDisplay がシーンのレンダリングされたビューを表示する必要のあるゲーム ウィンドウの長方形の領域を定義します。

通常、ビューポートはアプリケーション ウィンドウの左上隅から開始して、その幅と高さが親ウィンドウを埋めるように設定されます。ただし、場合によっては、親アプリケーション ウィンドウ内でビューポートのオフセットを調整する必要があります。例えば、一部が重なる 2 つのプロジェクターをセットアップする必要がある場合、または異なる位置で複数の個別のビューポートをホストする 1 つのアプリケーション ウィンドウが必要な場合は、オフセットを調整することをお勧めします。

コンフィギュレーションの例:

[viewport] id=vp_LT X=0 Y=0 width=300 height=220 projection=proj_simple_LT

パラメータ:

パラメータ

説明

id

viewport コンフィギュレーションの一意の名前。

X Y

メイン アプリケーション ウィンドウのスクリーン スペース内のビューポートの左上隅の座標 (ピクセル単位)。なお、これらの値は、スクリーン自体の左上隅を基準としているのではなく、アプリケーション ウィンドウの左上隅を基準としています。

width height

レンダリングされたフレームの幅と高さ (ピクセル単位)。これは、ビューポートを使用するすべての window コンフィギュレーションの size パラメータで設定されたゲーム ウィンドウのサイズより大きくすることはできません。

projection

ビューポートに描画する必要のある仮想ワールドのレンダリングされたビューを定義する projection コンフィギュレーションの名前。

camera

このビューポートに表示させたい camera コンフィギュレーション セクションの ID。オプションです。デフォルトで、ビューポートは nDisplay が現在使用している カメラ セクションの位置からシーンをレンダリングします。ただし、このパラメータを使うと、デフォルトの nDisplay カメラをオーバーライドして、別の カメラ セクションのビュー コンフィギュレーションのポイントからシーンをレンダリングさせることができます。

buffer_ratio

01 の間の値で、このビューポートをレンダリングするために nDisplay が使用するレンダー ターゲット テクスチャのディメンションをスケールします。値を低くするほど nDisplay によって生成される画像の解像度を効果的に低くします。これにより最終画像の品質は下がりますが、レンダリングは速くなります。オプションです。

エフェクト

Projection コンフィギュレーション

上記の各 viewport コンフィギュレーションは、ビューポートで描画の必要があるレンダリングされた画像を定義する projection コンフィギュレーションを参照します。

最も一般的な状況ではプロジェクション タイプ simple を使用します。これは、nDisplay コンフィギュレーション ファイルの他の場所の screen コンフィギュレーションのセクションで定義された視錐台を使用して、現在のカメラの位置から仮想ワールドをレンダリングするタイプです。

easyblend や `mpcdi などの他のプロジェクション タイプでは、他の方法を使用してビューポート用のレンダリングされたコンテンツを定義します。また、画像を長方形のビューポートにレンダリングする前に追加の修正を行ったり、追加のレンダリング手法を適用したりすることもできます。例えば、projection では、カーブしたサーフェスで表示した場合に自然に見えるように、画像を押しつぶしたり、伸ばしたり、歪ませたりすることができます。

コンフィギュレーションの例:

次の例では、最も単純なユース ケースを示します。このユース ケースは、レンダリングされた画像を歪めたり修正したりすることなく、scr_LT という名前のスクリーン コンフィギュレーションで定義された視錐台をビューポートに直接ルーティングします。

[projection] id=proj_simple_LT type=simple screen=scr_LT

次の例では、プロジェクション タイプを使用して、スケーラブル ディスプレイのコンフィギュレーション ファイルで定義されたサーフェスにレンダリングする方法を示しています。

[projection] id=proj_easyblend_1 type="easyblend" file="D:\eb_data\ScalableData.pol_1" origin=easyblend_origin_1 scale=0.1

次の例では、プロジェクション タイプ`mpcdi` を使用して、MPCDI コンフィギュレーション ファイルで定義されたサーフェスにレンダリングする方法を示しています。

[projection] id=proj_mpcdi_LT type="mpcdi" file="D:\rot90_flat.mpcdi" buffer="Mosaic" region="Monitor_R" origin=mpcdi_origin

次の例では、プロジェクションタイプ mpcdi を使用して、指定された .png ファイルで定義されたアルファ ブレンディング マップを使用して、指定された .pfm ジオメトリ ファイルで定義されたカーブしたサーフェスにレンダリングする方法を示しています。

[projection] id=proj_mpcdi_LT type="mpcdi" pfm="D:\geom_displayLeft1.pfm" alpha="D:\Left1blend.png" alpha_gamma=2 origin=mpcdi_origin

パラメータ:

パラメータ

説明

id

projection コンフィギュレーションの一意の名前。

type

nDisplay がビューポートで描画するレンダリングされた画像を生成する方法を定義する投影タイプ。このパラメータでは、次の値を受け入れます。

  • simple:screen コンフィギュレーション セクションで定義された仮想ワールドの視錐台をビューポートにレンダリングします。

  • easyblend:Scalable Display Technologies のツールを使用して較正した仮想ワールドのビューをビューポートにレンダリングします。

  • mpcdi:MPCDI を使用して較正した仮想ワールドのビューをビューポートにレンダリングします。

プロジェクションが type=simple の場合、さらに次のパラメータも受け入れます。

パラメータ

説明

screen

Unreal Engine アプリケーションがビューポートにレンダリングする必要のある 3D 空間の視錐台を定義する screen コンフィギュレーションの名前。

プロジェクションが type=easyblend の場合、さらに次のパラメータも受け入れます。

パラメータ

説明

file

ビューポートを投影するサーフェスを定義するスケーラブル ディスプレイのキャリブレーション ファイルのパスとファイル名。

origin

プロジェクションの開始点を定義する scene_node コンフィギュレーション セクションの ID。これにより、スケーラブル ディスプレイ キャリブレーション ファイルで定義された参照のフレームが、Unreal Engine のレベルの仮想空間にマッピングされます。

scale

プロジェクションで使用するスケーリングの係数。

プロジェクションが type=mpcdi または type=pcp_mpcdi の場合、さらに次のパラメータも受け入れます。

パラメータ

説明

origin

プロジェクションの開始点を定義する scene_node コンフィギュレーション セクションの ID。これにより、MPCDI キャリブレーション ファイル (または .pfm ジオメトリ ファイル) で定義された参照のフレームが Unreal Engine のレベルの仮想空間にマッピングされます。

file

ビューポートを投影するサーフェスのジオメトリを定義する .mpcdi ファイルのパスとファイル名。

buffer

ビューポートの投影領域を定義する .mpcdi ファイル内のバッファの ID。

region

レンダリング先にする必要のある上記で設定したバッファ内の領域の ID。

pfm

上記の filebufferregion の各設定を使用してビューポートが`mpcdi ファイルのデータに基づいて投影されるサーフェスのジオメトリを定義するのではなく、 pfm 設定を使用すると、ユーザーが指定する .pfm` ファイルで投影のジオメトリを指定できます。

scale

pfm 設定を使用する場合、scale 設定を使用すると、ジオメトリに使用するスケール ファクタを指定できます。オプションです。

ue4space

pfm 設定を使用する場合、Unreal Engine の座標系で .pfm ファイルがすでに表されているときは ue4space 設定を使用できます。オプションです。

alpha

投影の強度を定義するアルファ ブレンド マップとして使用する .png ファイルのパスとファイル名。オプションです。

alpha_gamma

alpha 設定を使用する場合、alpha_gamma 設定を使用すると、アルファ ガンマの乗数を指定できます。オプションです。

beta

alpha 設定を使用する場合、beta 設定を使用すると、ベータ ブレンド マップとして使用する .png ファイルのパスとファイル名を指定できます。これは黒レベルの調整を定義します。オプションです。

nDisplay では、現在、MPCDI バージョン 1.0、および 2D および A3D (すなわち Advanced 3D) のプロファイル タイプのみをサポートします。

プロジェクションが type=manual の場合は、nDisplay がレンダリングするための視点回転と錐台を定義するために、次のパラメータも受け入れます。マトリクスまたは角度のいずれかを使って錐台を設定することができます。

パラメータ

説明

rot

視点回転。ピッチ、ヨー、ロール値で表します。例えば rot="P=0,Y=0,R=0" です。

マトリクスを使用する

matrix

モノスコピック レンダリングを使用する場合、この 4x4 マトリクスを使って視錐台を定義します。

matrix_leftmatrix_right

ステレオスコピック レンダリングを使用する場合、4x4 マトリクスのペアを使って左目と右目の両方の視錐台を定義します。例えば、matrix_left="[0.5 0 0 0] [0 0.999999 0 0] [1 0 0 1] [0 0 1 0]" matrix_right="[0.500001 0 0 0] [0 1 0 0] [-1 0 0 1] [0 0 1 0]".

角度を使用する

frustum

モノスコピック レンダリングを使用する場合、このプロパティを使って角度を錐台の左、右、上、下に設定することができます。例えば、frustum="l=0 r=15 t=10 b=-10"

matrix_leftmatrix_right

モノスコピック レンダリングを使用する場合、このプロパティを使って、左目と右目の両方に対して角度を錐台の左、右、上、下に設定することができます。例えば、frustum_left="l=15 r=0 t=10 b=10" frustum_right="left=0 right=15 top=10 bottom=-10"

Screen コンフィギュレーション

プロジェクション タイプ simple 使用する各種出力ディスプレイは、3D VR 空間におけるサイズと配置が定義済みの長方形で定義される視錐台を使用して、現在のカメラ位置からシーンをレンダリングします。このような各長方形は、screen コンフィギュレーションで定義します。通常、これらの各プロジェクション スクリーンは、プロジェクション スクリーンのレンダリングに使用する物理スクリーンと同じ寸法を VR 空間に持ちます。

スクリーンのピボット ポイントは、常に正確な中間点にあります。

コンフィギュレーションの例:

この定義は、親のすぐ前にある 3m x 3m のスクリーンを表します。スクリーンのピボット ポイントは size パラメータで定義された長方形の中心にあるため、Z 軸で 1.5 m のオフセットを追加して、スクリーンをその高さの半分のみ上に移動します。

[screen] id=screen_front loc="X=1.5.Y=0,Z=1.5" rot="P=0,Y=0,R=0" size="X=3,Y=3" parent=screens

ビューアの左側のスクリーンを定義するには、スクリーンを左に移動して (Y 軸の負の値)、ローカル Y 軸を中心に回転します (ヨー)。 

[screen] id=screen_left loc="X=0,y=-1.5,Z=1.5" rot="P=0,Y=-90,R=0" size="X=3,Y=3" parent=screens

パラメータ:

パラメータ

説明

id

スクリーン コンフィギュレーションの一意の名前。

loc

親を基準とした VR 空間でのスクリーンの中心の位置。

rot

スクリーンの向きのピッチ (P)、ヨー (Y) およびロール (R) の角度 (度単位)。

size

ローカル X 軸と Y 軸に沿った長方形のスクリーンの合計サイズ (メートル単位)。

parent

オブジェクトの親として機能する必要のある scene_node コンフィギュレーションの名前。このパラメータはオプションです。親を指定すると、loc パラメータおよび rot パラメータで設定する値は、その親の位置が基準となります。親を指定しない場合、loc パラメータおよび rot パラメータで設定する値は、VR ルートが基準となります。

PostProcess コンフィギュレーション

postprocess コンフィギュレーションは、ウィンドウ に対して生成された画像をレンダリング前に Unreal Engine のインスタンスによってどのようにポストプロセスするかを定義します。

nDisplay が現在サポートしているポストプロセス操作は OutputRemap の 1 種類です。このポストプロセス操作を使用して、nDisplay によって生成された 2D イメージをアプリケーション ウィンドウの 2D 領域にマップする方法を制御できます。例えば、出力画像を部分的に平行移動、回転、スケールしてアプリケーション ウィンドウの異なる領域に表示させることができます。この操作を行うには、UV マッピング設定がされた平面ジオメトリを含む .obj が必要です。nDisplay は プレーンに対して設定した UV マッピングを使って、出力画像のどの部分をアプリケーション ウィンドウのどの部分に表示するのか決定します。

コンフィギュレーションの例:

[window] id=somewindow ... postprocess="pp_1, pp_2"
[postprocess] id=pp_1 type="OutputRemap" file="remap_1.obj"
[postprocess] id=pp_2 type="OutputRemap" file="remap_2.obj"

パラメータ:

パラメータ

説明

id

ポストプロセス コンフィギュレーションの一意の名前。

type

実行するポストプロセスのタイプです。現在 OutputRemap タイプのみサポートしています。

file

アプリケーション ウィンドウに描画する前に、レンダリングされた画像を再マップするための UV マッピングを含む .obj ファイルのパスとファイル名です。

Camera コンフィギュレーション

nDisplay クラスタのすべてのインスタンスは、仮想ワールドの同じ位置からシーンをレンダリングします。この場合の使用する可能性のある視点は、camera コンフィギュレーション行でそれぞれ定義されます。

これらの視点は、実行時に切り替えることができます。トラッキング デバイスで各カメラの視点を制御することもできます。

コンフィギュレーションの例:

[camera] id=camera_static loc="X=0.Y=0,Z=1.7" tracker_id=VRPNTracking tracker_ch=0

パラメータ:

パラメータ

説明

id

camera コンフィギュレーションの一意の名前。

loc

親を基準とした VR 空間でのカメラの中心の位置。

tracker_id

時間の経過に伴いカメラの位置を制御したい VR デバイスを定義する input コンフィギュレーションの名前。オプションです。このパラメータを省略すると、カメラの位置は VR 空間で固定されます。

tracker_ch

tracker_id を指定した場合、このパラメータで nDisplay がトラッキング データを読み取るデバイスのチャネルを指定します。

parent

オブジェクトの親として機能する必要のある scene_node コンフィギュレーションの名前。このパラメータはオプションです。親を指定すると、loc パラメータに設定する値は、その親の位置が基準となります。親を指定しない場合、loc パラメータに設定する値は、VR ルートが基準となります。

eye_swap

ステレオスコピック モードでレンダリングする場合、このプロパティは左目用および右目用に生成された画像を切り替えるかどうかを指定します。オプションとして、デフォルト値は false です。

eye_dist

ステレオスコピック モードでレンダリングする場合、このプロパティは左目用および右目用に生成された画像のオフセット設定に使用する眼間距離 (メートル単位) を指定します。

force_swap

モノスコピック モードでレンダリングする場合このカメラを左目または右目の位置に依存するように配置することで (前述の eye_dist プロパティで定義したように)、このプロパティはステレオスコピック レンダリングのシミュレーションを可能にします。-1 を使うとカメラは左目の位置からレンダリングします。0 を使うとカメラのデフォルト位置からレンダリングします (エフェクトなし)。1 と使うとカメラは右目の位置からレンダリングします。

Scene Node コンフィギュレーション

コンフィギュレーション ファイルでは、シーン ノードの階層を定義できます。各シーン ノードは 3D 空間でのトランスフォームを表します。カメラ、投影スクリーンなど、3D 空間での位置および回転状態を必要とするコンフィギュレーション ファイルで設定した要素はすべて、このような scene_node コンフィギュレーションのいずれかを親として使用できます。これは、視覚化システムのすべての異なるコンポーネント間の空間的な関係を定義するうえで役立ちます。

Scene Node は、カメラと同じように、VR トラッキング デバイスでも制御できます。

コンフィギュレーションの例:

次の行では、2 つのノードの階層を定義しています。ここで、子ノードには親の前に 2 m のオフセットがあります。

[scene_node] id=vr_space_root loc="X=0.Y=0,Z=0" rot="P=0,Y=0,R=0"
[scene_node] id=walls_front_group loc="X=2.Y=0,Z=0" rot="P=0,Y=0,R=0" parent= vr_space_root

次の行では、VR トラッキング デバイスによって制御されるように設定されているシーン ノードを示しています。

[scene_node] id=cave_wand loc="X=0, Y=0,Z=1" tracker_id=CaveTracking tracker_ch=1

パラメータ:

パラメータ

説明

id

Scene Node コンフィギュレーションの一意の名前。

loc

親を基準とした VR 空間でのシーン ノードの中心の位置。

rot

シーン ノードの向きのピッチ (P)、ヨー (Y) およびロール (R) の角度 (度単位)。

parent

オブジェクトの親として機能する必要のある scene_node コンフィギュレーションの名前。このパラメータはオプションです。親を指定すると、loc パラメータおよび rot パラメータで設定する値は、その親の位置が基準となります。親を指定しない場合、loc パラメータおよび rot パラメータで設定する値は、VR ルートが基準となります。

tracker_id

時間の経過に伴いカメラの位置を制御したい VR デバイスを定義する input コンフィギュレーションの名前。オプションです。このパラメータを省略すると、シーン ノードの位置および回転状態は、親を基準として VR 空間で固定されます。

tracker_ch

tracker_id を指定した場合、このパラメータで nDisplay がトラッキング データを読み取るデバイスのチャネルを指定します。

Input コンフィギュレーション

nDisplay システムに入力を提供する必要のある各デバイスの input セクションを定義します。例えば、各 camera および各 scene_node は、必要に応じて、input セクションで設定し、camera または scene_node コンフィギュレーションで参照する VR トラッキング デバイスで制御できます。または、トラッカー、コントローラー、およびキーボードを設定して、汎用入力イベントを Unreal Engine 入力システムに送信したり、それらのイベントと入力値をプロジェクトのゲームプレイ スクリプトで応答できる汎用 nDisplay ブループリント ノードにバインドする必要がある場合があります。

input_setup セクションを使用して、これらの入力デバイスの特定のチャネル、ボタン、またはキーを、Unreal Engine 内の特定のタイプの入力イベントおよび値にバインドする方法を制御することもできます。

nDisplay 入力で実行できる内容の概要については、「VRPN 入力を使用する 」を参照してください。

コンフィギュレーションの例:

このコンフィギュレーションでは、nDisplay をセットアップして VRPN ロケーション トラッキング デバイスから入力を取得します。通常、このタイプのデバイスは、カメラまたは視聴者の頭部に取り付けるか、視聴者が保持します。camera または scene_node コンフィギュレーションでこの input コンフィギュレーションを参照することにより、トラッカーからカメラの位置またはシーン ノードの位置を自動的に制御できます。または、プロジェクトのブループリント コードでこのトラッカーの値を取得できます。

[input] id=CaveTracking type=tracker addr=Tracker0@192.168.0.1 loc="X=-1.5,Y=0,Z=3.4" rot="P-0,Y=0,R=0" front=X right=Y up=-Z

このコンフィギュレーションでは、VRPN デバイスとしてセットアップされているキーボードからキーボード入力を読み取り、その入力を Unreal Engine のビルトイン キーボード入力を介してルーティングするように nDisplay をセットアップします。

[input] id=ControlKeyboard type=keyboard addr=Keyboard0@192.168.0.1 reflect=ue4

パラメータ:

パラメータ

説明

id

入力デバイス コンフィギュレーションの一意の名前。

type

VRPN 入力デバイスのタイプ:

  • tracker はトラッキング デバイス。

  • analog は軸データを生成するデバイス。

  • button はブール ボタン データを生成するデバイス。

  • keyboard は標準のコンピュータ キーボード。

addr

特定のデバイスを処理する VRPN サーバーのアドレス。この値は次の形式に従う必要があります。
DEVICENAME@SERVER_ADDRESS:SERVER_PORT
ここで、

  • DEVICENAME はデバイスの VRPN 名。

  • SERVER_ADDRESS は VRPN サーバーの IPv4 アドレス。

  • :SERVER_PORT は VRPN サーバーが受信接続をリッスンするポート。
    これはオプションです。指定しない場合、nDisplay はデフォルトでポート 3883 を使用します。

type=tracker のデバイスの場合、さらに次のパラメータも受け入れます。

パラメータ

説明

loc rot

他のコンフィギュレーション セクションと同様に、loc パラメータと rot パラメータは入力デバイスのローカル空間における位置および回転状態のオフセットを指定します。ただし、入力デバイスでは、通常、これらのオフセットを使用してVR 空間内のトラッキング デバイスのルート位置を調整して、シーン ノード階層内で想定される場所に一致させます。

front right up

これらのパラメータは、Unreal でのトラッカーの各ローカル軸 (前、右、上) をトラッカーの座標系の対応する軸と一致させます。Unreal では Z 軸が上向きの右手座標系が採用されています。お使いのトラッカーが別の座標系を使用している場合は、これらのパラメータを使用してトラッカーの座標系を Unreal の座標系にマッピングできます。
例えば、次の行では、トラッカーの Y 軸を Unreal の前側の軸 (X) にマッピングし、トラッカーの X 軸を Unreal の右側の軸 (Y) に、トラッカーの負の Z 軸を Unreal の上側の軸に (Z) マッピングします。
front=Y right=X up=-Z

デバイスが type=keyboard の場合、さらに次のパラメータも受け入れます。

パラメータ

説明

reflect

キーボードの入力を Unreal Engine に渡す方法、およびそれらのイベントに応答する方法を指定します。
この設定では、次のいずれかの値を受け入れます。

  • nDisplay

  • ue4

  • both

  • none

詳細は、「[キーボード イベントを反映する]Engine/Rendering/nDisplay/VRPN#reflectingkeyboardevents)」を参照してください。

Input Setup コンフィギュレーション

input_setup コンフィギュレーション セクションでは、指定された input デバイスの追加のコンフィギュレーション パラメータを指定します。この追加パラメータでは、通常、指定されたデバイスのチャネルまたはキーを汎用 nDisplay ブループリント入力ノードにバインドします。

コンフィギュレーションの例:

このコンフィギュレーションでは、チャネル 0 でイベントを生成するボタンが押されると、ブループリントの [Input (入力)] > [N Display Events (N ディスプレイ イベント)] > nDisplay Button 0 ノードからイベントが生成されるように ID コントローラーで入力デバイスをセットアップします。

[input_setup] id=controller ch=0 bind="nDisplay Button 0"

次のコンフィギュレーションは上記と似ています。ただし、アナログ値 (通常はコントローラーの軸) を nDisplay のアナログ値にバインドする点が異なります。ブループリントの [Input (入力)] >[N Display Events (N ディスプレイ イベント)] > nDisplay Analog 0 ノードを使用して、コントローラーの軸が使用されている場合を検出したり、[Input (入力)] >[N Display Values (N Display 値)] > nDisplay Analog 0 を使用して現在のフレームの値を取得することができます。

[input_setup] id=test_axes ch=0 bind="nDisplay Analog 0"

キーボード デバイスを使用している場合は、各キーを個別にバインドする必要はありません。代わりに、input セクションの reflect 設定を使用して、キー イベントをビルトイン Unreal Engine キーボード イベントにルーティングするか、nDisplay キーボード イベントにルーティングするかを指定します。ただし、バインディングを変更したり、新しいバインディングを追加したい場合は、各キーを個別にバインドできます。例えば、次のセクションでは、スペース バーにより [Input (入力)] >[N Display Events (N ディスプレイ イベント)] > nDisplay Button 3 イベントがトリガーされます。

[input_setup] id=keyboard0 key=Space bind="nDisplay Button 3"

パラメータ:

パラメータ

説明

id

この input_setup セクションが設定する input コンフィギュレーションの ID を参照します。
なお、nDisplay コンフィギュレーション ファイルの他のほとんどのセクションとは異なり、この id 値では ID を含む input_setup セクションの ID を指定しません。代わりにファイルの他の場所で定義されている input セクションの ID を参照します。

ch

bind 設定で設定したイベントにバインドされる、指定された入力デバイスのチャネルを指定します。

key

ch と似ていますが、type=keyboard である入力デバイスのみに使用されます。

bind

上記で指定されたチャネルまたはキーがバインドされている Unreal Engine のイベントを指定します。この値は、F1nDisplay F1nDisplay Button 0Gamepad Left Thumbstick X-AxisGamepad Face Button Top などの [Input (入力)] カテゴリに表示されるブループリント ノードの名前である可能性があります。
名前にスペースが含まれる場合は、二重引用符で囲む必要があります。

入力モジュール API のノードを使用して、プロジェクトのブループリント コードでこれらのチャネルとキー バインディングを設定することもできます。詳細は、デバイス チャンネルを UE4 入力にバインドする を参照してください。

一般的なコンフィギュレーション

general コンフィギュレーション行には、nDisplay クラスタの全体的な動作を制御するパラメータが含まれています。

コンフィギュレーションの例:

[general] swap_sync_policy=1

パラメータ:

パラメータ

説明

swap_sync_policy

ネットワークを使用した出力の同期方法を指定します。

  • 0: 同期なし

  • 1:ソフトウェアのスワップ同期

  • 2:NV スワップ ロック (OpenGL でレンダリングする NVIDIA カードのみ)

Network コンフィギュレーション

network コンフィギュレーション セクションでは、nDisplay クラスタ ノード間のネットワーク通信に関連するタイムアウトおよびその他の設定を制御するために使用できる設定を指定します。

nDisplay コンフィギュレーション ファイルには、network セクションを含めないか、または 1 つのみ含めることができます。

コンフィギュレーションの例:

[network] cln_conn_tries_amount=10 cln_conn_retry_delay=1000 game_start_timeout=30000 barrier_wait_timeout=5000

パラメータ:

パラメータ

説明

cln_conn_tries_amount

マスター以外のクラスタ ノードを起動する場合、この設定でノードがマスターへの接続を試行する回数を指定します。
オプションとして、デフォルト値は「10」です。

cln_conn_retry_delay

マスター以外のクラスタ ノードを起動する場合、この設定で、ノードがマスターへの接続を連続して試行する際の各試行間の時間間隔がミリ秒単位を指定します。
オプション。デフォルト値は「1000」です。

game_start_timeout

各クラスタ ノードの各 Unreal Engine アプリケーションがゲーム ループの最初のフレームを開始してメイン ウィンドウへのレンダリングを開始する前に待機する時間間隔をミリ秒単位で設定します。これにより、すべてのクラスタ ノードがレンダリングを開始する前にマスターに接続できるようになります。この間、メイン ウィンドウは黒く表示されます。この時間間隔の終了時に、どのノードも正常に接続されていない場合、クラスタ内のすべてのインスタンスがシャットダウンします。
オプションとして、デフォルト値は「30000」です。クラスタの初期化に非常に時間がかかる場合は、この値を大きくする必要がある場合があります。

barrier_wait_timeout

ゲームおよびレンダリング スレッドのバリア タイムアウトをミリ秒単位で設定します。これは、クラスタ ノード間でゲーム スレッドとレンダリング スレッドの両方を同期するバリア タイムアウトです。各フレーム内で複数回使用されます。つまり、これはノードが到達不能になっている状況を検出するために実行時に使用されます。この場合、クラスタの状態は無効であると見なされ、すべてのノードが自分自身でシャットダウンします。
オプション。デフォルト値は「5000」です。

cln_conn_tries_amount 設定および cln_conn_retry_delay 設定は連携して、クラスタ ノードが起動時にマスター ノードへの接続を試行する最長時間を指定します。例えば、cln_conn_tries_amount が「10」に設定され、cln_conn_retry_delay が「1000」ミリ秒に設定されているとします。起動時に、各ノードはマスターへの接続を試行します。その接続が失敗した場合、再試行するまで 1000 ミリ秒待機します。その試行も失敗した場合、さらに 1000 ミリ秒待機します。10 回連続で失敗すると、クラスタ ノードは自動的に終了します。クラスタ ノードがマスターに接続するとすぐに、回数のカウントが停止します。

Info コンフィギュレーション

info コンフィギュレーション行には、コンフィギュレーション ファイルと互換性があることが判明している nDisplay と Unreal Engine の最新バージョンに関するオプションの情報が含まれています。

コンフィギュレーションの例:

[info] version=22

パラメータ:

パラメータ

説明

version

このファイルが使用するコンフィギュレーション形式をサポートする Unreal Engine の最低バージョンです。

4. の後の小数点以下がバージョン番号を表します。例えば、22 という値は、ファイルがバージョン 4.22 の nDisplay および Unreal Engine と互換性があることを意味します。

この値は手動による設定はできません。nDisplay Launcher によって自動的に設定されます。バージョンのない、または使用中の Unreal Engine の現在のバージョンによってサポートされていないコンフィギュレーション ファイルを使用すると、nDisplay Launcher は最新バージョンを使用するためコンフィギュレーション ファイルの更新を自動的に試行します。更新に成功した場合、更新されたコンフィギュレーションを新しいファイルに保存して、この値を最新バージョンに更新します。

コンフィギュレーション ファイルのシーン構造体の例

具体的な例を確認するには、「wall_flat_3x2.cfg」サンプル ファイルを開いてください。このサンプル ファイルは「Templates/TP_nDisplayBP/Content/ExampleConfigs」の下にある Unreal Engine のインストール フォルダにあります。このファイルでは 6 つの投影スクリーンを定義します。各投影スクリーンは、個別の物理コンピュータによってレンダリングされます。

また、このファイルでは複数の scene_node を定義しています。これらは連携して、次の階層を作成します。

nDisplay example scene hierarchy

この階層のノードの相対的な位置と回転状態では、6 つの投影スクリーンがカメラから 1 メートルの距離で隣り合って並ぶように、VR 空間でのカメラと 6 つのスクリーンの配置がレイアウトされます。 

なお、このコンフィギュレーションでは、シーンをレンダリングするモニターの端部を考慮して、隣接する各投影スクリーンの間に小さなスペースが含まれます。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback