特集

OBSの神プラグインにまた新機能。配信やWeb会議の画面を拡張現実っぽく見せることが可能に

StreamFXのサイト

 無償配信ソフト「OBS Studio」(以下OBS)は、オープンソースで開発されており、有志などによって様々な拡張プラグインが提供されている。そんなプラグインの1つが今回紹介する「StreamFX」だ。

 StreamFXは登場してから数年が経つが、今日までに様々な改良や機能追加が施されている。基本的には映像を加工するフィルター群で、3D加工、ぼかし、カラーグレーディング、ノイズ削減など様々な機能を提供する。どれも痒いところに手が届く機能を実現しており、神プラグインと言っても過言ではない。

 そんなStreamFXだが、約1カ月前に公開されたバージョン0.11.0において「バーチャルグリーンスクリーン」機能が追加された。この機能をうまく使うと、下記の映像のように、まるで拡張現実(AR)のような映像合成ができ、非常に目を引く配信が可能となる。

StreamFXを使って、ARっぽくゲーム画面をリアルタイムで合成した動画

 このバーチャルグリーンスクリーン機能は、実はNVIDIAから「NVIDIA Broadcast」として提供されているWebカメラ向け機能に含まれているものだ。そして、NVIDIAは、NVIDIA Broadcastとしてノイズ削減などの音声制御と、背景削除などの映像制御機能をひとまとめにして提供しているが、音声、映像、ARの各処理について個別にSDKとしても配布している。

 StreamFXのバーチャルグリーンスクリーン機能は、このビデオ エフェクトSDKを利用することで、背景削除という仮想的なグリーンスクリーン機能を実現しているのだ。つまり、逆に言うと、この機能を使うには、GeForce RTX 2060、Quadro RTX 3000、TITAN RTX以上のGPUが必要となる。

 と言うことで、今回の検証にあたっては、Core i7-11800H、メモリ16GB、GeForce RTX 3070、SSD 512GB、フルHD対応15.6型液晶ディスプレイを搭載したマウスコンピューターの「G-Tune H5」を利用させていただいた。

検証に利用したマウスコンピューターの「G-Tune H5」。StreamFXを利用するのに必要なGeForce RTXを搭載するゲーミングノートだ

StreamFXのインストール

 では、インストールから順を追って説明しよう。2022年2月時点での最新版であるStreamFX 0.11.0のページに行き、streamfx-windows-2019-0.11.0.0-g31d56703.exeをダウンロードして、インストールする。

 また、利用しているGPUに応じたビデオ エフェクトSDKをNVIDIAのサイトからダウンロードし、これもインストールする。

 以上で準備は完了だ。

NVIDIAはNVIDIA Broadcastに実装した機能を外部アプリで利用するためのSDKを公開している

StreamFXでのバーチャルグリーンスクリーンの設定方法

 続いて、実際の設定を行なっていく。ここでは、配信者の背後にスクリーンが浮いて表示されているような映像の作り方を解説する。

 まずは、フルスクリーンでカメラ映像をソースとしてシーンに追加する。次に、ソースの「+」をクリックして「ソースミラー」を選択する。実はこのソースミラーもStreamFXが提供する機能の1つで、任意のソースを選ぶと、そのソースの複製が生成される。

 OBSでは、画像や文字と違って、映像ソースについては、複製が作れず、参照コピーしか作れない。それに対してソースミラーを使うと、複製ができるので、例えば、オリジナルの映像を出しつつ、それに対してフィルターをかけた映像も別途表示するといったことができるようになる。

まずは元のカメラ映像をソースとして追加
ソースミラーをソースに追加
ソースとして元のカメラ映像を指定する

 ソースミラーで作ったカメラ映像の複製は、ソースの下にある上下の矢印で操作して、元のカメラ映像より上のレイヤーに表示するよう設定する。

 次に、その複製ソースを右クリックしてフィルターを選び、エフェクトフィルターの「+」を押して、「バーチャルグリーンスクリーン」を選ぶ。モードは、輪郭をより自然に切り取る「品質」と、フレームレートや低負荷を優先する「パフォーマンス」がある。とりあえず品質を選んでいいだろう。プロバイダーは「自動」のままでNVIDIA Greenscreenが使われる。

 細かな調整はできないのだが、バーチャルグリーンスクリーンのプレビューウィンドウで分かる通り、グリーンスクリーンがなくとも、かなりいい精度で背景を削除してくれる。

