Unreal Engine 4 用 Genvid Blueprint

ゲームの準備

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

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

  • GenvidAudio
  • GenvidVideo
  • GenvidStreams
  • GenvidEvents
  • GenvidCommands

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

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

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

図 46 Blueprint の図

注釈

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

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

GenvidSessionManager

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

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

図 47 GenvidSessionManager の Blueprint 詳細

ご用心

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

GenvidSession

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

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

図 48 GenvidSessionManager の Blueprint 詳細

GenvidVideo

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

注釈

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

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

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

図 49 Genvid ビデオ Blueprint 詳細

GenvidAudio

Genvid オーディオ の Blueprint を開きます。 Details パネルで、オーディオの Stream Name Audio FormatAudio Mode を設定します。

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

図 50 GenvidAudio Blueprint 詳細

注釈

オーディオ形式 の設定で、Genvid MILE SDK に送信されるサウンドの品質を選択します。

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

GenvidStreams

Genvid ストリーム の Blueprint を開きます。 Event Graph パネルで必要とするストリームを作成してください。

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

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

図 51 Make GenvidStream

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

ご用心

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

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

図 52 GenvidStream のピンオプション

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

  1. カスタムイベントを追加。
  2. カスタムイベントから呼び出したい関数にノードを追加。
  3. ストリーム 変数にストリームを追加。
../../../_images/Blueprint_Construct_GenvidStreams.gif

図 53 サンプル作成の例

注釈

Framerate プロパティはイベント ストリーム (チェックマーク) でのみ使用できます。

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

ご用心

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

GenvidEvents

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

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

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

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

図 54 GenvidEvent を作成

作成するイベントごとに:
  1. イベント Name を設定。
  2. Replicated のボックスをチェックして、クライアント/サーバー モードをアクティブ化します。
  3. カスタムイベントを Delegate ピンにリンク。
  4. カスタムイベントから呼び出したい関数にノードを追加。
  5. イベント 変数にイベントを追加します。
../../../_images/Blueprint_Construct_GenvidEvents.gif

図 55 イベント作成の例

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

GenvidCommands

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

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

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

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

図 56 GenvidCommand を作成

作成するコマンドごとに:
  1. コマンド Name を設定。
  2. Replicated のボックスをチェックして、クライアント/サーバー モードをアクティブ化します。
  3. カスタムイベントを Delegate ピンにリンク。
  4. カスタムイベントから呼び出したい関数にノードを追加。
  5. コマンドに コマンド 変数を追加。
../../../_images/Blueprint_Construct_GenvidCommands.gif

図 57 コマンド作成の例

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

注釈

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

Genvid モジュールの開始

インスタンス化

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

これを行う一法として、

  1. UGameInstance ベースの class 内で宣言。
  2. アプリケーションの起動時に、Initialize() 関数を呼び出す。
  3. アプリケーションが停止したら、Terminate() 関数を呼び出す。
../../../_images/ue4_GenvidSessionManager_Initialize_Terminate.png

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

注釈

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

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

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

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

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

注釈

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

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

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

class 図

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

図 60 Genvid モジュール設計