見出し画像

OBS Studio上で画像認識を用いて配信管理を自動化する【Advanced Scene Switcher】

たぐやんです。スマブラSPのオフラインコミュニティ大会「渋谷BeeSmash」を中心に、オフイベントを500回以上主催しています。

今回は配信技術の話です。スマブラの大会において、スコアボードやリプレイ再生などの配信の管理を自動化したことについてまとめます。


導入した経緯

スマブラのコミュニティ大会の配信は独自に発展しており、10年以上前から試合中のカメラやスコアボードを積極的に取り入れています。

特に最近の大型大会では「EGS」等の配信団体が非常に高品質な配信を行っています。

そんな中、人手の無い小規模コミュニティ対戦会でも参加者の思い出を彩れるような配信を出来ないかと考えた結果、配信管理の自動化の導入に至りました。

実装した機能

渋谷BeeSmashや渋谷達の配信では、以下の機能を導入しています。

カメラ切り替え機能

  • 試合前は会場カメラを大きく映す

  • 試合中はゲーム画面を大きく映す

  • 試合終了後に会場カメラを写す

  • 試合終了後、7秒経ったらリプレイを写す

  • リプレイが終わったら選手をアップしたカメラを写す

リプレイ機能

  • ストックを奪ったタイミングでリプレイを録画する

  • 試合終了後にリプレイを再生する

スコアボード自動化機能

  • 試合終了後に、勝利した選手ののスコアを+1する

  • Startggから選手情報を取得して表示する

以上の機能を実装することで、このような配信の(ほぼ)全自動化をしています。

実装内容

VLC media player

同じフォルダに入っている動画ファイルをまとめてOBSに読み込むことができるアプリ、OBSプラグインです。
録画した複数のリプレイをまとめて再生するのに利用します。

導入方法はこちらの動画が分かりやすいです。

リプレイフォルダ構成

リプレイ動画のファイルを管理するフォルダです。

  • Highlightフォルダ…このフォルダに入っている動画が再生されます

  • bkupフォルダ…次の試合が始まると、以前の動画はこのフォルダに退避します。

  • bkupmove.batファイル…リプレイ動画をHighlightからbkupに退避するためのバッチファイルです。

C:.bkupmove.bat
│
├─bkup
│ 250124-203311.mp4
│ 250124-203716.mp4
│ 250124-203814.mp4
│ 250124-203839.mp4
│ 250124-203939.mp4
│
├─Highlight
│ 250124-205238.mp4
│ 250124-205252.mp4

bkupmove.batファイルの中身↓

move Highlight\.mkv bkup
move Highlight\.mp4 bkup

リプレイバッファ

OBSのリプレイバッファ機能を設定しましょう。自分の環境ではリプレイ時間を7秒に設定しています。
また、リプレイバッファで録画された動画を前述のリプレイフォルダに格納されるように「録画ファイルのパス」を設定しています。

Advanced Scene Switcher

Advanced Scene Switcherというプラグインを用いて画像認識マクロを組みます。導入方法は以前書いたこちらのノートにまとめています。

自分の環境では、現在以下のマクロを組んでいます。少し長くなりますが、一つ一つご紹介します。

  • Game Start

    • 試合開始画面を認識し、シーンを「試合」に切り替える

  • Highlight_Remove

    • 試合開始画面を認識し、.batファイルを起動しリプレイが残っているフォルダを綺麗にする

前述のbkupmove.batを起動する
  • Highlight_REC

    • 撃墜画面の「3-2」のような表示を認識し、OBSの「リプレイバッファ」機能を動かし、その瞬間より前の7秒間をリプレイとして記録する

  • Highlight_GamesetREC

    • 「GAME SET」の表示を認識し、OBSの「リプレイバッファ」機能を動かし、その瞬間より前の7秒間をリプレイとして記録する

  • GAMESET

    • 「GAME SET」の表示を認識し、シーンを「風景」に切り替える

  • ScoreUp_1PWin

    • 1P勝利時の試合結果画面を認識し、ショートカットキーを入力する。スコアボード側で同じショートカットキーを設定しておき、1Pのスコアを「+1」する。

  • ScoreUp_2PWin

    • 2P勝利時の試合結果画面を認識し、ショートカットキーを入力する。スコアボード側で同じショートカットキーを設定しておき、2Pのスコアを「+1」する。

  • Highlight_Get

    • 「GAME SET」の表示を認識して5秒後に、これまで録画したリプレイフォルダを読み込む

  • Highlight_Play

    • 「GAME SET」の表示を認識して7秒後に、「Replay」シーンに切り替えてリプレイを再生する

  • Highlight_Stop

    • リプレイ内で「GAME SET」の文字が表示されたら、シーンを「プレイヤーカメラ」に切り替える

  • 風景に戻る

    • 「プレイヤーカメラ」のシーンで30秒以上経った場合、シーンを「風景」に切り替える

以上が実装内容となります。駆け足の紹介となってしまいましたがご了承を…。

おわりに

自動化は継続的に運営をしていくための投資です。環境を作るのは大変ですが、適切に導入できれば大きな力になります。
このNoteが皆さんの配信管理の一助となれば幸いです。

自分の運営するコミュニティでももっと様々な分野での自動化に取り組んでいければと考えています。

またそのうちBeeスマにまつわることを書きます!

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

taguyan/たぐやん
よろしければ応援お願いします!