前回は、nDisplayのハンズオンを行いました。
詳しくは以下の記事をご覧ください。
SwitchboardとSwitchboard Listenerについて理解する
今回のハンズオンでは、前回のnDisplayのハンズオンで作成したLEDパネル一枚を使用するnDisplay Configを元に、Switchboardを使用してLEDに映像を出すための準備をします。
さらに、カメラトラッキングデータをUE側に反映させるところまでを進めて、SwitchboardとSwitchboard Listenerの扱い方を理解してもらえたらと思います。
SwitchboardとSwitchboard Listenerって何だっけ?という方は、以下の記事もあわせてお読みください。
SwitchboardとSwitchboard Listenerの初回セットアップ
前回作成したプロジェクトを起動して、下記画像の右上に示したグレーマンのアイコンをクリックします。
初回はこのグレーマンのアイコンからSwitchboard を立ち上げますが、初めて使用した場合はインストーラーが起動します。
インストール済みの場合は、次の「Switchboardを立ち上げる」へ進んでください。
※インストーラーはインターネット経由でダウンロードするため、インターネット環境へ接続したうえで実行してください。

インストーラーが出てきたら、インストールされる場所を確認し、Installボタンをクリックして進めます。

ダウンロードがスタートします。

ダウンロードが完了すると、ショートカットをデスクトップとスタートメニューに追加するかと聞かれるので、追加しておきましょう。

この後の工程でスタートアップで自動的にSwitchboard Listenerを起動するか聞かれますが、スタートアップに登録してしまうと複数のUEバージョンを扱う環境の場合Switchboard Listener同士が多重起動しようとするため、私はこの段階では登録しないように設定しています。
Switchboardを立ち上げる
Switchboardを立ち上げるため、グレーマンのアイコンから起動します。
自動で.uProjectの状態やコンフィグレーションのネーミングが下記画像のように埋められています。

Projectを起動しておらず、デスクトップにあるショートカットなどから起動した場合は、下記のようにConfig PathとuProject情報は空になっています。

また、ここで作成されるConfigというのはSwitchboardのConfigファイルです。
SwitchboardのConfigファイルはnDisplay Configとは別物です。
SwitchboardのConfigファイルは、起動する.uProjectのファイルパスを設定するもので、主にUEを立ち上げるのに必要な情報などを格納している設定ファイルです。
それに対して、nDisplay ConfigはどのPCにどのCG空間を描画させるかの指定をしています。
では、OKを押してSwitchboardを早速立ち上げてみましょう。
立ち上げると以下の画面が表示されます。

起動後は、まず最初にnDisplay Configをロードする必要があります。
Add DeviceからnDisplayを選択します。

Add nDisplay Deviceという小さなウインドウが表示されます。

Populateをクリックし、自分が作成したnDisplay Configを設定します。

Populateを押した後にConfigファイルが意図している物とは違うものが割り振られていた場合は、Configファイルのプルダウンから設定したいnDisplay Configを指定してください。

今回はTechBlog_nDisplay.uassetというConfigファイルを指定して、OKを押します。
nDisplay Configが設定されたので、画面上のnDisplay Devicesのところにデバイスが追加されています。
Addressのところは黒く隠されていますが、IPアドレスが薄暗く記載されています。

Switchboard Listenerを立ち上げる
次に、Switchboard Listenerを立ち上げます。
Switchboard Listenerを立ち上げると、パスワードを要求されます。

ここでのパスワードは、任意のパスワードを設定してください。
パスワードを入力したら青色のボタンを押します。
※Change Passwordとなっているのは私の環境では既に初回セットアップが完了している為です。

Switchboard Listenerが起動します。左下のStatusはNot Connectedの状態です。

nDisplay Devicesを接続する
Switchboard Listenerの起動を確認したら、Switchboardに戻り、左下のMulti-user Serverに表示されているAuto-joinのチェックを外しておきます。

Auto-joinのチェックを外したらnDisplay Devicesのデバイスに表示されているコンセントマークを選択します。

デバイスが接続されると、Switchboard Listener左下のStatusがConnected to [アドレス]の表示に変わり、デバイスが接続されたことがわかります。

