7.1K Views
October 05, 24
スライド概要
第3回 Unreal Engine 九州LT会 in オンラインで話した資料です
UEノンゲームエンジニア兼一般経済学部系大学生
今から始める nDisplay 月ヶ瀬 理緒
自己紹介 月ヶ瀬 理緒 (@Gisu_Love) ぷちコンが趣味勢 UE歴4年目 ディプロス株式会社のノンゲームエンジニアとTAの間のようなポジ X(Twitter)によくいるので気軽に話しかけてください
九州とのつながり しろくま大好き この間しろくま自宅で作った…の ですが本家とは違かったようです
本日のお題:nDisplayで遊ぼう
環境・話す内容のレベル UE5.4(5.3は同手順で可、5.2/5.1もほぼ同手順(検証中)) UEは初級者程度に使える nDisplayを今から触ってみたい人向け
今日の内容 nDisplayって? nDisplayクイックスタート ちょっとした解説 ちょっとした応用
nDisplayって? 3D錯視風映像 複数ディスプレイへのレンダリング 一つのシーンの複数PCを使用したレンダリング …などが行える技術 ※イメージです ITMediaNEWS様より引用 https://www.itmedia.co.jp/news/articles/2107/20/news108.html
早速使ってみよう!
nDisplayクイックスタート ・nDisplayのクイックスタート を開く 公式クイックスタート https://dev.epicgames.com/ documentation/ja-jp/unrealengine/ndisplay-quick-startfor-unreal-engine
nDisplayのサンプルマップ デフォルトで ・nDisplay ・OpenXR ・VirtualScouting ・SwitchBoard がオンになっている すでにnDisplayConfigが配置 済み
Switchboard Listener を起動する ヘッダーのグレイマンのアイコンの左の3点リーダーを 開きドロップダウンから「Switchboard Listener を起 動」を選択 左下のようなタブが立ち上がったら成功(最小化される) ※初回起動はダウンロードが入る場合があります
Switchboardを起動する グレイマンのアイコンからSwitchBoardを起動する 新しいコンフィグを作成する旨のウィンドウが立ち上がる ので問題がなければOKを押して作成する 左下のようなタブが立ち上がったらOK ※初回起動の場合はダウンロードが発生します
nDisplayをデバイスに追加する 左上のAdd Deviceのドロップダウンを開きnDisplayを選ぶ nDisplayのコンフィグを選ぶタブが表示されるので ・ファイルパスの直打ち ・Browseでコンフィグを選ぶ ・Populateを押して同じプロジェクトにあるnDisplayのコン フィグをピックアップしドロップダウンで選択する のどれかで選びOKを押す SwitchBoardにnDisplay Device Node_0などデバイスが 追加されたら完了
Listenerに接続する 各デバイスの右側のコネクタのマークを押すことで Listenerに接続できる 一番上の→全デバイスの接続 nDisplay Deviceの→該当するデバイスの種類で全接続 各個の→そのデバイスだけ接続 接続に成功するとつながったマークになる(再度ク リックすることで切断できる)
配信を開始する コネクタのマークの左隣の[↑]のアイコンを押すことで 開始できる 開始するとSwitchBoardなどが最小化され、Unreal Multi User Serverが立ち上がる
成功!
ちょっとした解説
SwitchBoard Configって? nDisplayやLiveLink、などの情報や接続先、参照元にな るuProjectやEngineの位置などの情報を設定するもの ・Config Path →コンフィグの名前 ・uProject →参照するプロジェクトファイルのパス ・Engine Dir →エンジンの場所
nDisplayを使用してプロジェクトを 画面に映すのに必要なプラグイン nDisplayを使用して画面を映すのに入れる必要のある追加のプラグインはnDisplayのみ ・nDisplay Configがプロジェクト内にない場合 →ほかで作成したnDisplay Configを流用可能 ・プロジェクトでnDisplay Configが配置されていない場合 →PlayerStartに準拠する(※検証中)
nDisplay Config って? nDisplayのホストになるIP情報やモニターのサイズ、表示 する位置などの情報を設定するもの 作成したnDisplay Configはプロジェクトファイル内のコ ンテンツに.uassetファイルが作成される。 左上のエクスポートから書き出すことで.ndisplayファイ ルを作成可能 .ndisplayのほうは別の場所に持ち出しても問題ないため、 専用のフォルダを作っておくなどで別のプロジェクトで再 利用することが可能
新しいConfigの追加方法 ・nDisplayプラグインを追加しているとコンテ ンツブラウザを右クリックした際nDisplayの選 択肢が出てくるので作成 新規か既存からのコピーを選ぶと左のような画 面になる ・nDisplayScreen →デフォルトのスクリーン ・DefaultViewPoint →視点の位置。この位置から正しく見えるよう スクリーンに投影される
クラスターからおおまかな設定する ・クラスタータブのClusterを右クリックすることで新しいホスト を追加することができる ・Host IP Address →レンダリングするPCのIPアドレス ・Enable Sound →このクラスターから音を出すか ・FullScreen →余った部分を黒塗りにするか下の画面を出すか ・Window →レンダリングする画面全体のサイズ(後述) …などなど 後で変更できる コンフィグをメモ帳などで開き後で書き換えることもできる とりあえず動かしたいだけなら変更しなくてよい
プライマリ(Node)を設定する ・プライマリの詳細からはHostのPCのIPなどクラスターから初期 設定した際に設定した項目などを編集できる ・Windowの設定 位置→プライマリのホスト空間上での位置 サイズ→ノードのレンダリング空間。ノード内に属する ビューポートはこの範囲内に収まらないといけない 位置 サイズ
ビューポートを設定する ・ビューポートのレンダリングのサイズやレンダリングする見た目な どを設定できる ・Enable Viewport →このビューポートをレンダリングするか ・View Origine →どのビューポイントを使用するか(複数視点の時使用) ・Projection Policy →レンダリングの見た目の指定 ・Region →ビューポートのレンダリングサイズとプライマリ上での位置 ・Remapping →UVを回転させたり水平垂直反転させることができる ・Projection PolicyはTypeを指定してから下 のドロップダウンで対象を選ぶ ・デフォルトのビューを使う場合→Simple ・StaticMeshを使う場合→Mesh
自作のスクリーンを設定する ・スクリーンはStaticMeshを使用できる ・UVをUVマップいっぱいに引き延ばさないと ブラックアウトする部分が出る
自作のスクリーンを設定する2 ・自作のメッシュは普通の BluePrintと同じように追加から StaticMeshを選ぶことで追加き る 後述のクラスターで設定する ことでモニターとして使用可 能
完成
クラスター/ホスト/プライマリ(Node)/ ビューポートの関係 クラスター ホスト プライマリ ビューポート
例:2つのビューポートを表示する ホストで分けた場合 プライマリで分けた場合 分けていない場合
ちょっとした応用
パッケージファイルで実行する 所定の設定をすることでプロジェクトファイルではなくパッ ケージファイルからnDisplayを実行することが可能 ・SwitchBoard ConfigをuProject と Engineを空にして作成 ・nDisplayをデバイスに追加 ・左上のツールバーからSettingを開く ・nDisplayの項目からnDisplay Executable Filenameで実 行ファイルを指定 ・通常通り接続して実行 公式チュートリアル: https://dev.epicgames.com/community/learning/knowle dge-base/OpYG/unreal-engine-packaging-projects-forndisplay
複数ホストで実行する 複数ホストにまたがって実行するにはVPロールを設定 する必要がある プロジェクト設定のプラグイン マルチユーザー リ ビジョンコントロール設定の検証モードがSoftである のが推奨(デフォルト設定) SettingのnDisplayからuProject PathがそれぞれのHost のPC内のプロジェクトのパスと合致しているか確認する
既存のカメラに追従させる nDisplay ConfigのSelfを選択した状態で詳細を開くとコ ンフィグレーションのCurrentConfigDataからFollow Local Player Cameraにチェックをすることでプレイ中 のPlayerのカメラに追従させることができる 追従するカメラはViewTargetに依存するのでレベル上の Cine Cameraなどを配置しSet View Target With Blend ノードなどを使用することで視点切り替えすることが可能 DefaultViewPointが中心になるので要注意 マウス入力を行いたい場合、EnhancedInputは動作しな い(検証中)ようなのでMouse Wheel Axisなどで入力は 作成する必要がある
ご清聴ありがとうございました