ダイマックスアドベンチャー色粘りの自動化

Poke-Controllerの画像認識を使ってダイマックスアドベンチャーでの色粘りを自動化しました。

 

捕まえた色カプコケコ

f:id:cq6vum:20201202000609j:plain

 

動作の様子

youtu.be

 

現在更新を停止しています。

これからダイマックスアドベンチャーの自動化を行う方はこちゃてす(@kochatece12)さんのプログラムを利用することをおすすめします。

note.com

 

目次

 

 

 

ダウンロードURL

Dropbox - AutoDaiMaxAdventure

 

Ver.1.0

2020/11/29 公開

Ver.1.1

2020/11/30 「ダイマックスできるターン」と「ppが切れたターン」が被った時に止まらないよう修正しました。

Ver.1.2.0

2020/11/30 色違いのポケモンが出ても連れて帰れていない時があったので修正しました。

ポケモンを連れて帰ると行先が消えてしまう不具合があります。今後修正します。

画像認識の精度を上げるためKoukaari.pngを変更しました。

Ver.1.3.0

2020/12/2 色違いが出た時に行先を消してしまう不具合を修正しました。
色違いかどうかの判定がポケモン3匹分しか行われていなかったので、4回判定するように修正しました。
ダイマックスしなくても効果抜群の技を選ぶようにしました。
その他細かい修正をしました。

Ver.1.3.1 

2020/12/4 はなびらのまいなど技の対象選択の時に自分を選ぶ技を出せない不具合を修正しました。

技の選択方法を変更しました。

ポケモンを3体しか捕まえられなかったとき、3体目のポケモンが色違いだった場合ボスの色違いとして判定されてしまう不具合を修正しました。

Ver.1.3.2

2020/12/5 PP切れ時の挙動を修正しました。

Ver.1.3.3

2020/12/25 漢字、ひらがなのどちらの設定でも動くようにしました。行先を選べるようにしました。(設定方法はこちら→ダイマックスアドベンチャーのオシャボ色厳選・ジガルデ色厳選の自動化 - アキルノのブログ)

画像を追加、変更しました。待機時間を増やすなど細かい変更をしました。

 

 

必要な物

  • PC
  • (liteじゃない)Switch
  • マイコン
  • USBシリアル
  • キャプチャーボード
  • Poke-controller

 

使い方

  • Poke-Controllerをインストールする

https://github.com/KawaSwitch/Poke-Controller

 

インストール方法や使用方法は作者様がgithubに詳しく書いてくれているので読んでください。

Poke-Controllerの起動、キャプボとマイコンの接続が出来るようにしてください。

 

  • 画像とプログラムをPoke-Controllerのフォルダに入れる

 

最初にダウンロードしたフォルダ(AutoDaiMaxAdventure)を開きます

 

DMA.pyを

Poke-Controller¥SerialController¥Commands¥PythonCommands¥ImageProcessingOnly

の中にコピーします。

 

picturesの中にある画像を全て

Poke-Controller¥SerialController¥Template

の中にコピーします。

 

追記 11/30

更新する時も同じ手順を踏んで古いファイルを新しいファイルに書き換えて下さい。

 

新しいPythonコマンドの作り方 · KawaSwitch/Poke-Controller Wiki · GitHub

このページが参考になります。 

 

f:id:cq6vum:20201129142739j:plain

 Aボタンを押したら研究員に話しかけられる位置に立ってください。

ダイマックスアドベンチャーチュートリアルは終わらせておいてください。

 

  • プログラムを開始する

 Poke-ControllerのCommandから「ダイマックスアドベンチャー」を選び、Startを押します。

プログラムファイルを入れてあるのに「ダイマックスアドベンチャー」が出てこない場合はStartの左のReroadを押して下さい。

色違いが出るかボールがなくなるまで自動で動き続けます。

 

備考

f:id:cq6vum:20201129142358j:plain

画像の並びだとゴージャスボールを投げます。

ボールを500個以上投げたら「ボール切れ」と表示して止まります。

