画像認識によるダイマックスアドベンチャー自動色厳選

気が向いたので組んでみました

用意するもの

↓私の自作マクロver1.3(使用によるあらゆる事象に責任を負いません)

https://drive.google.com/file/d/1gDCZrMdeN6dr1eaaNsgWfxa_yq3rGG_Z/view?usp=sharing

使い方(ざっくり)

キャプボとnx macro controllerとBluetoothドングルを使用して、switchをPCから操作できるようにしてください。
ツール配布先にだいたいのことは書いてあります。
マクロを読み込んで(必要なら改修して)、ダイマックスアドベンチャーの受付の目の前で起動するだけ。

動作不良起こした場合は戦うコマンドにカーソルを合わせた状態で再起動すれば再開します。

自作マクロの詳細

仕様

中国繁体語に対応。別言語で使う場合は中国語が映ってる画像を全部差し替える必要あり(ツールの画面右クリックでキャプチャ)。

取るポケモン・アイテムは適当。捕まえたポケモンに2回に1回入れ替える。 ダイマックス出来る時はダイマックスする。

常にタイプ相性が良い攻撃技を選択する(2倍と4倍の区別不可)。

最初のボールを投げ続ける。非売品ボール使用は非現実的。

伝説・一般問わず色違いが出た時点で停止。

課題点

  • PP切れに対応できない。撃てない技(ゲップなど)に対応できない。
    手動で軌道修正するまで右往左往し続けます。PP切れ対応しました。
  • 有利なポケモンをキープしたりルート選択したりできない。
    これ画像認識だけでできる範疇を超えてると思う。
  • タイプ一致や技威力、4倍弱点などを考慮できない。
    変数使えない環境で効率を著しく落とさずに実現するアルゴリズム思いつきませんでした。
  • ダイマックスしないターン、攻撃技選択に時間がかかる。
    ダイマックス状態でないと、技のタイプごとに欄の色が違うので画像認識でタイプ相性判別不可。総当たりで一番いい技を撃ってます。
    全タイプの全相性画像を用意すれば実現は出来る。
  • 手持ちの体力が減った時だけ交換するように組みたかったが未実装。
    なんか画像認証が上手くいかないんですよね。仕方なく1回置きに交換しているけどPP問題もあるので全入れ替えに変更してもいいかも。
  • 4乙して撤退させられた時にたまにリザルト画面で右往左往する。
    原因不明。放置しても致命的なミスは犯さずに通常挙動に戻っていくはず。

「今現在選択している技」の判別をするために「選択している技欄の縁が黒くなる」仕様を利用したかったけど背景と同化して精度ゴミだったので諦めました。

使用上の注意点・要調整点

  • 色が出たりPP切れたりすると止まるので放置するにしてもちょいちょい様子を確認してください。
  • 各言語対応は自力でやってください。画像差し替えと文字送りのwait秒数調整くらいだと思います。
  • 現状の仕様だと3匹保存できる伝説のうち2番目を選ぶようになってるので変えたい時は159行目を消すか増やすかしてください。
  • 非売品ボールを使いたい場合はコード改修してください。4周ループで4周目だけ投げるようにして色出なかったらリセットにすればいけそう。
    1匹も捕まえなかった場合のリザルト画面を見てないのでそこの確認だけ要るかも。
  • ボス討伐成功率はレヒレで25~30%くらいな気がします(体感)。正直あんまり高くないけどこれ以上は選ぶポケモンに干渉しないと無理。

終わりに

アルゴリズムの改善案あったら教えてくれるととっても喜びます。コードが汚いという文句は受け付けません。

作ると決めてから設計・実装・テスト・運用まで込みで丸2日くらいで色レヒレ出ました。それまでに一般ポケが3匹光った。