見出し画像

NDI™で送信するRTAイベントタイマーをUnityで作る #01 初期設定&NDI

NDI™ でタイマーを vMix(OBSも可)に送り、画面取り込みをしなくていいタイマーを作ります。

Unity のバージョン:2021.3(LTS)
開発環境:Windows 11、Visual Studio 2022
対応OS:Windows 10 / 11(Mac 対応は気が向いたらやるかも)

導入

Unity Hub のインストール。Unity のバージョンは推奨リリースのLTS、2021.3 を選択。アカウントを作って無料の Personal バージョンを選択

Visual Studio 2022 のインストール。Visual Studio for Unity を忘れず入れておくこと

プロジェクトの作成

2D でプロジェクトを作成。その際に、2Dを選ぶ。URP を選ぶと背景が透過しないので注意

テンプレート、他のサイトで見るより少なくない?

プロジェクト名は JAWS Controllers に決定

klakNDI のインストール

Unity から NDI で簡単に画面を送信できるプラグイン。めっちゃ便利。感謝

ドキュメントの通りにインストールする。[編集]→[プロジェクト設定] から

日本語化してあるけどそこは気分で

[パッケージマネージャー] を選択して、マニュアル通りに入力

次は[ウィンドウ]→[パッケージマネージャー] から klakNDI をインストール

これを入れる

初期設定

もう一度プロジェクト設定から、[プレイヤー]→[Windows, Mac, Linux の設定]→[解像度と表示] から、解像度の全画面モードをウィンドウ化に。サイズは 1920 x 1080。バックグラウンドで実行、シングルインスタンスに限定にチェックを入れておく

Assetsに必要なフォルダーを作成。Pictures、Textures、Videos、Fonts等

プロジェクトウィンドウの Assets > Scenes でシーン名を SampleScene から TimersScene に変更

ヒエラルキーで Main Camera 右クリックし、カメラを複製。名称を NDI Camera に変更

またヒエラルキーで右クリックし、[UI]→[画像] を追加。名前を Background Image に変更。位置を (0, 0)、サイズを 1920 x 1080 に。
また Canvas も自動で作成されるので、名前を Background Canvas に変更。Canvas のレンダーモードを、ワールド空間に。イベントカメラを Main Cameraに変更。こちらも位置を (0, 0)、サイズを 1920 x 1080 に。

続けてもう一つ、[UI]→[キャンバスグループ] を追加。名前を TimersCanvas に変更。Canvas のレンダーモードを、ワールド空間に。イベントカメラを NDI Cameraに変更。これも位置を (0, 0)、サイズを 1920 x 1080 に

環境設定の外部ツールから、外部のスクリプトエディターに Visual Studio 2022 を設定するのも忘れないように

これ忘れがち

背景レイヤーを追加

User Layer 6 に Background を追加。Background Canvas と Background Image のレイヤーを Background に変更しておく

Pictures に画像を入れる

とりあえず背景と、テスト用のキャラクター画像を入れておく

Camera の設定

Main Camera、NDI Camera ともにサイズを 540 にしておく。あと、NDI Camera のカリングマスクを、Everything から Background だけ抜いておく

シーンで NDI Camera を見て、背景が消えてキャラクター画像だけ映ればOK

NDI Camera も Audio Listener がついていると怒られるので、チェックを外しておく

ここでゲーム画面のサイズを Full HD にしておく

サイズが変わると画面が乱れるので固定しよう

Render Texture の作成

NDI 送信用にテクスチャーを作成する。プロジェクトウィンドウの Assets > Textures で右クリックをし、[作成]→[レンダーテクスチャ] で作成。名前を NDI Render Texture に変更する。サイズを 1920 x 1080 にしておく

NDI Camera の Camera にあるターゲットテクスチャを、NDI Render Textureに設定

NDI Sender のアタッチ

ヒエラルキー上で右クリックし、空のオブジェクトを作成。NDI Senderに名前を変更

インスペクターで NDI Sender にコンポーネントを追加。NDI で検索し、Ndi Sender を追加

Keep Alpha にチェックを入れる

Capture Method をテクスチャに変更。NDI Name が出るので、JAWS Contollers に変更。ソーステクスチャを NDI Render Texture に設定し、NDI で画像が送られることを確認

最後にビルド設定して動作確認。JAWS Controllers のフォルダー内に Bin フォルダーを作成。さらにその下に Debug と Release を作成しておく。Windowsプラットフォームが選択されていることを確認し、ビルドして実行してみる

こんな感じ

実行した画面を確認

Unity、操作画面で見えているもの。背景が映っているが
NDI で送った先では、ちゃんと背景が抜けて透過されました

おつかれさまでした

表示周りが完成しました。あとはタイマーをそれぞれ作っていきます

いいなと思ったら応援しよう!