【スプラトゥーン3】自動対戦Botでナワバトランク上げ

はじめに

ナワバトラーのランクを自動的に上げる、自動対戦Botの紹介になります。
中級者向けです。

通信エラー対策済です。が、このゲームのネットコードがうんちすぎるので、意図しないタイミングでエラーが起こる場合があり、その場合はマクロが止まってしまうかもしれません。

最近パスを繰り返しナワバトランクを上げるマクロが流行っていますが、
このマクロは倍くらいの効率でランクを上げる事ができます

パスマクロ= 1分で約20XP
自動対戦マクロ= 1分で約50XP

注意点として、PCにかかる負荷が若干高いので電気代に気をつける必要があります
PCを省電力モードとかにしておきましょう


必要なもの

  • PC x1

  • Switch x2台 Lite不可

  • Splatoon3 x2

  • Switchのドック x1

  • プロコン x1

  • (レベルアップ側) 高さ4マスのナワバトラーカード15枚で構成されたデッキ x1

  • (相手側) 適当なデッキ x1

  • ーーーーーーーーーーーーーーーーーー

  • キャプチャーボード x2

  • NX Macro Controller 

  • TP-Link UB400 x1 (この他のBluetoothドングルは使えない可能性あり)

  • CH552-SERIAL x1

  • USB C オス ↔ USB A オス ケーブル x2

  • ネット環境

  • 多少のPC知識、説明が下手でも自分で調べられたりして解決できるようなやる気と融通が利く頭

導入

リソース画像の作成

このマクロはNX Macro Controller(以下NMC)の画像認識を使用して動きます
2つのキャプチャーボードに出力された映像をNMC 2つで読み取り、それぞれ2台のSwitchに操作を送ります

しかし、個人個人でキャプチャーボードが出力する映像の色合いなどの状態が違うので、
画像認識をハッキリさせる為に
OBSでイカッチャで対戦した際に録画したプレイ映像から、自分の環境のリソース画像(比較対象になる画像)を切り抜き
もしくは、スクショした画像を切り抜いてしきい値を変更して使う
という対策が必要になります
ランクアップ側は

  • ステージを選んでください

  • デッキを選んでください

  • 手元のカードを引き直しますか?

  • のこり12ターン

  • のこり11ターン

  • のこり10ターン

  • のこり9ターン

  • のこり8ターン

  • つづけて対戦しますか?

  • 通信エラーが発生しました

  • ナワバトラーを終了します

  • (なくても動く、ランクアップ時LINE通知に必要)「ランクアップ!」

敵側は

  • デッキを選んでください

  • 手元のカードを引き直しますか?

  • のこり12ターン

  • のこり11ターン

  • のこり10ターン

  • のこり9ターン

  • 対戦相手がギブアップしました

  • つづけて対戦しますか?

  • 通信エラーが発生しました

  • ナワバトラーを終了します

これらの画像の用意が必要です
ランクアップの画像に関しては、レベルアップの瞬間をOBSで録画している必要があり用意が面倒なので正直なくてもいいです(その場合ランクアップ時スクショLINE送信が使えません)



自分の環境はこんな感じ

入力の設定

画像が用意できたら、
Bluetoothドングル「UB400」とマイコンボード「CH552-SERIAL」を用意し、NMCで使用できるようにします。
Bluetoothドングルの設定法はネットに、CH552-SERIALの設定法は公式Discordにあるので割愛します


ビデオの設定

画像認識に使用するために、キャプチャーボードから取ってきた映像をNMCに認識させます
両側の映像をキャプチャーしてそれぞれ2つのNMCに映します

マクロのダウンロード、調整

NMCのマクロ共有サーバーからレベルアップ側、相手側のマクロをそれぞれダウンロードし、ロードします
(すべてのマクロは「ナワバトラー自動対戦」と検索すれば出るはずです)
必要に応じてImgCmpの( )の中の0.8を調整したり、画像ファイルを変更してください。場所はわかりやすくコメントアウトしておきます
1に近づく程判定は厳しく(反応しづらく)なり、離れるほどゆるく(反応しやすく)なります


うまく動作しているかはNMCのログを見れば良いです

違う場面で画像が認識されてしまい処理が進んでしまう場合はしきい値を1に近づけ、
逆に正しい場面で認識されない場合はしきい値を1から0に近づけてください
0.01単位で調整できるはずです

しきい値を変更する場合、特に残りカウント数の認識に気をつけてください キツめに設定したほうが良いかも


実行

それぞれのswitchでイカッチャに行き、どちらかが部屋を立てます(部屋主はどちらでもいい)
レベルアップ側は先に座り、相手側は後から座ります
こうすることによってステージを選ぶ側(親)がレベルアップ側になります
ステージ選択画面になったら両方のマクロを起動、敵側から起動すればまあ大丈夫です

導入後

スマホでランクアップ時通知を受け取る (V1.5.0で廃止)

Line Notifyのトークンを入手し、勝利側のNMCに設定から登録すると、ランクアップの画像認識をした際にスクリーンショットを送信するようにできます
この画像も前述した通りの調整が必要です
(V1.5.0で廃止)

カウント

行われた試合数はレベルアップ側のNMCのウインドウ下枠に「カウント:」としてカウントされています

さいごに

作ったばっかりなのでループから抜けてしまう事があると思います
アップデートで対応するつもりですので、詳しい状況を@escobar7sまで送ってくれると助かります

バージョン履歴

  • v1.4.0 初期リリース

  • v1.5.0 ループから抜けてしまう不具合を修正、それに伴いLineのランクアップ時通知を廃止

  • v1.6.0 カーソルの速度を上げる事により効率UP、「つづけて対戦しますか?」の画面で不安定になってループから抜けやすくなる不具合を修正

  • v2.0.0 Not処理が機能していなかったのを修正、全体的に関数を使用した処理に一新 通信エラー対策




この記事が気に入ったらサポートをしてみませんか?