導入
このドキュメントでは、AximmetryからUnity Real-Time Development Platformへキーイングされた動画を送信する方法について説明します。これには、Aximmetryで動画をキーイングし、AximmetryのNDI出力とUnityのNDI入力を利用します。
AximmetryはネイティブのNDIサポートを備えていますが、Unityにはありません。そのため、このチュートリアルでは、Unity内でNDI信号を処理するためにKlankNDIパッケージを使用します。
注:NDI I/O ポートは、Aximmetry の特定のライセンスタイプに限定されています、またはレンタル経由で利用可能です。詳細については、当社の Products ページ をご確認ください。
Aximmetry の設定
Unity に移動する前に、Aximmetry Composer を起動する必要があります。
Startup Configuration 画面で、Device Mapper / Manage Devices を選択します。新しい NDI 出力を追加します。これを「AximmetryStream」と名付けます。
次に、ビデオ出力で「AximmetryStream」をNDI接続として見つけてください。これをインデックス #2に設定し、同期をメイン出力に設定します。
モードをNDI標準でサポートされている希望の解像度に設定し、フォーマットがRGBAであることを確認してください。
クロマキーイング用のシンプルなフローを作成します。
キーヤーを「Using the Advanced B Keyer」に記載に従って設定します。ビデオ入力モジュールを使用してカメラデバイスの動画を取得します。モジュール内のデバイスとモードの値を設定することを忘れないでください。
NOTE: テスト目的であれば、インデックス#2に動画出力があることを確認すれば、任意の動画やコンポジットを使用できます。
UnityプロジェクトへのKlankNDIのインストール
KlankNDIはKeijiro Takahashiによって作成されたパッケージで、Unityのパッケージマネージャー経由で内部的にダウンロード可能です。ただし、これは「スコープドレジストリ」を使用する外部パッケージのため、Unityのパッケージマネージャーマニフェストファイルを編集する追加の手順が必要です。詳細なインストール手順はKeijiroのGitHubで確認できます。https://github.com/keijiro/KlakNDI
Unityプロジェクトの設定
KlankNDIをインストールし、Unityプロジェクトに追加したら、Assetsフォルダーに移動し、「Render Texture」を作成します。(例では単にNDIと名付けています。)
フルHD動画を送信する場合、このテクスチャのSizeを2048x2048に設定することをおすすめします。Unityは、正方形ではないテクスチャを2^ (256..1024..2048)の正方形テクスチャにリサイズします。これにより、システムがテクスチャを1回だけリサイズするため、出力品質がやや向上します。
マテリアルを作成します。名前を「Aximmetry」とします。
Unlit/Transparent CutoutまたはUnlit/Transparentを選択します。
以前に作成したRender Textureをテクスチャとして選択します。
シーンにPlaneを作成します。
マテリアルを適用します。(マテリアルをPlaneにドラッグアンドドロップ)
空のGameObjectを作成します。(ショートカット:CTRL + SHIFT + N)
コンポーネント「NDI Receiver」を追加します。
Aximmetryで作成したNDIストリームを選択します。
新しい「NDI」Render TextureをTarget Textureとして適用します。
プレーンにAximmetry NDIの出力が表示されるはずです。
現在、Chroma Keyed Aximmetryプロジェクトを起動すると、キーイングされた出力が得られます。
このプレーンをシーン内の任意の場所に配置すると、これがビルボードになります。
この方法はHDRPシェーダーでも使用可能です。HDRP、URP、またはSRPの設定については、Unityのドキュメントを参照してください。