また、Switchboard上では、グレーアウトだったnDisplay Devicesのデバイスがアクティブな表示に変わっています。
コンセントマークを押したあと、一定時間経過しても接続表示にならない場合は、Windows FirewallやIPアドレスの設定をもう一度確認したうえで、再度設定を行ってください。

接続したデバイスに表示されている、上向き矢印のアイコンが起動ボタンです。下記画像のボタンを押して起動してみましょう。

nDisplayの起動

nDisplayが起動された状態
この時にUEに配置したnDisplayのPreviewと明らかに違う画角や映像が写っている場合は、Windowsのモニタースケール倍率が影響している可能性があります。
必ずWindows設定の中にある画面倍率の設定が100%になっていることを確認してください。

これでSwitchboardとSwitchboard Listenerの設定は完了です。
キーボードのEscapeキーを押すと、画面が元に戻ります。
カメラトラッキングのセットアップ
次に、カメラトラッキングの読み込み方を解説します。
カメラトラッキングは、LEDのカラーキャリブレーションを行う上では必須ではありませんが、念のため説明しておきます。
Unreal EngineのEditorに戻り、画面上部メニューからWindow > Virtual Production > Live Linkの順でクリックします。

Live Linkパネルが開きます。
今回はVIVE Marsを使用したカメラトラッキングで説明していきます。
他のトラッキングシステムを使っている場合はこれ以降のステップが異なりますので、各ベンダーのマニュアルを参考にしてください。

VIVE Marsでは、Message BusというSubjectでトラッキングデータの受信が可能です。
Add SourceからMessage Bus Sourceを選択。するとSource TypeにViveLiveLinkPlugDESKTOP...という表示があるのでクリックします。

Live Linkが正常に値を受信できている場合、Subject Nameが下記画像のように追加され、右端の丸いアイコンが緑色になります。
受信できていない場合は、丸いアイコンがオレンジ色になります。

受信できていることを確認したので、この状態をPresetとして保存します。
Add Sourceの右側にあるPresetsを押します。

Save As Presetを選択します。

Presetはアセットとして保存するので、私の環境ではTechBlogLLSubjectという名前にしました。
Saveをしてアセットとして保存したら、このLive Linkの設定が次回起動以降必ずロードされるように設定をしていきます。

Project設定を開き、Live Linkと検索してください。

検索結果に表示されているDefault Live Link Presetへ、先ほど作成したアセットを指定します。

続いてトラッキングデータを実際のカメラに割り振ってみましょう。
Cine Camera Actorをシーンに新規追加します。

追加したらそのカメラをTechBlog_nDisplayオブジェクトの子供に設定します。

親子付が完了したらCine Camera Actorを選択、Detail Panelへ移動してLive Link Controllerを追加します。
上部のAddを押して、Componentを追加しましょう。
Livel...まで検索ボックスに入力すると、Live Link Controllerが出てくるので選択します。

Live Link Controllerを追加したら、Detailsパネル内のLive Link Compoonent Controllerを選択します。
Subject RepresentationがNoneになっているので、該当するCine Camera Actorに変更します。

追加したCine Camera Actorの座標そのものは移動しますが、まだレベル内に配置したnDisplayのInnerには反映されていません。
TechBlog_nDisplayのICVFXカメラコンポーネントに、先ほど作成したカメラを割り振ることで反映されるようになります。
TechBlog_nDisplayを選択して、ICVFXCameraコンポーネントを選択、その後CameraタブにあるCine Camera Actorに先ほど追加したカメラを参照させます。

正しく参照させると下記の画像のようになります。

ここまでの設定が完了すると、TechBlog_nDisplayのInnerが実際のカメラトラッキング移動値に従って動いているはずです。
一旦ここで全てセーブをしましょう。
UEのEditorを終了して、最初に行った手順でSwitchboardからnDisplayを立ち上げて確認を行います。
nDisplayが起動すると、Innerがカメラトラッキングに従って移動するのを確認できました。


まとめ
4K環境のnDisplay ConfigをSwitchboardで読み込み、そしてさらにカメラトラッキングをセットアップしてInnerが動くところまでをハンズオンしました。
次回は、実際にLEDパネルに映像を出すための設定等をして行きます。
お楽しみに!