Switchboard 設定のリファレンス

Switchboard の設定項目に関する詳細。

Windows
MacOS
Linux

Switchboard プラグインの設定

次に示す手順に従ってプラグインの設定を変更します。

  1. Unreal Editor のメイン メニューから [Edit (編集)] > [Project Settings (プロジェクト設定)] を選択して、[Project Settings (プロジェクト設定)] ウィンドウを開きます。

  2. [Project Settings (プロジェクト設定)] ウィンドウで、[Plugin] セクションの [Switchboard] を選択します。

Switchboard plugin settings

パラメータ

説明

Switchboard

Python Interpreter Path

Switchboard が使用するデフォルト バージョンは Python 3.7.7 です。別のバージョンの Python を使用する場合は、マシン上の別の Python インタープリタを指すようにこのフィールドを変更します。

Switchboard Path

Switchboard の Python ファイルがある場所。

Commandline Arguments

現在、Switchboard はコマンドライン引数に対応していません。

Listener

Listener Path

SwitchboardListener の実行可能ファイルがある場所。

Listener Commandline Arguments

SwitchboardListener には次の引数を指定します。

  • -ip: SwitchboardListener がリッスンする IP アドレスを設定する

  • -port: SwitchboardListener がリッスンするポートを設定する

OSC

Default Switchboard OSC Listener

Switchboard には Take Recorder を使用できる OSC Listener が必要です。詳細は Take Recording with Switchboard を参照してください。

Switchboard の設定

  • プロジェクトの初期設定時に追加した値など、すべてのデバイス プラグインに共通する設定は [Settings] パネルの上部にあります。

  • デバイスを追加すると、そのデバイスの設定が設定パネルに追加されます。

  • 一般設定の一部はデバイス設定にも存在するため、必要に応じてデバイスごとに値をオーバーライドできます。

  • 特定のデバイスで設定をオーバーライドすると、異なる背景色で表示されます。このオーバーライドを維持する限り、そのデバイスの該当設定はグローバルな設定を変更した後も維持されます。

Switchboard settings panel

次のセクションでは [Settings] パネルで変更できる設定をすべて説明します。

Switchboard project settings

パラメータ

説明

IP Address

Switchboard で実行中のマシンと、内部 OSC サーバーの IP アドレス。Switchboard で実行中のコンピュータがネットワーク コントローラーを複数持つ場合は、ここでアドレスを変更します。

Transport Path

現在、Switchboard では使用しません。

プロジェクト設定

パラメータ

説明

Project Name

Switchboard のプロジェクト名。設定とデバイスを保存するファイル名の基礎として使用します。

UProject

UE のプロジェクト ファイルに対するローカル パス。

Engine Dir

Unreal Engine ディレクトリに対するローカル パス。

Build Engine

Switchboard でエンジンをソースからビルド可能にするフラグ。

Map Path

Switchboard の [Level] ドロップダウンに表示する、 [Content (コンテンツ)] フォルダからマップへの相対パス。

Map Filter

[Level] ドロップダウンに表示するマップを制限するファイル フィルター。

OSC

Server Port

Switchboard で OSC サーバーがリッスンするポート。

Client Port

Unreal Editor で指定した OSC クライアントのポート。

Source Control (ソース コントロール)

P4 Project Path

UProject で指定した Unreal プロジェクトの Perforce デポ パス。指定する必要があるのは UProject ファイルを含むデポ フォルダのみです。

P4 Engine Path

この P4 Engine Path 設定は、プロジェクトだけでなく、エンジンをソースからビルドする場合にのみ必須となります。詳細は「Syncing and Building」を参照してください。

Workspace Name

デポ プロジェクト パスにマップする Perforce ワークスペース名。

マルチユーザー サーバ設定

パラメータ

説明

Server Name

完全なサーバー名を作成する際にプロジェクト名に付加する名前。

Command Line Args

マルチユーザー サーバーの実行可能ファイルに渡す引数 (オプション)。

Auto Join

このオプションを有効化すると、それぞれの Unreal や nDisplay デバイスを自動でマルチユーザー サーバーに参加させます。

Clean History

引数 -ConcertClean をサーバーに渡して、サーバー セッションの作業ディレクトリを起動時にクリーンアップします。

Auto Launch

