【スプラトゥーン3】OBSのプラグインで画像認識してバトルを一定回数行ったら通知する

2025-07-21

スプラトゥーン3

t f B! P L

概要

OBSプラグイン『Advanced Scene Switcher』(日本語名:『高機能シーンスイッチャー』)を使って画像認識して、バトルを一定回数行ったら通知するツールを作りました。

  1. バトル終了を画像認識して、通知音を鳴らす
  2. バトルを指定した回数行ったら、特別な通知音を鳴らす

例えば「バトルをN回したら休憩する」といった通知に使えます。

OBSプラグイン『Advanced Scene Switcher』(日本語名:『高機能シーンスイッチャー』)を導入する

前回の記事 を参考にしてください。

バトルの回数ごとに通知音を変える

通知音の音声データを用意する

今回は、以下のような音声データを用意しました。

  • バトルが終了したら finish.wav を鳴らす
  • バトルの回数に応じて game_[回数].wav を鳴らす
  • バトルをN回行ったら interval.wav を鳴らす

バトル回数の変数を設定する




  1. 右上の 歯車マーク > 入力設定 から変数を追加する

今回は VarGameCount という名前の変数を設定しました。

アクションで動作を設定する


  1. アクション「Run」で音声ファイル finish.wav のパスを設定する
  2. アクション「Wait」で待ち時間を設定する
    1. 音声ファイルの再生時間に応じて長さを変える
  3. アクション「Run」で音声ファイル game_[回数].wav のパスを設定する
    1. game_${VarGameCount}.wav とすることで、バトル回数に応じて音声ファイル名が変わる

バトル終了を検知する

バトル終了時の画面左上に表示される文字を画像認識して、

  • WIN!
  • LOSE...

の表示になったらバトル終了とみなすことにします。

画像認識用の画像を用意する

バトル終了時の画像を

  • WIN!
  • LOSE...

の2パターン用意します。


OBSでバトル中のスクリーンショットを撮り、左上の文字の部分を切り出します。 このとき、切り出した場所の

  • 左上の座標 X, Y
  • 切り出した領域の 幅, 高さ

をメモしておきます。
この値はあとでマクロで使用します。

他人が撮ったスクリーンショットを使用してもよいですが、手持ちのキャプチャーボードの個体差で画像認識結果が変わる可能性がありますので、自作するほうが確実です。

イベントで条件を設定する

前回の記事 も参考にしてください。

以下の手順で、WIN/LOSE の2種類のイベントを設定します。

  • イベント「動画」を追加する
  • 条件を設定する(後述)

条件

  • matches pattern を選択する
  • WIN/LOSE 表示の画像ファイルのパスを設定する

閾値

  • 0.99 ぐらい
    • 認識してほしい場面で反応しなかったり、関係ない場面で反応しすぎる場合は、値を調節する(後述)

エリア内のみチェックを実施

  • 「エリア内のみチェックを実施」を有効にする
  • WIN/LOSE 表示の認識エリアを設定する
    • 認識用の画像を切り出したときの X, Y, 幅, 高さ
  • 「範囲指定」ボタンで認識エリアが正しく設定されているか確認する

動作確認

  • 「ショーマッチ」ボタンで、認識したい場面で「現在のマッチング値」が閾値を超えているか確認する
  • 認識してほしい場面で反応しなかったり、関係ない場面で反応しすぎる場合は、閾値を調節する

アクションで動作を設定する


  1. アクション「変数」を追加する
    1. 「インクリメント(増加)」「VarGameCount」「1.00」を設定する
    2. 「バトル終了を検知すると、VarGameCount が 1.00 ずつ増加する」という動作になる
  2. アクション「マクロ」を追加する
    1. 先に作成した、通知音を鳴らすマクロを設定する
    2. 通知音を鳴らすマクロが変数 VarGameCount を受け取って動作する

バトルを指定した回数行ったら特別な通知音を鳴らす

バトルを指定した回数行ったら特別な通知音を鳴らし、バトル回数をリセットします。

イベントで条件を設定する


  1. イベント「変数」を追加する
    1. 「VarGameCount」「は指定値より大きい」「任意の数字」を設定する

今回は「任意の数字」に 2.00 を設定しています。
VarGameCount が 2.00 より大きい=3試合目が終了した という条件になります。

アクションで動作を設定する


  1. アクション「Wait」で待ち時間を設定する
    1. 音声ファイルの再生時間に応じて長さを変える
  2. アクション「変数」を追加する
    1. 「固定値に設定」「VarGameCount」「0」を設定する
    2. 「3試合目が終了すると VarGameCount を 0 にリセットする」という動作になる
  3. アクション「Run」で音声ファイル interval.wav のパスを設定する

使用例

【スプラトゥーン3】一生に一度は王道の勝ち方を経験する 2025夏

更新履歴

  • 2025-07-21 【Splatoon3 Ver. 10.0.1】 投稿

このブログを検索

QooQ