スタジオブロス TECH BLOG

スタジオブロススタッフからの最新ツール情報やチュートリアル・TIPSなどを紹介します

バーチャルプロダクションとカラーマネジメント : nDisplay Config ハンズオン

前回の復習

これまで全4回にわたって基礎知識と設定について解説いたしました。
いよいよ今回からハンズオン編に入ります!

このハンズオンではUnreal Engine 5.4を使用して進めます。

nDisplay Config ハンズオン

今回はLEDパネル1枚の場合のnDisplay Configを作成します。
ハンズオンは下記の流れで進めます。

  1. Unreal Projectの作成
  2. nDisplay Configの作成
  3. メッシュの形状の追加とスケーリング
  4. シーンへ追加

作成するnDisplay Configには下記の情報が格納されます。

  • LEDの形状(Meshデータを参照)
  • LEDへ描画するPCの台数とIPアドレス

バーチャルプロダクションで必要不可欠な、トラッキングバイスやレンズキャリブレーションに関しては、nDisplay Config内には情報が保存されません。詳しくは次回以降で解説していきます。

nDisplay Configでは、カメラの座標やレンズ情報はICVFX Camera Component経由で受け取ります。
今回はnDisplay Configのハンズオンなので、nDisplay Configの作成から、ICVFX Camera Componentの宣言までを行います。

1. Unreal Projectの作成

はじめに、Unreal Engineのプロジェクトを作成します。
プロジェクトを作成する際は、InCameraVFXテンプレートを元に作成すると楽なのでこちらを使用しましょう。

プロジェクト作成時のテンプレート選択画面

Project LocationとProject Nameを入力したらCreateを選択します。
起動すると下図のような画面になります。

起動直後の画面

2. nDisplay Configの作成

起動したら、nDisplay Configを作成しましょう。
Content Browserで右クリックをしてメニューを開き、「nDisplay > nDisplay Confing」を選択します(下図参照)。

メニューからnDisplay Configを選択

nDisplay Configを新規作成するか、他のConfigをベースとして作成するか聞かれるのでCreate New Configを選択して新規作成します。

新規作成を選択する

Content BrowserにnDisplay Configのアセットが生成されています。
分かりやすいように名前を変更しておきましょう。

生成されたnDisplay Configアセット

TechBlog_nDisplayへリネーム

作成したnDisplay Configアセットをダブルクリックで開くと、このような画面になります。

nDisplay Config Editorの画面

まず、使用しないComponentを削除しておきます。
下図のようにに表示されている「nDisplayScreen」を選択し、削除しましょう。

一覧にnDisplayScreenが表示されている

nDisplayScreen削除後の一覧

3. メッシュの形状の追加とスケーリング

次に「Add」ボタンから、StaticMeshとICVFX Camera Componentを追加します。

StaticMeshとICFVX Camera Componentの追加後の一覧

今回はEngine内のコンテンツに含まれるStatic Meshをスケールして使用します。
選択したStaticMeshにplane_100x100を割り当てます。

スケール値を実際のLEDパネルの大きさと合うように編集します。
例えば、横5.0m×高さ2.5mのパネルの場合は、Yを5.0、Zを2.5に設定します。

横が5.0m、高さが2.5mのnDisplay Configを作成

ただ、この状態だと下半分が埋まってしまうので、Z軸のオフセットを反映します。
高さが2.5mなのでその半分の125cm(1.25m)をLocationのZ軸に設定します。

Z軸を125cm(1.25m)オフセット

オフセットを反映したら、次にClusterを追加します。
Clusterとは、nDisplayに対してレンダリングするためのワークステーション群のことを指します。
今回、1パネルは1台での描画なのでインスタンスを1つ追加します。

Clusterの追加1

「Add」ボタンを押すと下記のウィンドウが表示されます。

Clusterの追加2

Nameや解像度のPresetを自分の作業環境のMonitorとIPアドレスに変更します。
ここで主に変更するのはNameとPresetとHost IP Addressです。

  • Name:レンダーの名前です。会社で管理されているPCであれば、インスタンスの管理番号とかが適切でしょう。
  • Preset:このPCが最終的に出力する解像度と同じ解像度です。今回はUltra HDなのでUltra HDに変更をします。
  • Host IP Address:接続するホストのIPアドレスを設定します。

その他必要な設定があれば確認し、Addをクリックします。

変更後



Clusterを追加すると、下記のようにOutput Mappingに赤枠で囲まれた黒い画面が出現します。

Cluster追加後の画面

この画面が暗いのは、まだClusterがどのようにレンダリングするか決められていないからです。
それでは、Projection Policyを設定していきましょう。
左のClusterのWindow内のVP_0を選択して、Detail PanelのProjection Policyを変更します。

Projection Policyの編集

Projection PolicyのTypeをMeshに変更します。
変更するとMeshの項目を選択できるようになるので、StaticMeshを選択します。

Projection Policy設定変更後

Viewportの映像が描画されました。

選択後のViewport

MeshのLocation.xに300を入力すると正しく描画されるようになります。
300という数字は、Projection原点から約3メートル離すということで今は特に意味はありません。これは後程TrackingDeviceを設定する際に改めて編集する必要があります。

LEDMeshのLocation情報の最終的な値

カメラの描画が反映された

カメラの座標を変更すると、Innerが正しく描画されていることが確認できます。

カメラの移動後に描画が正しく反映されている様子

4. シーンへ追加

CompileしてSavedします。
シーンにドラッグアンドドロップすると下記のようになります。

シーンにドラッグアンドドロップした状態


まとめ

今回はLEDパネル1枚の場合の、4K環境のnDisplay Configを作成しました。
次回は、Switchboardを使用して画面上に映像を出力し、カメラトラッキングでカメラを繋げるまでの流れのハンズオンを進めていきます。お楽しみに!