Unreal Engine用Genvidブループリント クラス

ゲームの準備

エディタで直接 Blueprint class を作成し、Genvid MILE SDK の Unreal プロジェクトへの統合を簡略化することができます。

これらの 5 つの class は、ビデオ、オーディオ、ストリーム、イベント、およびコマンドを統合するのに役立ちます。

  • GenvidAudio

  • GenvidVideo

  • GenvidStreams

  • GenvidEvents

  • GenvidCommands

  • GenvidRequests

GenvidSessionManager class は ` GenvidSession` を管理しますが、GenvidSession class は、これら 5 つの class を管理します。

次の図は、これら Blueprint との関係をまとめたものです。詳細については、 Genvid モジュール設計 を参照してください。

../../../_images/ue4_GenvidModuleV2_Small.png

図 13 Blueprint の図

注釈

Genvid Module は将来的に複数のセッションをハンドルするように設計されています。今のところは、現行の Genvid MILE SDK の設計に準拠して、GenvidSessionManager インスタンスが含めることができるのは単一の GenvidSession のみです。

C++ の class にマッチに基づいて Blueprint 資産を作成します。

GenvidSessionManager

Blueprint アセットをすべて作成したら GenvidSessionManager で使用するセッション class を設定します。

../../../_images/BP_GenvidSessionManager_Details.png

図 14 GenvidSessionManager の Blueprint 詳細

注意

GenvidSessionManager のインスタンスは 1 つだけであることを確認してください。あなたの実装に最も適した方法を選択します。たとえば、UGameInstance から派生した class 内で宣言することができます。

GenvidSession

次に、GenvidSession Blueprint を選択し、セッションに使用する子 class を設定します。

../../../_images/BP_GenvidSession_Details.png

図 15 GenvidSessionManager の Blueprint 詳細

GenvidVideo

セッションを設定した後、Genvid ビデオ の Blueprint を開きます。 Details パネルでビデオの Stream NameVideo Mode 、および Video Source を設定します (選択したビデオモードが必要とされる場合)。

注釈

自動ビデオモードは描画されたウィンドウ スワップ チェーンをキャプチャして Genvid MILE SDK に送信します。

テクスチャ ビデオモードでは、UTexture class から派生した任意のオブジェクトを設定できます。

../../../_images/BP_GenvidVideo_Details.png

図 16 Genvid ビデオ Blueprint 詳細

GenvidAudio

Genvid Audio ブループリントを開きます。guilabel:Details パネルで、オーディオの Stream NameAudio FormatAudio Mode を設定します。

../../../_images/BP_GenvidAudio_Details.png

図 17 GenvidAudio Blueprint 詳細

注釈

Audio Format の設定で に送信されるサウンドの品質を選択します。

Genvid MILE SDK。

Audio Mode の設定で、使用するキャプチャの種類を選択します。今のところ、ゲーム機が生成するすべてのオーディオをキャプチャする WASAPI のみ利用可能です。

GenvidStreams

Genvid Streams ブループリントを開きます。必要なストリームを Event Graph パネルに作成します。

GenvidStream 構造体を使用してストリームを作成します。 All Possible Actions のコンテキストメニューに Make GenvidStream と入力して、 Event Graph に追加します。

../../../_images/BP_GenvidStreams_MakeGenvid_Menu.png

図 18 Make GenvidStream

NameFramerate 、および必要なストリームイベントを選択します。

注意

ストリーム (Match Started) と ストリーム (Match Ended) をトリガするには、 UGenvidSessionManager から MatchHasStartedMatchHasEnded 関数を明示的に呼び出す必要があります。

../../../_images/BP_GenvidStreams_MakeGenvidStream_PinOptions.png

図 19 GenvidStream のピンオプション

それぞれの選択するストリームイベントで、

  1. カスタムイベントを追加。

  2. カスタムイベントから呼び出したい関数にノードを追加。

  3. Streams 変数にストリームを追加。

../../../_images/Blueprint_Construct_GenvidStreams.gif

図 20 サンプル作成の例

注釈

Framerate プロパティはイベント Stream (Tick) でのみ使用できます。

1 回だけイベントを呼び出すには、 Framerate プロパティに 0 を設定します。

注意

GenvidStream のピンオプション にストリームイベントを選択して、カスタムイベントをリンクしないと、Blueprint はコンパイルされません。修正するには、ストリームイベントからチェックを外してください。

GenvidEvents

Genvid Events ブループリントを開きます。 Event Graph パネルに必要な任意のイベントを作成できます。