このオプションを有効化すると、Unreal や nDisplay デバイスの初回起動時にマルチユーザー サーバーを起動しkます。このサーバーは常に Switchboard と同じデバイスで実行されます。

Unreal デバイスの設定

Switchboard Unreal device settings

パラメータ

説明

Is Recording Device

このデバイスの種類がシーケンスをレコーディングする場合、このオプションを有効化する。

Buffer Size

SwitchboardListener に接続したソケット クライアントの内部バッファ サイズ。

Command Line Arguments

Unreal の起動時に渡するコマンドライン引数 (オプション)。

ExecCmds

-ExecCmds (コンソール コマンド) を設定して、起動時のコマンドライン引数として Unreal に渡す。

Listener Port

Listener がリッスンするポート番号。デフォルト ポートは「2980」。

Roles Filename

Virtual Production Role を含む .ini ファイルの名前。

Stage Session ID

Stage Monitor プロバイダとモニターをグループ化する ID。セッション ID が異なるインスタンスは Stage Monitor で相互に参照はできません。

UE4 Editor filename

Unreal Editor の実行可能ファイルの名前。

Number of GPUs

GPU が複数ある場合にデバイスで使用する数。

Instance Settings (インスタンス設定)

IP address

SwitchboardListener がリッスンするリモート アドレス。

Roles

「Roles.ini」ファイルが提供する対象から Virtual Production Role を選択するためのドロップダウン メニュー。

Is Recording Device

このデバイスをレコーディングに使用するかどうかをオーバーライドする。

Command Line Arguments

コマンドライン引数 (オプション) をオーバーライドする。

ExecCmds

Unreal の exec コマンドをオーバーライドします。

Number of GPUs

使用する GPU 数をオーバーライドします。

Engine Directory

エンジンに対するローカル パスをオーバーライドします。

uProject Path

Uproject ファイルに対するローカル パスをオーバーライドします。

KiPro デバイスの設定

Switchboard Kipro device settings

パラメータ

説明

Is Recording Device

このデバイスの種類がシーケンスをレコーディングする場合、このオプションを有効化する。

IP address

KiPro Web サーバーのアドレス。

Auto Play After Stop

このオプションを有効化すると、レコーディングが完了した時に自動で再生します。

Live Link Face

Switchboard Live Link device settings

パラメータ

説明

Is Recording Device

このデバイスの種類がシーケンスをレコーディングする場合、このオプションを有効化する。

IP address

現在、Switchboard では使用しません。

nDisplay デバイスの設定

Switchboard nDisplay device settings

パラメータ

説明

nDisplay Config File

.cfg 形式と JSON 形式の両方をサポートします。

Use All Available Cores

このオプションを有効化するとコアをすべて使用します。

Texture Streaming

テクスチャ ストリーミングを切り替えます。

Render API

DirectX11 と DirectX12 のオプションから選択します。

Render Mode

nDisplay レンダリング モードを選択できます。

Extra Cmd Line Args

起動時に nDisplay に渡すコマンドライン引数 (オプション)。

ExecCmds

-ExecCmds (コンソール コマンド) を設定して、起動時のコマンドライン引数として Unreal に渡す。

Number of GPUs

GPU が複数ある場合にデバイスで使用する数。

Listener Port

Listener がリッスンするポート番号。デフォルト ポートは「2980」。

Roles

「Roles.ini」ファイルが提供する対象から Virtual Production Role を選択するためのドロップダウン メニュー。

Stage Session ID

Stage Monitor プロバイダとモニターをグループ化する ID。セッション ID が異なるインスタンスは Stage Monitor で相互に参照はできません。

nDisplay シーン ノードごとの設定。

パラメータ

説明

IP address

SwitchboardListener がリッスンするリモート アドレス。

Roles

「Roles.ini」ファイルが提供する対象から Virtual Production Role を選択するためのドロップダウン メニュー。

Extra Cmd Line Args

コマンドライン引数 (オプション) をオーバーライドします。

ExecCmds

nDisplay の exec コマンドをオーバーライドする

Number of GPUs

使用する GPU 数をオーバーライドします。

Engine Directory

エンジンに対するローカル パスをオーバーライドします。

uProject Path

Uproject ファイルに対するローカル パスをオーバーライドします。

Shogun デバイスの設定

