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

コードの適応

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

  • APlayerController
  • AGameState

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

使い方

クライアント所有の PlayerController は、(GenvidEvents と GenvidCommands コンポーネントを介して) 権限を持つサーバーにリモートプロシージャコール (RPC) を送信します。

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

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

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

クライアント

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

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

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

注釈

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

サーバー

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

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

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

  1. GameState class で、GenvidEvents および GenvidCommands に GenvidEvent と GenvidCommand それぞれのカスタムイベントを作成します。

    注釈

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

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

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

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

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

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

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

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

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