GenvidEvent 構造体を使用すると、イベントを作成できます。

All Actions for this Blueprint コンテキストメニューに Make GenvidEvent と入力して、 Event Graph に追加します。

../../../_images/BP_GenvidEvents_MakeGenvidEvent_Menu.png

図 21 GenvidEvent を作成

作成するイベントごとに:
  1. イベント Name を設定。

  2. Replicated のボックスをチェックして、クライアント/サーバー モードをアクティブ化します。

  3. カスタムイベントを Delegate ピンにリンク。

  4. カスタムイベントから呼び出したい関数にノードを追加。

  5. Events 変数にイベントを追加します。

../../../_images/Blueprint_Construct_GenvidEvents.gif

図 22 イベント作成の例

作成したイベントを Web サイトに実装することを忘れないでください。参考例は イベント生成 ページを参照してください。 Web サンプルweb.js ファイルでも、具体的に説明しています。

注釈

GenvidEvents の replicated オプションを使用すると、デリゲートをサーバから直接呼び出すことができます。これは、リモートプロシージャコールを使用する場合に便利です。

GenvidCommands

Genvid コマンドの Blueprint を開きます。 Event Graph パネルに必要なコマンドを作成できます。

コマンドを作成するには、 GenvidCommand 構造体を使用します。

All Actions for this Blueprint コンテキストメニューに Make GenvidCommand と入力して、 Event Graph に追加します。

../../../_images/BP_GenvidCommands_MakeGenvidCommand_Menu.png

図 23 GenvidCommand を作成

作成するコマンドごとに:

  1. コマンド Name を設定。

  2. Replicated のボックスをチェックして、クライアント/サーバー モードをアクティブ化します。

  3. カスタムイベントを Delegate ピンにリンク。

  4. カスタムイベントから呼び出したい関数にノードを追加。

  5. コマンドに Commands 変数を追加。

../../../_images/Blueprint_Construct_GenvidCommands.gif

図 24 コマンド作成の例

作成したイベントやコマンドを Web サイトに実装することを忘れないでください。参考例は sendCommands のページを参照してください。 Web サンプルweb-admin.js ファイルでも、具体的に説明しています。

注釈

GenvidCommands の replicated オプションを使用すると、デリゲートをサーバーから直接呼び出すことができます。これは、リモートプロシージャーコールを使用する場合に便利です。

GenvidRequests

Genvid Requestsの Blueprint を開きます。 Event Graph パネルに必要なコマンドを作成できます。

リクエストを作成するには、 GenvidRequest を使用します。

All Actions for this Blueprint コンテキストメニューに Make GenvidCommand と入力して、 Event Graph に追加します。

作成するリクエストごとに:

  1. リクエスト Topic を設定。

  2. カスタムリクエストを Delegate ピンにリンク。

  3. カスタムリクエストから呼び出したい関数にノードを追加。

  4. リクエストを Requests 変数に追加します。

  5. 返信を作成し、 SubmitRequestReply 関数を使用して送信します。

作成したリクエストは、忘れずにWebサイトに実装してください。sendRequestGetState のページで例を見ることができます。また、弊社の Web サンプル にある web-admin.js ファイルにも、より詳細な例が記載されています。

Genvid モジュールの開始

インスタンス化

最初に行うことは、 GenvidSessionManager をインスタンス化することです。

これを行う一法として、

  1. UGameInstance ベースの class 内で宣言。

  2. アプリケーションの起動時に、 Initialize() 関数を呼び出す。

  3. アプリケーションの停止時に、 Terminate() 関数を呼び出す。

../../../_images/ue4_GenvidSessionManager_Initialize_Terminate.png

図 25 GenvidSessionManager を初期化して終了する

注釈

この実装は、GenvidSessionManager をインスタンス化して終了する方法の一例です。お使いの実装に最善の方法を選択してください。

GenvidSessionManager を初期化後、APlayerController に基づいて新しいBlueprint class を追加します。

Add Component をクリックし、Genvid セッションで使用する class を選択します。

../../../_images/ue4_PlayerController_AddComponent.png

図 26 PlayerController - コンポーネントの追加

注釈

GameMode class Classes セクションに PlayerController class を設定していることを確認してください。

これで Genvid モジュールの準備ができました。

現在のコードの適応については、Unreal Engine 4 Genvid クライアント/サーバー セクションを参照してください。

class 図

../../../_images/ue4_GenvidModuleV2_Full.png

図 27 Genvid モジュール設計