0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Genvid 1.4x以降のUnityプラグイン更新備忘録

Posted at

Genvidとは

Genvidは、インタラクティブなライブ配信を実現するSDKです。

Genvid Logo

Genvidは、ゲームの技術を用いてサーバー上でリアルタイム描画した映像を、TwitchやFacebook Gaming経由で動画ストリーミングします。動画視聴サイトから送信された視聴者のボタン入力などをサーバーで上集計し、配信中のコンテンツの展開の変化に使用します。

大勢の動画視聴者が1つのコンテンツに能動的に参加し、物語を作っていく「マッシブリー・インタラクティブ・ライブ・イベント(Massively Interactive Live Events)」を実現します。

いわゆるクラウドゲーミングは1サーバー1プレイヤーですが、Genvidは1サーバーで生成した映像をブロードキャストし、1サーバー対数千人~数万人の体制になります。

GenvidのUnityプラグインが大幅更新

Genvid SDKに同梱されるUnityプラグインは、Genvidシステムの初期化と動画のTwitchサーバー送信、、Genvidサーバー経由でのゲームと動画視聴者間のデータ通信を執り行うプラグインです。

Unityゲーム内のデータをクラウドサーバーへ送信したり、クラウドサーバーから送られてきた視聴者操作データを受信してC#のメソッドをコールします。
Qiitaでは何回かGenvidについて紹介をしましたが、バージョン1.4xあたりから、Unityプラグインの構造が変わったため、備忘録として使い方を紹介します。

プレハブ構造の変化

1.3xより前のGenvid SDK for Unityプラグインでは、複数のプレハブを組み合わせてGenvidの機能を呼び出す形になっていました。まず「Genvid Session Manager」がプロジェクト全体を管理し、その下にぶら下がる「Genvid Session」がビデオ配信やGenvidサーバーとの通信などの一式を保持していました。各設定は「Audio」「Video」「Events」「Streams」「Commands」のプレハブが独立して存在し、「Genvid Session Manager」に紐づける形でした。

旧GenvidSDKforUnity

実行中に「GenvidSession」を切り替える形で、オンタイムでの設定変更を実施していた形です。
新しいプラグインではプレハブの種類がぐっと減り、機能が集約化されています。

パラメーターをScriptable Objectで保持

以前のGenvid Pluginでは、ビデオのフレームレート設定やキャプチャ設定について、スクリプトで設定を行うか、シーンに配置したプレハブのインスペクタで設定を行う形でした。

新しいプラグインでは、これらの設定項目をScriptable Objectとして保持し、任意に差し替えが可能になっています。

app - SampleScene - Windows, Mac, Linux - Unity 203.png

これを「Genvid Session」のプレハブと、「EventsListener」などのUnity C#コードとの繋ぎ込みプレハブに設定します。

Genvid Pluginプレハブ

以前のGenvid Session, Genvid Session Managerの機能を集約したプレハブです。
後述するEvents, Commands,Streamsプレハブの参照を直接持つのではなく、データIDなどのパラメーターを保持したScriptableObjectの参照を持ちます。

app - SampleScene - Windows, Mac, Linux - Unity 204.png

Events Listenerプレハブ

前バージョンの「Events」プレハブに相当します。特定のデータIDがGenvidサーバーから送られてきたときに、コールするメソッドの参照をアタッチします。

以前は直接Event IDをstringで記入していましたが、ScriptableObjectで設定する方式に変わっています。

app - SampleScene - Windows, Mac, Linux - Unity 20.png

Streams Listenerプレハブ

以前の「Streams」と同様です。ゲームからGenvidサーバーへ配信したいデータを設定します。

Commands Listenerプレハブ

こちらも、以前の「Commands」と同様で、Genvidサーバーから送られてきた制御用データを受け取ります。

今回のアップデートで設定の差し替えが便利に

以前はプレハブごとロードしなおしていたのが、事前に設定したScriptableObjectの差し替えで設定変更が可能になりました。

少し概念は変わりましたが、C#側のコードに影響はないため、1.3x以前からの以降はコードを変えることなく実施可能です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?