Twitch Studio Betaのアップデート
2024年5月30日をもってTwitch Studioのサポートが終了します。こちらでTwitchがおすすめする配信ソフトウェアのリストをチェックして、あなたにぴったりのものを見つけましょう。
Twitch Studio Betaは無料でご利用いただける配信ソフトウェアです。このソフトを使えば配信のセットアップや管理が簡単にできるので、駆け出しストリーマーの皆様でも簡単にTwitchで配信を始められます。
先日、4つの機能がTwitch Studioに追加されました。ワンクリックでのグリーンスクリーン設定、Chromeブラウザのウィンドウキャプチャー、Vulkanを使用したゲームのキャプチャー、そして複数のオーディオソースへの対応です。この機能の開発の舞台裏をのぞいてみたくはありませんか?この記事の続きをご覧ください!
グリーンスクリーン(クロマキー)のワンクリック設定
グリーンスクリーンとして知られているクロマキーは、ウェブカメラの映像から背景を取り除くために使われるフィルターです。お気に入りのストリーマーのチャンネルで見たことがある方も多いでしょう。グリーンスクリーンを使えば配信で楽しく個性を発揮できます。配信の背景をダイナミックに変化させて、コンテンツを洗練してその魅力を高めることができるのです。しかし、ほとんどの場合、グリーンスクリーンは手動で設定する必要があり、時間がかかるだけでなく、様々な設定を何度も調整しなおさなければきちんと機能しないこともあります。そこで、グリーンスクリーンの自動検出機能をご用意いたしました。これを使えばクロマキーを自動で設定し、ワンクリックでグリーンスクリーンを検出できます。
ところで、グリーンスクリーンはどのような仕組みになっているのでしょうか?グリーンスクリーンでは背景を単一の色にすることで、その色の全てのピクセルをフィルターで検出し、透明化します。多くの場合は緑色のシートか、専用の幕を利用しますが、前景に登場しない単色であれば、どんな色でも利用できます。しかし、単色の背景は人間の目には同じ色に見えても、コンピューターにとってはそうではありません。影があったり、照明の当たり具合が不均一な部分があると、コンピューターはそれを異なる色とみなしてしまいます。この問題に対処するために、フィルターが各ピクセルの輝度や明るさを無視するようにして、代わりにクロミナンスや色のみを確認するようにします。
ただし、輝度を無視するだけでは十分とは限りません。照明の違いによってピクセルの基本的なクロミナンスも変化します。これに対処するために、フィルターには「類似性」の設定が用意されています。この設定はピクセルのクロミナンスが対象となる背景色にどれくらい近いときにその色を取り除くかを決定します。
これは背景に照明を均一に当てて、設定を適切に調整できれば上手く機能しますが、この設定の調整は時にとてもわずらわしいものとなります。類似性の値が大き過ぎると前景の色が背景の色として検出されてしまい、この値が小さすぎると背景の一部が透明化されずに残ってしまうのです。適切な設定が難しいのは、2つのパラメーター(対象の色と類似性の値)を同時に調整する必要があるからです。そこで活躍するのがTwitch Studioのグリーンスクリーンのワンクリック設定機能です。
グリーンスクリーンのワンクリック設定機能を使えば、クリックするだけでグリーンスクリーンの設定を最適化できます。まず最初は現在の画像における、グリーンスクリーンを使用する一般的なセットアップにおいて背景とされる場所のサンプリングから始めます。
そしてそのピクセルからクロミナンス値を取得し、UV色空間に描画します。この描画内に点のクラスターが検出されたら、そのクラスターの中心を特定します。これを対象色として使用し、クラスターの範囲を測定して類似性の値として使用します。
これだけで細かい設定にわずらわされずに最適な設定を使用できます!
Chromeのキャプチャー
これまでの配信ソフトウェアのウィンドウキャプチャーは、BitBltと呼ばれるWindows APIの機能を利用して、対象のウィンドウの画像をキャプチャーしてきました。多くのアプリケーションでこの方法は効果的かつ上手く機能しますが、より現代的なレンダリング手法を利用する一部のアプリケーションでは、上手くいかないことがありました。この問題はChromeやChromiumを利用するその他アプリケーション(Discord、Slack、Spotify、VS Codeなど)をキャプチャーする際に顕著となります。このため、Chromeのウィンドウをキャプチャーする際に配信アプリが不安定になったり、エラーが発生しやすくなるのです。この問題が発生すると、多くの場合、ストリーマーになんの通知も、エラーメッセージも表示されずに画面が真っ暗になります。
ディスプレイをクロップしてキャプチャーしたり、(可能なら)アプリをソフトウェアレンダリングモードに切り替えることでこの問題を回避できます。ですが残念ながら、どちらの回避方法も便利とはいえません。ディスプレイをクロップしてキャプチャーすると、ウィンドウが動いたときに配信に映したくないものが映ってしまう恐れがあります。ソフトウェアレンダリングモードに切り替えると、配信していないときでも、そのアプリのパフォーマンスに影響が出る可能性があります。
ですのでこの状況で役立つ手段をご用意いたしました。PrintWindowも他のウィンドウのコンテンツのキャプチャーに使われるAPIですが、デフォルト状態では何も表示されなかったり、キャプチャするウィンドウの出力が不安定になったりします。しかし、この機能は「PW_RENDERFULLCONTENT」という隠しフラッグを受け付け、これが対象のウィンドウの完全な再描画を強制することで、上記の問題を解決できることが分かりました。
この新たなキャプチャー方法では、この出力を行うために対象のウィンドウに追加のレンダリングを強制します。万能の解決策とはなりませんが、それでも画面が真っ黒になってしまうよりはいいでしょう。そこでパフォーマンスの負荷を最小限に抑えるために、デフォルト設定では、これまでのBitBltを使った手法ではキャプチャーに問題が発生するアプリだけで、このキャプチャーモードが有効化されます。これが自動で有効化されない他のアプリに関しては、ユーザーの皆様が「互換キャプチャー」モードを有効化できるようになっています。これでパフォーマンスを最適化しつつ、ほぼすべてのケースでウィンドウキャプチャーができるようになりました。
Vulkanゲームキャプチャー
ゲームを取り巻く環境は常に進化し続けています。ですのでクリエイターの皆様があらゆる最新のゲームを配信できるように、Twitch Studioチームは最新テクノロジーへの対応に優先して取り組んでいます。これにより、VulkanグラフィックAPIで動作するゲームをTwitch Studioがキャプチャーできるようになりました。これは興味深いプロジェクトとなりました。なぜなら、他のレンダリングAPIと違って、Vulkanは最初からゲームをキャプチャーしてオーバーレイをレンダリングする方法を提供していたからです。通常、ゲームのキャプチャーは実行中のゲームにコードを挿入し、そのコードがレンダリングAPIに繋がってゲームプレイの各フレームを取得し、そのコピーを作成する形で行われます。Vulkanはレイヤーシステムを提供しており、(配信アプリなどの)サードパーティーソフトウェアが特別なDLLを登録すると、それがVulkanを利用する全てのゲームに自動的に読み込まれます。これでゲームをキャプチャーするプロセスが合理化され、コードを挿入する現在の技術の煩雑さがほぼ解消されました。
複数のオーディオソースへの対応
Twitch Studioのベータがリリースされた時は、初めて配信するストリーマーが簡単に配信を始められるようにすることを目的としていました。ですので、初期機能ではマイク1つとデスクトップのオーディオキャプチャー1つというシンプルなオーディオモデルを採用していました。しかし、ストリーマーの皆様からのフィードバックをもとに機能を拡大していく際に、追加のオーディオチャンネルやデバイスにも対応して欲しいという要望が多く寄せられました。そこで先日、この要望にお応えするために内部のオーディオシステムの大規模なリファクタリングを行いました。
このオーディオのオーバーホールによって、デフォルトのオーディオ体験はなるべくシンプルに保ちながら、より高度な設定をできる限りシンプルで使いやすくしながら追加しました。プログラム内部ではオーディオデバイスの管理方法が一新されています。単純にデフォルトのオーディオ出力を選択し、必要に応じてマイクを追加するだけでなく、新たに追加するデバイスを選択する際には、すべてのオーディオ入力デバイスとオーディオ出力デバイスをモニタリングできるようになりました。これでオーディオシステムが簡略化されただけでなく、今後もっと楽しいオーディオ機能を追加する下準備が整いました。続報にご期待ください!
新しいストリーマーの皆様がこれまで以上に簡単に配信に挑戦できるようにするための取り組みを今後も続けていきます。ストリーマーの皆様が配信の質を高め、配信体験をできる限りシンプルで合理的にするために、今年はさらに多くのツールを開発していきます。まだTwitch Studioをお試しいただいてない方はぜひこちらからお試しください。