【Shoost Tips】Spoutを使って、UnityからShoostに3Dキャラクターを送信する方法 (Pixiv Fanbox)
Content
皆さん、こんにちは。
今回は、UnityからSpoutを使って、3Dキャラクターや舞台をShoostに簡単に送信する方法をご紹介します。ある程度のUnity操作を知っている方向けの内容になります。
Step 1: Spoutの導入
まずはじめに、UnityでのSpoutを使えるようにするため、Keijiro神の提供しているGitHubから"KlakSpout"をインストールします。インストール手順も、GitHubに書いてあります。
GitHub→ https://github.com/keijiro/KlakSpout
Scoped Registriesの場所は、Project Settings > Package Manager > Scoped Registriesにあります。
Step 2: UnityでSpoutの設定
Spoutのインストールが完了したら、Unity上でゲームオブジェクトを新規作成し、「Spout Sender」をコンポーネントとして追加します。
Spout Senderには、3つのキャプチャ方法が用意されています。今回は「Texture」を選択します。3種類の違いを知りたい方は、GitHubのページに説明がありますので、そちらを参照ください。
Step 3: RenderTextureの設定
Spout SenderのSource Textureには、「Render Texture」を使用します。
キャラクターと背景を別々の映像としてShoostで使用したいので、キャラクターと背景で別々のRender Textureを用意します。
簡単なやり方としては、キャラクターだけを映すカメラ、背景だけを映すカメラ、の2つを用意して、それぞれ別々のRender Textureに設定します。
Culling Maskを使用して、キャラクターと背景のカメラで、どのオブジェクトを映すか選択します。
Target Textureは、ぞれぞれのRenderTextureになるようにします。
Spoutで送信される画像の解像度は、RenderTextureで設定した解像度になります。
他にも、キャラクターなど、透過背景で使いたいカメラは、Clear Flags設定を Solid Colorにして、Background Colorのα値を0にしておく必要があります。
この設定をしないと、キャラクターが透過背景にならない。
Step 4: Spout Senderの詳細設定
キャラクターと背景で、別々に送信をするので、Spout Senderのコンポーネントも2つ必要になります。Step 1 をもう一度繰り返して、Spout Senderをもう一つ用意します。
2つ用意が出来たら、それぞれの"Source Texture"に、Render Textureを登録します。
重要な点として、受信側での混乱を避けるため、"Spout Name"をそれぞれ異なる名前に設定すること。例えば、キャラクターは「Character」、背景は「Background」としておくと分かりやすいでしょう。
透過背景を使う場合は、Keep Alphaにチェックを入れます。今回はキャラクターのSpoutにはチェックが入ってます。
一通りの設定が終わると、Hierarchyはこのような感じになると思います。
Step 5: Shoostでの設定
最後に、Shoostの方で「Spout Capture」を有効にし、キャラクターと背景のレイヤーで、それぞれの画面をキャプチャすればOK!
以上がUnityからShoostへ、3Dキャラクターや背景を簡単に送信する方法でした。便利なので、ぜひ試してみてください!