今回は、ポケモン剣盾のバトルタワーでのBP稼ぎを、マイコンを使って自動化していきたいと思います。
BP稼ぎの自動化についてはすでに先駆者がいましたが、『冠の雪原』に対応しているものは見受けられなかったため、解禁された伝説のポケモンの考察も踏まえながら新しくPTを考えました。もちろんレンタルチームも用意していますよ!
ではさっそく見ていきましょう!
この記事をご覧になる前に
マイコンをまだ導入していない方は、以下の記事を参考に導入してみてください。このブログでは、『Arduino Leonardo』というマイコンを使っているため、異なる種類のものではうまく動かない可能性があります。
マイコンと呼ばれるものをご存知でしょうか? Switchに接続するだけで様々な作業を "自動" で行ってくれるというものです。 導入すれば作業が楽になるだけでなく、寝てる間に色々稼ぐこともできちゃう便利なアイテムなわけですね! […]
今回のコードは「NintendoSwitchControlLibrary」を使用しています。まだダウンロードされていない方は、解凍したフォルダを『Arduino』フォルダの中にある『libraries』フォルダの中にコピーしておいてください。
A library for microcontrollers that uses Arduino to automate…
今回のコードについて
ダイマックスアドベンチャーを自動化するアルゴリズムについては、hyperT氏のブログを参考にさせてもらいました。
この記事ではマクロコンを使って自動化を行っているということですが、こちらの手順をマイコンに落とし込んだものにも需要があると考えました。
改善案も求められているようなので、コードを検証しつつ効率よく回すアイデアが見つかれば、報告してあげると良いかもしれません。
ソースコード
実際に書いたコードはこちらになります。
/**
* バトルタワーでのBP稼ぎを自動化するスケッチ
*
* 初期条件は以下の通り
* 1.バトルタワーの受付の前で待機していること
* 2.レンタルチームに 0000 0003 M4XW JG をレンタルしておくこと
* 3.上記のチームがバトルチーム選択で最初に来るようにすること
* 4.無線のコントローラーが接続されていないこと
* 5.「設定」から「話の速さ」を「速い」に、「戦闘アニメ」を「みない」にしておくこと
* 6.ちょいらくモードが「しない」であること
*/
// ライブラリを読み込むためのコード
#include <NintendoSwitchControlLibrary.h>
// マイコンのセット時に1度だけ行われる処理
void setup() {
// Switchがマイコンを認識するまでは信号を受け付けないため、適当な処理をさせておく
pushButton(Button::B, 500, 5);
}
// ここに記述した内容がループされ続ける
void loop() {
pushButton(Button::ZL, 2800);
pushButton(Button::A, 800);
pushButton(Button::A, 800);
pushButton(Button::B, 800);
pushHat(Hat::UP);
pushButton(Button::ZL, 2800);
pushButton(Button::A, 1050); // ここは少し長めにとらないと、参加画面で詰んでしまう
pushButton(Button::ZL, 2800);
pushButton(Button::A, 800);
pushHat(Hat::UP);
pushButton(Button::ZL, 2800);
pushButton(Button::A, 800);
pushHat(Hat::UP);
pushButton(Button::ZL, 3300);
}
レンタルチーム
このコードを使うには、以下のレンタルチームをダウンロードしておいてください。(同様のポケモンが用意できれば、自分のポケモンでも大丈夫です)
PTメンバーは以下のようになっています。
- ザシアン@剣 ようきAS
- バドレックス(こくばじょうのすがた)@メガネ おくびょうCS
- ウオノラゴン@スカーフ ようきAS
その他のポケモンに関しても色々と考察しましたが、最終的にはこの3匹に落ち着きました。バドレックスやウオノラゴンの枠は好みで他のポケモンで別のポケモンに変えてもらっても大丈夫です。
一応考察の材料も書いておこうと思います。
- バドレックス(こくばじょうのすがた)
- アストラルビットがノーマルタイプに無効化されるものの、C165からの威力120ゴースト技の通りの良さ、対ねこだまし、対ヌケニンなど総合点で最終的に採用することになった メガネ持ちであれば、ダイマリザードンをC1↑アストラルビットで倒せるのも魅力だったりする しかし、エースバーンのふいうちなどに弱い点も考慮すると一考の余地はあり
- バドレックス(はくばじょうのすがた)
- ブリザードランスは強力だが、いかんせん素早さが遅いため、先制を取れずテンポが悪くなると判断 ヌケニンも突破できない
- ムゲンダイナ
- ダイマックスほうは威力100しかないため、思っているほど火力が出なかった フェアリーに無効化されるのも悩ましいところ
- レジエレキ
- ダイジェットしたリザードンよりも素早く火力も申し分ないが、電気技が地面タイプに無効化されるのとヌケニンを突破できない点が好ましくなかった
- イベルタル
- 無効化されない悪タイプの技で戦え、特性も強力で申し分ないと思われたが、技が微妙なため期待しているほどの火力がでなかった
- ウーラオス(いちげきのかた)
- ポテンシャルはかなり高く守る貫通もうれしい しかし、ダンテのリザードンより遅いため、ダイジェットで倒される → ザシアンがダイバーンで倒される の動きが致命的なことより断念することに…
- カイオーガ
- ウオノラゴンとの入れ替え筆頭 先制技持ちやスカーフポケモンと対面したときの安定感、雨でテンポが落ちるのを嫌って当ブログではウオノラゴンを推奨とした
設定の確認
マイコンを繋げる前に、以下の状態になっていることを確認してください。
2022年5月12日追記:必要な設定を一部追加しました。
-
バトルタワーの受付の前で待機していること
- レンタルチームに 0000 0003 M4XW JG をレンタルしておくこと
-
上記のチームがバトルチーム選択で最初に来るように設定しておくこと
- 無線のコントローラー(プロコンなど)が接続されていないこと
- 「設定」から「話の速さ」を「速い」に、「戦闘アニメ」を「みない」にしておくこと
- ちょいらくモードが「しない」であること
初期状態ではレンタルチームが最初に来ていないので、セットしてから始めるのを忘れないようにしてください。以下のようになっていればOKです。
さいごに
このコードを回していると、各所に無駄な動作が見受けられるかと思いますが、ループから抜けないことを優先しているためにこのような形となっています。
効率としては、平均で時給30〜40BPほど稼ぐことができます。ループから抜けてしまうような自体には遭遇していないので、放置しながらBPを稼ぐのにはすごく重宝しそうです。