Genvid ストリーム

GenvidStreams プレハブオブジェクトは、配信セッションに使用するゲームからのデータストリーミングを定義します。1 つの GenvidStreams オブジェクトに複数のデータストリームを持たせることができます。アプリケーションに複数のデータストリームが必要な場合、 Ids のサイズを変更する必要があります。この配列の各要素には、変更可能ないくつかのプロパティが含まれています。

Genvid Streams inspector view
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 (オブジェクトの streamID, オブジェクトデータ)

各メソッドには次のものが必要です:

  • データを受け取るストリーム名と
  • クラスにフォーマットされるデータ。

たとえば、サンプルのデータ送信方法は次の通りです。

    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);
        }
    }