OBS を使ってゲーム配信をしていて、「特定の画面が見えた時に特定の処理がしたい」と思うことがありました。例えば自分のやっている音ゲー配信の場合、「記録更新時」に「画面右下のキャラクターをどや顔にさせる」といったような具合です。
自分の配信の一部を切り抜いた動画が以下になります↓
- 画面が切り替わったタイミングで右下のキャラクターがどや顔になっていること
- 一定時間後に右下のキャラクターの笑顔が通常の顔に戻っていること
が確認できるかと思います。
こちらを実現するために、この配信では「Advanced Scene Switcher」という OBS のプラグインを用いた「画像認識」を利用しています。そこで、今回は
OBS で、Advanced Scene Switcher を用いた画像認識を行う方法
を、具体例とともに紹介していきます。
Advanced Scene Switcher とは何か
Advanced Scene Switcher は OBS のプラグインの一種で、OBS に追加の機能を提供してくれます。公式ページでは
This plugin will allow you to automate various tasks using “Macros”.
と書かれており、「いろんなタスクを、マクロを使うことで自動化できるようにするプラグインだ」ということが分かります。
- いろんなタスクって何?
- マクロって何?
と疑問がわくかと思いますが、ある程度 Advanced Scene Switcher を使った自分がこれを言い換えてみるならば
となるかなと思います。ここで言っている「何かが起こった時」の「何か」というのは割と何でもOKですし、「何らかの OBS 上の操作」も割と何でもOKだったりします。今回記事で紹介しようとしている画像認識のケースに当てはめてみると、
- 「何か」→ ゲーム画面上で記録更新を示す画像が表示された時
- 「何らかの OBS 上の操作」→ 笑顔のキャラクターを一定時間表示した後、消す
という形になります。
実際に触ってみないとピンと来ない部分も多いので、とりあえずは一度触ってみて試行錯誤することをオススメします。この記事で紹介する画像認識のケースを一通り追いかけるだけでも、だいぶ勝手が分かり「色んな事ができそうだ!」というイメージがつかめるかな…と思います。
Advanced Scene Switcher の導入方法
Advanced Scene Switcher の公式ページに行くと、画面右側に「Go to download」の文字が見えるはずなので、そちらをクリックしてダウンロードします。
ダウンロードしたファイルを解凍し、「Windows」と書かれているフォルダの下へ行くと「AdvancedSceneSwitcherSetup.exe」というファイルが見つかるので、そちらをクリックし画面の指示に従ってインストールを行って下さい。
指示に従ってインストール作業を済ませた後、OBS を起動し、「ツール」の下を見ると「Advanced Scene Switcher」という項目が追加されていることが確認できるかと思います。
こちらをクリックして Advanced Scene Switcher の画面が出てくることが確認できれば、導入完了です。
Advanced Scene Switcher の使い方の一例:画像認識
事前準備
画像認識をするためには、認識したい画像が必要になります。今回の例では、音ゲーのリザルト画面で記録更新を示すアイコン部分を画像認識に利用したいので、準備してきます。
画像の解像度をなるべく合わせたい都合上、OBS に配信用の画面をうつして、OBS 上で右クリックをし「スクリーンショット(プレビュー)」からスクリーンショットをとる方法をオススメします。
あとはペイント等のお好きなツールで使いたい部分をトリミングします。
これを後ほどの設定の手順の中で利用します。
設定
Advanced Scene Switcher を開いた状態で「Macro」と書かれたタブをクリックすると、自動操作を行ってくれるマクロの一覧が表示されます。初めて開く場合は、左側の Macros の中が空の状態だと思います。
左下の+を押して、適当なタイトルを入れて新しいマクロを作成してみます。
右側の「Edit macro」の欄は上下に分かれていますが、
- 上の部分:「何かが起こった時」という条件部分
- 下の部分:「何かをする」という操作部分
を表しています。
まずは、上の条件部分から作っていきます。上の+ボタンをクリックすることで、If から始まるブロックが追加されます。
画像認識を行いたい場合、ここの “Scene” となっている部分を “Video” に変更します。Video を選択することで、ブロックの様子が変わると思います。
下の部分もいくつか選べる箇所がありますが、とりあえず
- –select video source– → OBS video output に設定
- exactly matches → matches pattern に変更
の2点を行ってみて下さい。
その後、右側の “Browse” と書かれている部分から、事前準備で用意した画像を選択します。
その後、下の “Show match” をクリックすることで、現在の OBS の出力画面に対して画像認識がうまくいってるかどうかをテストすることができます。
赤い四角で、認識できた部分を教えてくれます。今回は想定通り認識ができていますが、
- 認識して欲しい場所が認識できていない場合:Threshold の数字を下げる
- 想定外の場所を認識している場合:Threshold の数字を上げる
で調整することが可能です。Threshold は画像認識の厳しさを表す数字で、大きければ大きいほど厳密に元ネタの画像と認識する画像が一致している必要があります。
筆者の環境では Threshold がデフォルトの 0.8 で想定通りに画像認識できていましたが、 0.99 まで上げることで以下のように、
Threshold を 0.4 まで下げることで以下のようになりました。
環境によって適切な Threshold の数値は変わってくるので、適当にいじって良い塩梅を探してみて下さい。
また、Perform check only in area の項目にチェックを入れて Select area から画像認識に使いたい領域を絞ることができます。
- 画像認識の負荷を減らせる
- 想定外の場所から画像認識しないようにできる
ので、必須では無いですがオススメです。
これで、Edit macro の上の条件部分の設定はできたので、下の操作部分の設定を行っていきます。下の部分の+を押してみましょう。
Switch scene というのがデフォルトで追加されますが、今回の例では
- キャラクターのどや顔表情を表示する
- 10秒間待機する
- キャラクターのどや顔表情を通常に戻す
ということを行いたいので、あと2回+ボタンをクリックしてブロックを3つ用意し、それぞれのブロックで行いたい操作を選択していきます。Advanced Scene Switcher 上の用語で言い換えると、
- “Scene item visibility” から “Current Scene” の「どや顔」を “Show” “Source” を選ぶ。
- “Wait” から “fixed” の「10.00」”seconds” を選ぶ。
- “Scene item visibility” から “Current Scene” の「どや顔」を “Hide” “Source” を選ぶ。
となりますが、自分の行いたい操作に応じてお好きな操作を選んでみて下さい。(英語の意味が分かるのであれば、雰囲気でどんな項目を選んだら良いかはおそらく想像つくかと思います…)
選んでみた画面が以下になります。
これで設定自体は全部完了です。設定した画面全体は以下のようになりました。
上部にあるマクロのタイトルの隣の “Run macro” をクリックすることで、上に指定した条件を無視して下の操作がどうなるかをテストできますので、動作確認用に是非ご利用下さい。
終わりに
以上、OBS で画像認識を試してみた具体例のお話でした。
改めてお伝えしたいのは、Advanced Scene Swithcher は非常に様々な機能を持つので、実際に触って試行錯誤してみることで使い方を習得していくのが一番良いかなと思います。あとは配信者のアイデア次第で楽しい配信画面が出来上がると思うので、ガンガン広まっていって欲しいです!
最後までお読みいただき、ありがとうございました。
コメント