Unreal Engine用Genvidクライアント/サーバー

Genvid MILE SDK アーキテクチャの準拠には、以下に基づいて2つの class を使用する必要があります。

  • APlayerController

  • AGameState

これらの 2 つの class は、クライアント/サーバーアーキテクチャを統合するのに役立ちます。

使い方

クライアントが所有する PlayerController は、権限を持つサーバにリモートプロシージャコール(RPC)を送信します( GenvidEvents および GenvidCommands コンポーネントを使用します)。

サーバーは RPC を受信し、対応するカスタムイベントをトリガします。次に、GameState class (Multicast) から接続されたクライアントのすべてに RPC を送信します。

../../../_images/ue4_GenvidModule_ClientServerSmall.png

図 28 Genvid モジュール クライアント/サーバー

クライアント

権限を持たないオーナー (クライアント) が RPC をサーバーに送信できるようにするには、Unreal Engine 4&5 の PlayerController ベースの class を使用します。

これは、クライアントからサーバーに RPC を送信できる唯一の場所です。

Instantiation セクションで説明しているように、Genvid ストリーム/イベント/コマンドを PlayerController-class に追加する必要があります。

注釈

必ず Replicated チェックボックスにチェックをつけてクライアント/サーバー フローを有効化してください。Genvid イベントのパラメータ を参照。

サーバー

権限を持つオーナー (サーバー) が、接続されたすべてのクライアントに RPC を送信できるようにするには、Unreal Engine 4&5 の GameState ベースの class を使用します。

これは、サーバーからクライアントに RPC を送信できる場所です。

サーバーから RPC を送信するには

  1. GameState クラスで、 GenvidEventsGenvidCommands の各 GenvidEventGenvidCommand に対してカスタムイベントを生成してください。

    注釈

    カスタムイベントパラメータシグネチャに注意してください。GameState は、 GenvidEventsGenvidCommands で作成されたものと同じでなければなりません。。

  2. レプリケートモードを MulticastReliable に設定します。

    この設定で、サーバーは、接続されているすべてのクライアントに RPC を送信します。

    ../../../_images/ue4_GameState_CustomEventMulticast.png

    図 29 GameState - カスタムイベント (Multicast)

  3. この段階で、常にクライアントの GameState にいます。 これでコードを呼び出すことができます。

  4. ループを完了させるには、PlayerController に取り付けられている GenvidEvents または GenvidCommands コンポーネントから GameState カスタムイベントを呼び出します。

    ../../../_images/ue4_GenvidEvents_CallGameStateEvent.png

    図 30 PlayerController - Genvid サーバー (サーバーで実行)