Switchboard Shogun device settings

パラメータ

説明

Is Recording Device

このデバイスの種類がシーケンスをレコーディングする場合、このオプションを有効化する。

IP Address

Shogun を実行するデバイスのアドレス。

Save Path

Shogun キャプチャ フォルダのパス。

SoundDevices デバイスの設定

Switchboard SoundDevices device settings

パラメータ

説明

Is Recording Device

このデバイスの種類がシーケンスをレコーディングする場合、このオプションを有効化する。

IP Address

SoundDevices Web サーバーのアドレス。

Switchboard のデバイス プラグインを独自に作成する

プロジェクトのニーズと使用するデバイスに応じて、Switchboard のデバイス機能に対して追加や拡張を行うことができます。このセクションでは、独自のデバイス プラグインを Python で作成する方法を説明します。C++ のナレッジがあれば、リスナーの拡張により受信するメッセージの種類を増やすことができます (ここでは説明しません)。

次の手順では、たたき台として Switchboard に対応した新しいデバイス プラグインである SampleDevice を作成する方法について説明します。

  1. このデバイス プラグインが Switchboard の読み込み時に検出されるように、命名規則「 <plugin_name>\plugin_<plugin_name>.py 」に従ってフォルダと Python ファイルを「 \Engine\Plugins\VirtualProduction\Switchboard\Source\Switchboard\switchboard\devices\ 」配下に作成します。

    • SampleDevice プラグインの場合は以下のファイルを作成します。\Engine\Plugins\VirtualProduction\Switchboard\Source\Switchboard\switchboard\devices\sampledevice\plugin_sampledevice.py

  2. \Engine\Plugins\VirtualProduction\Switchboard\Source\Switchboard\switchboard\devices\device_base.py」で定義された Device クラスを拡張して「plugin_sampledevice.py」ファイルとます。

    • device_base.py」から Device をインポートします。

    • Device を継承して、新しいクラス DeviceSampleDevice を作成します。

    • switchboard/switchboard_logging.py」からエラー報告に使用する LOGGER をインポートします。

          from switchboard.devices.device_base import Device
          from switchboard.switchboard_logging import LOGGER
      
          class DeviceSampleDevice(Device):`
              def __init__(self, name, ip_address, **kwargs):
              super().__init__(name, ip_address, **kwargs)

    このファイルを Switchboard から検出できることを確認します。Switchboard を起動して [Add Device] ドロップダウン メニューを展開します。一覧に SampleDevice が表示されます。

    Adding your custom device to Switchboard

  3. SampleDevice を Switchboard に追加するだけでは、ウィジェットがビューに作成されません。「plugin_sampledevice.py」で DeviceWidget を拡張して SampleDevice ウィジェットを作成します。

    • device_widget_base.py」から DeviceWidget をインポートします。

    • DeviceWidget を継承して、新しいクラス DeviceWidgetSampleDevice を作成します。

          from switchboard.devices.device_base import Device
          from switchboard.devices.device_widget_base import DeviceWidget
          from switchboard.switchboard_logging import LOGGER
      
          class DeviceSampleDevice(Device):
              def __init__(self, name, ip_address, **kwargs):
                  super().__init__(name, ip_address, **kwargs)
      
          class DeviceWidgetSampleDevice(DeviceWidget):
              def __init__(self, name, device_hash, ip_address, icons, parent=None):
                  super().__init__(name, device_hash, ip_address, icons, parent=parent)

    このウィジェットが Switchboard に表示されることを確認します。Switchboard を起動して SampleDevice を追加します。最小限の SampleDevice ウィジェットがビューに表示されます。

    Switchboard custom device widget

  4. AddDeviceDialog を継承する新しいクラスを作成し、それを DeviceSampleDevice クラスのスタティック変数 add_device_dialog に割り当てることにより、新しい SampleDevice を追加する時にカスタム ダイアログを作成します。

    • device_widget_base.py」から AddDeviceDialog をインポートします。

    • PySide2 から Qt モジュールをインポートします。

    • AddDeviceDialog を継承する新しいクラス AddSampleDeviceDialog を作成し、基本クラスのコンストラクタ呼び出しで device_type パラメータに "SampleDevice" を設定します。

    • この新しいクラスのコンストラクタで、QLineEdit テキスト フィールドをダイアログに追加します。

    • DeviceSampleDeviceadd_device_dialog スタティック変数を、この新しいクラスでオーバーライドします。

          from switchboard.devices.device_base import Device
          from switchboard.devices.device_widget_base import AddDeviceDialog, DeviceWidget
          from switchboard.switchboard_logging import LOGGER
      
          from PySide2 import QtWidgets, QtGui, QtCore
      
          class AddSampleDeviceDialog(AddDeviceDialog):
              def __init__(self, existing_devices, parent=None):
                  super().__init__(device_type="SampleDevice", existing_devices=existing_devices, parent=parent)
      
                  # Create QTWidgets to add to the form
                  self.additional_text_field = QtWidgets.QLineEdit(self)
      
                  # Append the new options to the QTWidgets.QFormLayout object defined in the parent class
                  self.form_layout.addRow("Additional Text", self.additional_text_field)
      
          class DeviceSampleDevice(Device):
              # Override the add device dialog object associated with the device plugin
              add_device_dialog = AddSampleDeviceDialog
      
              def __init__(self, name, ip_address, **kwargs):
                  super().__init__(name, ip_address, **kwargs)
      
          class DeviceWidgetSampleDevice(DeviceWidget):
              def __init__(self, name, device_hash, ip_address, icons, parent=None):
                  super().__init__(name, device_hash, ip_address, icons, parent=parent)

      `

    この新しいデバイス ダイアログが Switchboard に表示されることを確認します。Switchboard を起動して SampleDevice を追加します。追加のテキスト フィールドがダイアログに表示されます。

    Switchboard adding custom device dialog

  5. Switchboard の右側にデバイスのウィジェットを配置し、他の拡張ダイアログにタブを追加して、より多くの情報を共有できます。基本クラス Device のクラス メソッド plug_into_ui をオーバーライドして、このタブを作成します。

    • QtWidgets.QWidget を継承して、新しいクラス SampleDeviceTabView を作成します。

    • DeviceSampleDevice にクラス メンバー tab_view を作成して、このウィジェットのインスタンスを保持します。

    • DeviceSampleDevice のクラス メソッド plug_into_ui をオーバーライドし、新しいクラス SampleDeviceTabViewtab_view を初期化します。

          from switchboard.devices.device_base import Device
          from switchboard.devices.device_widget_base import AddDeviceDialog, DeviceWidget
          from switchboard.switchboard_logging import LOGGER
      
          from PySide2 import QtWidgets, QtGui, QtCore
      
          class AddSampleDeviceDialog(AddDeviceDialog):
              def __init__(self, existing_devices, parent=None):
                  super().__init__(device_type="SampleDevice", existing_devices=existing_devices, parent=parent)
      
                  # Create QTWidgets to add to the form
                  self.additional_text_field = QtWidgets.QLineEdit(self)
      
                  # Append the new options to the QTWidgets.QFormLayout self.form_layout object defined in the parent class
                  self.form_layout.addRow("Additional Text", self.additional_text_field)
      
          class DeviceSampleDevice(Device):
              add_device_dialog = AddSampleDeviceDialog # Override the default dialog for the plugin
              tab_view = None
      
              def __init__(self, name, ip_address, **kwargs):
                  super().__init__(name, ip_address, **kwargs)
      
              @classmethod
              def plug_into_ui(cls, menubar, tabs):
                  ''' Implementation of base class function that allows plugin to inject UI elements.
                  '''
      
                  if not cls.tab_view:
                      cls.tab_view = SampleDeviceTabView(parent=tabs)
      
                  tabs.addTab(cls.tab_view, 'SampleDevice Tab')
      
          class DeviceWidgetSampleDevice(DeviceWidget):
              def __init__(self, name, device_hash, ip_address, icons, parent=None):
                  super().__init__(name, device_hash, ip_address, icons, parent=parent)
      
          class SampleDeviceTabView(QtWidgets.QWidget):
              def __init__(self, parent):
                  QtWidgets.QWidget.__init__(self, parent)

    Custom device added to Switchboard

ここまでの手順で、Switchboard の新しいデバイス プラグインの作成方法を説明しました。より高度なサンプルについては、Switchboard の nDisplay デバイス プラグインを参照してください。

タグ
Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
閉じる