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 モジュール設計 を参照してください。
注釈
Genvid Module は将来的に複数のセッションをハンドルするように設計されています。今のところは、現行の Genvid MILE SDK の設計に準拠して、GenvidSessionManager
インスタンスが含めることができるのは単一の GenvidSession
のみです。
C++ の class にマッチに基づいて Blueprint 資産を作成します。
GenvidSessionManager
Blueprint アセットをすべて作成したら GenvidSessionManager
で使用するセッション class を設定します。
注意
GenvidSessionManager
のインスタンスは 1 つだけであることを確認してください。あなたの実装に最も適した方法を選択します。たとえば、UGameInstance から派生した class 内で宣言することができます。
GenvidSession
次に、GenvidSession
Blueprint を選択し、セッションに使用する子 class を設定します。
GenvidVideo
セッションを設定した後、Genvid ビデオ の Blueprint を開きます。 Details パネルでビデオの Stream Name 、 Video Mode 、および Video Source を設定します (選択したビデオモードが必要とされる場合)。
注釈
自動ビデオモードは描画されたウィンドウ スワップ チェーンをキャプチャして Genvid MILE SDK に送信します。
テクスチャ ビデオモードでは、UTexture
class から派生した任意のオブジェクトを設定できます。
GenvidAudio
Genvid Audio
ブループリントを開きます。guilabel:Details パネルで、オーディオの Stream Name、 Audio Format、 Audio Mode を設定します。
注釈
Audio Format
の設定で に送信されるサウンドの品質を選択します。Genvid MILE SDK。
Audio Mode
の設定で、使用するキャプチャの種類を選択します。今のところ、ゲーム機が生成するすべてのオーディオをキャプチャする WASAPI
のみ利用可能です。
GenvidStreams
Genvid Streams
ブループリントを開きます。必要なストリームを Event Graph パネルに作成します。
GenvidStream
構造体を使用してストリームを作成します。 All Possible Actions のコンテキストメニューに Make GenvidStream と入力して、 Event Graph に追加します。
Name 、 Framerate 、および必要なストリームイベントを選択します。
注意
ストリーム (Match Started) と ストリーム (Match Ended) をトリガするには、 UGenvidSessionManager
から MatchHasStarted
と MatchHasEnded
関数を明示的に呼び出す必要があります。
それぞれの選択するストリームイベントで、
カスタムイベントを追加。
カスタムイベントから呼び出したい関数にノードを追加。
Streams
変数にストリームを追加。
注釈
Framerate
プロパティはイベント Stream (Tick)
でのみ使用できます。
1 回だけイベントを呼び出すには、 Framerate
プロパティに 0 を設定します。
注意
GenvidStream のピンオプション にストリームイベントを選択して、カスタムイベントをリンクしないと、Blueprint はコンパイルされません。修正するには、ストリームイベントからチェックを外してください。
GenvidEvents
Genvid Events
ブループリントを開きます。 Event Graph パネルに必要な任意のイベントを作成できます。
GenvidEvent
構造体を使用すると、イベントを作成できます。
All Actions for this Blueprint コンテキストメニューに Make GenvidEvent と入力して、 Event Graph に追加します。
- 作成するイベントごとに:
イベント Name を設定。
Replicated のボックスをチェックして、クライアント/サーバー モードをアクティブ化します。
カスタムイベントを Delegate ピンにリンク。
カスタムイベントから呼び出したい関数にノードを追加。
Events
変数にイベントを追加します。
作成したイベントを Web サイトに実装することを忘れないでください。参考例は イベント生成 ページを参照してください。 Web サンプル の web.js ファイルでも、具体的に説明しています。
注釈
GenvidEvents の replicated オプションを使用すると、デリゲートをサーバから直接呼び出すことができます。これは、リモートプロシージャコールを使用する場合に便利です。
GenvidCommands
Genvid コマンドの Blueprint を開きます。 Event Graph パネルに必要なコマンドを作成できます。
コマンドを作成するには、 GenvidCommand
構造体を使用します。
All Actions for this Blueprint コンテキストメニューに Make GenvidCommand と入力して、 Event Graph に追加します。
作成するコマンドごとに:
コマンド Name を設定。
Replicated のボックスをチェックして、クライアント/サーバー モードをアクティブ化します。
カスタムイベントを Delegate ピンにリンク。
カスタムイベントから呼び出したい関数にノードを追加。
コマンドに
Commands
変数を追加。
作成したイベントやコマンドを Web サイトに実装することを忘れないでください。参考例は sendCommands のページを参照してください。 Web サンプル の web-admin.js ファイルでも、具体的に説明しています。
注釈
GenvidCommands の replicated オプションを使用すると、デリゲートをサーバーから直接呼び出すことができます。これは、リモートプロシージャーコールを使用する場合に便利です。
GenvidRequests
Genvid Requestsの Blueprint を開きます。 Event Graph パネルに必要なコマンドを作成できます。
リクエストを作成するには、 GenvidRequest
を使用します。
All Actions for this Blueprint コンテキストメニューに Make GenvidCommand と入力して、 Event Graph に追加します。
作成するリクエストごとに:
リクエスト Topic を設定。
カスタムリクエストを Delegate ピンにリンク。
カスタムリクエストから呼び出したい関数にノードを追加。
リクエストを
Requests
変数に追加します。返信を作成し、
SubmitRequestReply
関数を使用して送信します。
作成したリクエストは、忘れずにWebサイトに実装してください。sendRequestGetState のページで例を見ることができます。また、弊社の Web サンプル にある web-admin.js ファイルにも、より詳細な例が記載されています。
Genvid モジュールの開始
インスタンス化
最初に行うことは、 GenvidSessionManager
をインスタンス化することです。
これを行う一法として、
UGameInstance
ベースの class 内で宣言。アプリケーションの起動時に、
Initialize()
関数を呼び出す。アプリケーションの停止時に、
Terminate()
関数を呼び出す。
注釈
この実装は、GenvidSessionManager
をインスタンス化して終了する方法の一例です。お使いの実装に最善の方法を選択してください。
GenvidSessionManager
を初期化後、APlayerController
に基づいて新しいBlueprint class を追加します。
Add Component をクリックし、Genvid セッションで使用する class を選択します。
注釈
GameMode
class Classes セクションに PlayerController
class を設定していることを確認してください。
これで Genvid モジュールの準備ができました。
現在のコードの適応については、Unreal Engine 4 Genvid クライアント/サーバー セクションを参照してください。