マルチユーザー サーバー にユーザー インターフェースが追加され、サーバーの実行状態をライブで検査できるようになりました。オペレーターおよび ICVFX ステージ マネージャーは、これを使用してマルチユーザー サーバーの運用中の問題を調査、監視、診断できます。
これはコンソール サーバーよりもメリットがあります。コンソール サーバーは、コンソール コマンドによる接続情報のストリームのみを提供し、実行中のサーバー運用に関するコンテキスト情報は提供しないためです。
一方、コンソール サーバーは、ヘッドレス コンピュータや UI を実行できないコンピュータでの運用で引き続き利用できます。たとえば、Linux サーバーやコンテナ化された運用での利用が可能です。
マルチユーザー サーバーを構築する
マルチユーザー サーバー プログラムを実行するには、それを構築する必要があります。プリコンパイル済みのバイナリ ビルドを使用している場合、サーバーを事前に構築し、エンジンの起動時にそれが利用可能である必要があります。Unreal Engine をソースからビルドする場合は、UnrealGameSync を使用して、コンソール バージョンと UI バージョンの両方のサーバーのコンパイル済みバージョンをビルドすることをお勧めします。
UnrealGameSync では、オプション Compile UnrealMultiUserServer と Compile UnrealMultiUserSlateServer を有効にすることで、通常の同期操作中にサーバーを構築できます。後者は、新しい UI ベースのサーバーの名前となります。
-
UnrealGameSync インターフェースの右下隅にある [Options (オプション)] をクリックし、[Customize Commands (コマンドをカスタマイズ)] を選択します。
-
[Modify Build Steps (ビルド ステップの変更)] ダイアログで、[Compile UnrealMultiUserServer (UnrealMultiUserServer をコンパイル)] と [Compile UnrealMultiUserSlateServer (UnrealMultiUserSlateServer をコンパイル)] の横にあるチェックボックスを有効にします。
Multi-User Editing プラグインを有効にする
マルチユーザー サーバーを使用するには、プロジェクトで Multi-User Editing プラグインを有効にする必要があります。
-
エディタで、[Edit (編集)] > [Plugins (プラグイン)] からプラグイン ブラウザを開きます。
-
「Multi-User」で検索し、Multi-User Editing プラグインを有効にします。
-
続行する前に Unreal Editor を再起動してください。
設定を変更して UI モードを起動する
プラグインを有効にした後、[Multi-User Project Settings (マルチユーザー プロジェクト設定)] でデフォルトのサーバー モードを変更して、プラグインを UI モードで起動する必要があります。
-
[Window (ウィンドウ)] メニューで [Multi-User Browser (マルチユーザー ブラウザ)] を選択して、プラグイン インターフェースを開きます。
-
[Multi-User Browser] ウィンドウの右上隅にある [Settings (設定)] 歯車アイコンをクリックします。これにより、マルチユーザー エディタのプラグイン設定が開きます。
-
[Client Settings (クライアント設定)] で、[Server Type (サーバー タイプ)] プロパティを [Slate (スレート)] モードに変更します。
Switchboard のサポート
UI モードでのマルチユーザー サーバーの起動は、Switchboard でもサポートされています。Switchboard アプリケーションは、デフォルトでマルチユーザー サーバーを UI モードで起動します。
この動作は、[Switchboard Settings (Switchboard の設定)] メニューでグローバル設定を調整することで変更できます。
-
Switchboard アプリケーション メニューで、[Settings (設定)] > [Settings (設定)] に移動します。
-
[Multi User Server (マルチ ユーザー サーバー)] セクションまで下にスクロールします。
-
[Launch Multi-user server in UI mode (マルチユーザー サーバーを UI モードで起動)] の横にあるボックスのチェックを外して、ユーザー インターフェース バージョンを無効にします。これで、Switchboard がマルチユーザー サーバー セッションをコンソール モードで起動するようになりました。
マルチユーザー サーバーを実行する
[Multi-User Browser (マルチユーザー ブラウザ)] エディタ パネルまたは Switchboard から新しいサーバーを実行できます。
マルチユーザー ブラウザから
マルチユーザー ブラウザ パネルが開いている場合、プラグインはネットワーク上で利用可能なサーバーを自動的に検索します。
ウィンドウの中央にある [Launch a Server (サーバーの起動)] ボタンをクリックするか、ツールバーの左側にあるサーバー アイコンをクリックすると、新しいサーバーを起動できます。
マルチユーザー サーバー UI が新しいウィンドウで開きます。
Switchboard から
Switchboard アプリケーションで、ウィンドウの左下隅にある マルチユーザー サーバー 起動アイコンをクリックします。
マルチユーザー サーバー UI の概要
マルチユーザー サーバー インターフェースには、3 つの領域があります。
- メニュー バーとタブ。
- セッションおよびクライアント情報パネル。
- コマンド コンソールとアウトプット ログ。
メニュー バーとタブ
ウィンドウ
[Window (ウィンドウ)] メニューには、現在の UI タブ ([Sessions (セッション)]、[Clients (クライアント)]、または [Active Session (アクティブ セッション)]) 内で状況によって変化する使用可能なブラウザ ウィンドウのリストが表示されます。このリストを使用すると、以前に閉じたウィンドウを復元できます。
デバッグ
[Debug (デバッグ)] > [View App Icons (アプリ アイコンの表示)] で、マルチユーザー サーバー インターフェースのすべてのアイコンを説明する情報キーを呼び出すことができます。
タブ
メニュー バーの下には一連のタブがあり、これらでマルチユーザー サーバーのさまざまな UI パネルを切り替えられます。デフォルトでは、[Sessions (セッション)] タブと [Clients (クライアント)] タブが表示されます。[Active (アクティブ)] または [Archived Session (アーカイブされたセッション)] をダブルクリックすると、そのセッションに関する詳細情報を含む新しいタブ パネルが開きます。
コマンド コンソールとアウトプット ログ
マルチユーザー サーバーには、アウトプット ログがあります。ここで、サーバーの操作に関連する情報に関するログを確認できます。ここには、マルチユーザー サーバー操作のトラブルシューティングに役立つエラー、警告、および一般的な診断情報が表示されます。
[Filters (フィルタ)] ドロップダウン メニューの下には、表示されるアウトプット ログ エントリを制限するためのいくつかのオプションがあります。
このインターフェースにはコマンド コンソールもあり、マルチユーザー サーバーの操作に影響を与えるさまざまなコンソール変数を変更できます。
セッション情報タブ
Unreal Editor で利用できる既存のマルチユーザー ブラウザと同様、マルチユーザー サーバーには、実行中およびアーカイブされたセッションを調べることができるセッション パネルがあります。
ツールバーのアイコン
アクティブまたはアーカイブされたセッションを選択すると、[Sessions] タブのツールバーから 3 つのアクションを実行できます。
| アイコン | 説明 |
|---|---|
![]() |
選択したセッションを復元します。 |
![]() |
選択したセッションをアーカイブします。 |
![]() |
許可されている場合は選択したセッションを削除します。 |
アクティブ セッション
サーバー上のすべての アクティブ セッション がここに一覧表示され、サーバー、プロジェクト名、Unreal Engine バージョン、および最終更新日に関する概要情報が表示されます。アクティブ セッションを右クリックすると、コンテキスト メニューからそのセッションをアーカイブ、名前変更、または削除できます。
アクティブ セッションを ダブルクリック すると、新しいタブでそのセッションをより詳細に調べることができます。
アーカイブされたセッション
サーバー上のすべての アーカイブされたセッション が、上記と同じ概要情報とともにここに一覧表示されます。アーカイブされたセッションを右クリックすると、コンテキスト メニューからそのセッションを復元、名前変更、または削除できます。
アーカイブされたセッションをダブルクリックすると、それを新しいタブで詳細に調べることができます。
アクティブ セッション タブ
[Sessions Information (セッション情報)] パネルでアクティブなセッションをダブルクリックすると、そのセッションに関する詳細情報を表示できます。セッションに関する情報が、そのセッション名で新しいタブとして開きます。アクティブ セッションの情報パネルには 4 つの領域があります。
- 接続済みクライアント
- セッション履歴
- トランザクション詳細
- セッション コンテンツ
接続済みクライアント
アクティブなセッション タブから [Connected Clients (接続済みクライアント)] ボタンをクリックすると、そのセッションに現在接続されているクライアントを調べることができます。[Connected Clients (接続済みクライアント)] ボタンをクリックすると、メインの [Clients (クライアント)] タブに移動し、コンテンツがフィルタされて、その特定のセッションでアクティブな接続のみが表示されます。[Client] タブの歯車アイコンを使用すると、フィルタをクリアしてすべてのクライアントを表示できます。
セッション履歴
アクティブ セッションのタブを開くと、そのセッション中に発生したすべての個々のトランザクションの時系列の履歴が表示されます。このパネルには、操作の簡単な要約と、変更が発生したクライアントも表示されます。
検索バーを使用すると、履歴タイムラインで特定のトランザクションを探すことができます。歯車アイコンの下から、表示フィルタをいくつか使用することもできます。
トランザクション詳細
セッション履歴で個々のトランザクションを選択して [Details (詳細)] セクションを開くと、そのトランザクションで行われた変更に関する詳細情報を表示できます。
[Modified objects and properties (変更されたオブジェクトとプロパティ)] の下で、一覧表示された項目の 1 つにマウスを合わせると、どのアセットが変更されたかがツールチップに正確に表示されます。
セッション コンテンツ
[Session Content (セッション コンテンツ)] パネルには、プロジェクトのコンテンツに加えられた変更が一覧表示されます。新しいパッケージが追加されると、パッケージ名の左側に [プラス] アイコンが表示されます。パッケージが保存されると、このアイコンは [チェック] 記号に変わります。
クライアント情報タブ
[Clients information (クライアント情報)] タブには、マルチユーザー サーバーに関するネットワーク情報と、そのサーバー上のセッションに参加したクライアントの記録が表示されます。
クライアント テーブル
[Clients Table (クライアント テーブル)] は、サーバーに参加しているすべてのクライアント (接続されているものと切断されているものの両方) を追跡します。マルチユーザー サーバーのアクティブ セッションに現在接続しているクライアントが、テーブルの左下隅に緑の色見本で表示されます。クライアントがサーバーから切断されると、色見本はグレーに変わります。
クライアント テーブルには、各クライアントが送受信しているアクティブなネットワーク データの概要が表示されます。検索バーを使用して、特定のクライアントに関する情報を取得することもできます。クライアントの隅を右クリックし、コンテキスト メニューのオプションの 1 つを選択することで、特定のクライアントに関する詳細な接続情報を表示することもできます。
- Open Log (ログを開く): 新しいタブが開き、このクライアントに関連するログイベントを表示できます。
- Network Graph (ネットワーク グラフ): クライアントのネットワーク アクティビティのリアルタイム グラフを表示します。
- Outbound segment table (アウトバウンド セグメント テーブル): クライアントが送信したすべてのトランザクションの項目別レコード。
- Inbound segment table (インバウンド セグメント テーブル): クライアントが受信したすべてのトランザクションの項目別レコード。
これらのテーブルは、クライアントによって送受信されるアクティブ データに関する情報を提供します。
| 項目 | 説明 |
|---|---|
| 送信済み | クライアントから送信された合計データ。 |
| 受信済み | クライアントが受信した合計データ。 |
| RTT | 往復所要時間 (ミリ秒単位)。 |
| 転送中 | 現在転送中のデータで、受信者による確認を待っているもの。 |
| 喪失 | パケット損失に関する情報。 |
この情報は、高スループットの状況で許容可能なパケット損失を診断する場合に非常に役立ちます。接続が不安定な場合や、ネットワークの混雑やコンフィギュレーションが要因で送受信できない可能性がある場合、問題の特定に便利です。
Packages 列
サーバー ウィンドウの右側の [Packages (パッケージ)] 列には、クライアント間のパッケージ転送情報が表示されます。このビューを確認すると、現在行っている他のクライアントへの大規模なデータ転送に関する詳細な情報がわかります。たとえば、レベル スナップショット データや GPU ライトマス ベイクです。
パッケージが送信された時間、サイズ、およびリビジョン情報が表示されます。[State (ステート)] 列の緑色のチェックマークは、パッケージの転送完了を受信者が確認し、それがノードに存在することを示します。[Enhanced Logging (拡張ログ)] が有効になっている場合は、チェックマークをクリックして、パッケージの送信に使用された正確なメッセージを確認することもできます。
拡張ログ
[Clients (クライアント)] タブの下部にある [Server Log (サーバー ログ)] パネルで、拡張版のログを利用できます。[Server Log] パネルの中央にある [Enable logging (ログの有効化)] をクリックして、拡張ログを有効にします。
拡張ログには、マルチユーザー サーバーとそのクライアント間の現在のメッセージ転送の詳細なビューが表示されます。送信されたメッセージの種類を調べる際に使用します。デフォルトでは、すべてのメッセージ タイプが、送信時刻、送信者、送信先、およびクライアントによって確認されたかどうかとともに表示されます。
[Server Log] パネルの検索バーの左側では、さまざまなフィルタを使用できます。フィルタを表示するには、ドロップダウン キャレット アイコンをクリックします。
サーバーで拡張ログを有効にすると、無効にできなくなります。ログ情報は、サーバー ログ ファイルと同じディレクトリにある CSV ファイルに書き込まれます。セッションが長いと、非常に大きな CSV ファイルが生成される可能性があります。そのため、問題のトラブルシューティングを行う場合にのみ、この機能を有効化してください。
トランザクションのミュートと削除
マルチユーザー サーバー アプリケーションには、ユーザーが既存のセッション データを編集する機能があり、クライアントによって生成されたトランザクションをミュートまたは削除できます。この機能は、ユーザーが操作する際に問題を引き起こしている可能性のあるトランザクションの特定と排除に役立ちます。
セッションをアーカイブする
この機能を使用するには、編集するセッションのアーカイブ コピーを作成し、そのアーカイブ セッションをマルチユーザー サーバーで開く必要があります。[Sessions] タブでアクティブなセッションを 右クリック し、コンテキスト メニューで [Archive (アーカイブ)] を選択します。アーカイブされたセッションをダブルクリックして、その情報パネルを開きます。
アーカイブされたセッションが開いた後、任意のトランザクションを選択するとミュートまたは削除できます。
トランザクションを削除する
トランザクションを削除するには、アーカイブされたセッションでトランザクションを右クリックし、コンテキスト メニューから [Edit] > [Delete (削除)] を選択します。
トランザクションの削除は非可逆的な操作です。つまり、元に戻すことはできないことに注意してください。トランザクションをミュートする場合、同様の効果が得られる一方で後で解除することも可能です。後でトランザクションを回復する可能性がある場合は、削除ではなくミュートを使用してください。
トランザクションをミュートする
アーカイブされたセッションでトランザクションをミュートすると、クライアントがアーカイブ解除後にセッションに再参加しても、そのトランザクションは再生されません。ミュートされたトランザクションは、トランザクション履歴で淡色表示されます。トランザクションをミュートするには、トランザクション履歴でトランザクションを右クリックし、コンテキスト メニューから [Mute (ミュート)] を選択します。
このワークフローを実行すると、結果はトランザクションの削除と基本的に同じです。ただし、削除したトランザクションは復元できない一方で、ミュートしたトランザクションは後でいつでもそれを解除できます。トランザクションを一時的または永続的に無効にする際は、基本的にミュートを使用するようにしてください。
依存関係を分析する
トランザクションをミュートしようとすると、「トランザクションをミュートすると、ダウンストリームの依存関係が中断されるリスクがある」ということを記載した警告ダイアログが表示されます。
一部のトランザクションが以前のトランザクションに依存している可能性があることから、ミュートまたは削除を行う際は常にトランザクション履歴の依存関係を分析する必要があります。このプロセスでは、自動的に相互に関連するトランザクションの検索が行われます。依存関係を分析したとしても、確実にすべてがわかるとは限りません。場合によっては、トランザクションが別のトランザクションに依存しているかどうかが不明確なことがあります。そのような場合、そういったトランザクションを含めるか除外するかを選択できます。ほとんどの場合では、より安全な形を選んだ方が良いでしょう。