ソースミラーに対して、バーチャルグリーンスクリーンのエフェクトを適用する
これで背景が削除され人だけが映し出される
元の映像の上に、バーチャルグリーンスクリーンで切り抜いた人物をレイヤー表示しているが、これだと普通の1枚絵にしか見えない

 そして、ゲーム画面をソース追加し、カメラレイヤーとバーチャルグリーンスクリーンレイヤーの間に置く。これで、ゲーム画面は壁よりも前だが、自分より後に表示される。

合成したいゲーム画面もソースに追加

 ただ、このままだとゲーム画面が空間に浮いている感じがしないので、ゲーム画面のフィルターを開き「+」を押して、「3D座標変換」を追加する。実はこの3D座標変換もStreamFXの機能の1つなのだ。

 3D座標変換を使うと、ソースの映像や画像に対して、サイズや、位置、そして角度の変更ができるようになる。とりあえず、カメラのモードを「透視投影」にして、「回転」のパラメータをいじって、ちょっと斜めにパースが付いたようにすると、ゲーム画面が浮いた感じに見えるようになる。ただし、回転させただけだと、縦横比が変に見えてしまうので、スケールのXかYを調整して、縦横比をいい具合に調整しよう。

ゲーム画面に対して3D座標変換のエフェクトを適用
カメラモードは透視投影を選択
適当にピッチとヨー、XとYサイズのスケールを調整
ゲーム画面が最前面だとこんな感じだが
バーチャルグリーンスクリーンの1つ下に移動させると、このようにゲーム画面が自分の背後に浮いたように表示される

 前述の通り、バーチャルグリーンスクリーンはNVIDIA Broadcastと同じ技術を採用している。だが、NVIDIA Broadcastでは、効果を適用した1つの映像しか利用できないのに対し、バーチャルグリーンスクリーンを使うと、効果適用後の映像とオリジナルとを重ね合わせるといったことが可能となり、それによってこのような目を引く合成も可能になるのだ。

 人の検出精度はかなり高く、遅延もほとんどない(開発者曰く2フレーム遅延しているそうだが、肉眼では分からない)が、大きく素早く動いたり、あるいは顔の角度を変えたりすると、境目が目立つこともある。とは言え、余興的な特殊効果としては十分な品質だと言えるだろう。

使い方は無限。Web会議に応用も可

 ひとまず今回はゲーム画面のAR的な合成を例に説明したが、ゲーム配信以外でも、ゲーム画面の代わりにPowerPointなどのプレゼンテーション画面を出し、グラフなどを指さしながら説明するのもありだ。OBSは仮想カメラ機能を使うと、シーンを仮想Webカメラとして出力できるので、Web会議でも活用できる。

 また、カメラモードは透視投影でのやり方を説明したが、「コーナーピン」にして、映像の4隅の位置を変更することもできる。これを使うと、例えば、TVやディスプレイの画像を表示させておいて、その表示領域にぴったり合うように4隅を調整すると、空中に浮いたディスプレイに映像が映し出された状況を作り出せる。

 あるいは全く違う使い方として、映像の人物にだけエフェクトを適用できるようにもなる。例えば、バーチャルグリーンスクリーンを適用したソースに、別のフィルターでモノクロにしたり色味を変えてみたり、あるいはぼかしをかけたり、逆に人物はそのままに背後にだけなにかフィルターを適用することもできる。

ここでは、StreamFXで人物だけにカラーエフェクトをかけつつ、画面を拡大し、サウンドを鳴らしている

 人と違う配信やプレゼンをやってみたい人は試してみてほしい。