Genvid ストリーム¶
GenvidStreams
プレハブオブジェクトは、配信セッションに使用するゲームからのデータストリーミングを定義します。1 つの GenvidStreams
オブジェクトに複数のデータストリームを持たせることができます。アプリケーションに複数のデータストリームが必要な場合、 Ids
のサイズを変更する必要があります。この配列の各要素には、変更可能ないくつかのプロパティが含まれています。
- Id
- データストリームの名前です。アプリケーションで使用される他のストリームに対して、一意の名前を使用してください。
- Framerate
「On Submit Stream」 機能の実行頻度です。デフォルト値は 0。
0は、ストリームデータがフレームごとに送信されることを意味します (ゲームのフレームレートに直接依存) 。
他のすべての値は、Min(value, Game Framerate) という式を使用します。
たとえば、30FPS で動作するゲームでは、
- 値10では、ストリームは、Min(10, 30) = 10 フレーム/秒で送信されます。
- 値100では、ストリームは、Min(100, 30) = 30 フレーム/秒で送信されます。
- On Submit Stream (String)
選択されたフレームレートに従って実行される機能です。受け取った String のパラメータが常にストリーム名になります。その後、呼び出されるメソッドで、最適なデータの送信方法を自由に選択することができます。
- SubmitAnnotation(オブジェクトの streamID, オブジェクトデータ)
- SubmitGameData(オブジェクトの streamID, オブジェクトデータ)
- SubmitNotification(オブジェクトの notificationID, オブジェクトデータ)
- SubmitAnnotationJSON (オブジェクトの streamID, オブジェクトデータ)
- SubmitGameDataJSON (オブジェクトの streamID, オブジェクトデータ)
- SubmitNotificationJSON(オブジェクトの notificationID, オブジェクトデータ)
注釈
データの送信方法に 3 つの戦略が存するため、ここでアノテーションに触れます。ただし、アノテーションはストリームで送信される ことはありません。そういう意味では、ゲームデータやアノテーションとは大きく異なります。
警告
後に 「JSON」 が付く submit 関数は、シリアライズ可能な JSON オブジェクトのみをサポートしています。
JSON で終わる各メソッドには次のものが必要です。
- データを受け取るストリーム名
- byte [] のシリアライズデータまたは文字列
JSON で終わらない各メソッドには次のものが必要です。
- データを受け取るストリーム名
- JSON でシリアライズ可能なデータ
たとえば、サンプルのデータ送信方法は次の通りです。
public void SubmitGameData(string streamId) { ProjView = m_sceneCamera[m_currentActiveCamera].projectionMatrix * m_sceneCamera[m_currentActiveCamera].worldToCameraMatrix; if (GenvidSessionManager.IsInitialized) { //Getting the cube information and send it into the game data stream var cubeDataArray = from c in m_Cubes select c.InfoData; CubesGameData gameData = new CubesGameData() { cubes = cubeDataArray.ToArray(), MatProjView = Mat4ToArray(ProjView), camera = m_cameraCounter, scene = m_changeSceneCounter, }; GenvidSessionManager.Instance.Session.Streams.SubmitGameData(streamId, gameData); } }