見出し画像

【ポケモンSV自動化】Arduino Leonardoで道具増殖バグを動かす

はじめに

ポケモンSVで連コンを利用した金策周回を知ってから自動化に興味を持ち、いろいろ調べたところマイコンに辿り着きました。筆者はブログ初心者かつマイコン初心者のため、至らぬ点が多々あるかと思いますが、何卒よろしくお願いします。

お気づきの点等ございましたら、お気軽にご連絡ください。

マイコンの準備

別の方が書いた記事ですが、以下を参考にしてみてください。Youtubeにて解説動画も出しているようです。非常に参考になりました。

コード(コピペで利用可能)

Arduino Leonardo用です。検証不十分のため、試してみて問題無さそうであれば使ってください。ご利用は自己責任でお願いします。

(2022/12/12 追記) 何度か走らせてみました。調子いいときは2時間くらい動いてくれますが、調子悪いときはすぐ入力抜け発生するので、いつでもマイコンを止められる環境で実施することをオススメします。寝てる間…とか長時間目を離すのはリスキーかと。

#include <auto_command_util.h>

void setup() {
  // Switchがマイコンを認識するまでは信号を受け付けないため、適当な処理をさせておく
  pushButton(Button::B, 1000, 3);
}

void loop() {
  // 増殖ミラコラをライドフォルムに戻す
  pushButton(Button::A, 300);
  pushHatButton(Hat::UP, 50, 2);
  pushButton(Button::A, 1100);
  pushButton(Button::A, 700);
  pushButton(Button::A, 3000);
  pushButton(Button::A, 800);
  
  // ミラコラボックスにアクセス
  pushHatButton(Hat::UP, 50);
  pushHatButton(Hat::RIGHT, 50);
  pushButton(Button::A, 3000);
  pushButton(Button::X, 50, 2);
  pushButton(Button::L, 1100);
    
  // 持ち物をしまう
  pushButton(Button::A, 500);
  pushHatButton(Hat::DOWN, 50, 3);
  pushButton(Button::A, 350);
  
  // ボックスを閉じてミラコラにカーソルを合わせる
  pushButton(Button::B, 2000);
  pushHatButton(Hat::LEFT, 50);
}

更新履歴

■2022/12/12 22時頃
各所を微修正しました。

■2022/12/05 23時頃
安定性を高めるために各所を微修正しました。また、1周約26.3秒→約20.5秒まで縮めました。1時間ほど動かし、問題なく動作することを確認いたしました。

■2022/12/05 14時頃
投稿しました。1周約26.3秒。

動作確認の前に実施すること

  1. ミライドン/コライドンを増殖バグで増やします。詳細は各自で調べてください。

  2. ボックスを開き増殖していることが確認取れたら、メニューを閉じます。

  3. +ボタンでライドフォルムになります。

  4. ライドした状態で再度ボックスを開き、増殖したミライドン/コライドンを手持ちの2番目に配置します。また、3番目以降のポケモンはすべてボックスにしまってください。

  5. 「ボックス1」を開いた状態でボックスを閉じます。

  6. 手持ちの2番目に配置したミライドン/コライドンに、増やしたいアイテムを持たせます。

  7. 手持ちの2番目のミライドン/コライドンにカーソルを合わせた状態で、マイコンを接続します。

動作確認

1周が約26.3秒ですので、1時間約136周でしょうか。約136個/hですので、理論上7時間ちょい動かせば999個でカンストします。
1周約20.5秒になり、約175個/hで周回できます。長時間稼働し続けられるか検証できていませんが、計算上5時間半くらい動かせばカンストするようです

1周約17秒になり、約211個/hで周回できます。長時間安定稼働は難しいですが、計算上4時間半~でカンストするようです。

終わりに

画面が切り替わる際に動作が重くなりやすいため、ボックス画面に切り替わったりするところを時間配分多めにして、多少処理落ちしても対応できるようにしています。

また、野生ポケモンが湧く場所等で実施すると動作が重くなりそうな予感がしますので、できるだけ処理が軽そうな場所(主人公の家など)で実施するといいと思います。

もしうまく動かなかったり、ご不明な点等あればご連絡ください。わかる範囲で対応いたします。

以上です。

(2022/12/12 追記) どうあがいても入力抜ける時があるので、最速でプログラム組んであげて処理が抜けたら手動で止めてまたマイコン挿して…を繰り返すのがいいかと思います。今の私にはこれが限界です(-_-;)
最近はマイコンだけでは飽き足らず、Poke-Controllerにも手を出しました。画像認識便利すぎます。自分でプログラムを書くのはハードル高いので他の人のプログラム動かしてばかりですが……

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