間違えてオシャボを消費してしまっても責任は取れません。
不安ならポケモンにボールを持たせてバック内にオシャボを入れないようにするといいと思います。

  • マックス鉱石が1時間15個ぐらいのペースで増えます。
  • 色違いが2匹以上出た時は、終了後の選択画面でより下の方にいるポケモンを連れて帰るようになっています(ボスとモブが光った時にモブを連れて帰らないようにする為)。
  • ランダム要素が強いのでバラツキがありますが、1周10分〜20分程度で周回します。
  • 上手くいかなかった時は「どこかで止まりました」と表示して止まります。止まった時は詳しい状況と共に教えて頂けると助かります。

 

 

  • 勝率を上げるためにやったこと

効果抜群の技を選ぶ

 

  • 出来なかった/諦めたこと

タイプ相性を考慮して道を選ぶ
→画像認識で位置を認識するのが難しかった
威力が高い技を選ぶ
→数字を認識するのが大変

HP残量を考慮してダイマするか決める

→必要性をあまり感じなかった

 

  • そのうちやりたいと思っていること

「こうかなし」の技を選ばないようにする

タイプ一致技を選ぶ
ダイマックス出来るターンに空を飛んでいたり地中に潜っていたりしないようにする
ポケモン徹底攻略さんのDMAdbを元にポケモンを選ぶ


こうすれば勝率が上がるんじゃないかというアドバイスがあったら教えてください。

 

Q&A

質問はブログのコメントにお願いします。Twitterに質問を送るのは辞めて下さい。
Poke-controllerの導入方法、使用方法、キャプチャーボードの使用方法についての質問には(知識がないため)一切回答出来ません。

 

 

  • DMA終了後、連れて帰るポケモンを選ぶ画面で色違いが出たか確認せずに巣穴の前に戻ってしまう(Ver.1.1/1.2)


待機時間が足りない等の理由でA連打が入って失敗することがあります。(そのうち直せたら直します)
環境によっては待機時間が足りないことがあります。それぞれの環境に合わせて待機時間を調整して使って下さい。
バトル中など最初の入口以外の所でマクロを開始すると上手く動かないので、必ず研究員の前に立っている時に開始するようにしてください。

 

2020 12/25追記


ダイマックスアドベンチャー終了後に色違いかどうかの確認ができないという報告が多かったので待機時間を増やしました(Ver.1.3.3)


このプログラムは日本語用です。また、Ver.1.3.2以前のプログラムは漢字設定でしか使えません。(Ver.1.3.3でひらがなでも動くようになりました)
日本語以外でプレイしている方は画像を差し替えて使ってください。

 

 

  • interrupptと表示されて止まる


「どこかで止まりました」と表示されずに「interruppt」と表示されて止まった時はPowerShellの方にエラー内容が表示されるので、その内容をコピペするかスクショを貼るなどして教えていただけると助かります。

 

pyファイルを弄っていない場合は画像がTemplateフォルダに入っていないなどの問題だと思います。


画像を追加する時はTemplateフォルダの中にpicturesフォルダを入れるのではなく、picturesフォルダの中の画像をTemplateフォルダ直下に入れてください。


古いVer.は動くのに最新Ver.が動かない場合はプログラムにミスがある可能性があるので、修正が終わるまで古いVer.を使って下さい。

 

 

 

 

  • 画像認識が上手くいかない


画像認識に失敗している時は、画像認識の閾値(しきい値)を変更すれば解決する可能性があります。

 


しきい値の変更方法はこちらを参考にして下さい


しきい値を下げるには、(Ver.1.3.2の場合)プログラム206行目の
elif self.isContainTemplate('Tukamaeru.png', 0.95): # つかまえるコマンド
 

の数字(0.95)を書き換えて下さい。

今はサンプル画像と95%一致したら判定されるようになってるので、0.8(80%)ぐらいにするといいと思います。
下げすぎると捕まえるコマンドが出ていない時に間違えて認識してしまうので注意して下さい。
しきい値を下げても治らなかったら画質の関係で失敗している可能性があるので、Picturesフォルダの中にある"Tukamaeru.png"を自分でキャプチャしたものに置き換えてみてください。

 


キャプボの問題で縦横比が変わっていたりしたらしきい値を変更しても解決しないので、スクショを撮って差し替えて使ってください。
Poke-ControlletにあるCaptureボタンを押すとスクショが Poke-Controller/SerialController/Captures内に保存されます。
必要に応じてトリミングして、Templateフォルダ内にある画像と同じ名前にして上書きして変更して下さい。画像はCapturesフォルダからTemplateフォルダに移動して下さい。

 

 

 

 

 

 


色違いの出現報告等のコメントお待ちしております