1.はじめに
この記事は Pokémon Past Generation Advent Calendar 2023 の197日目の記事です。
ポケモンEmは「絵画Seed+BV保存法」を利用することで、簡単に理想個体を捕獲することができます。過去には「ものひろい乱数」、「バトルチューブ乱数」、「孵化乱数」に利用するためのプログラムを作成しておりましたが、固定・野生乱数で使用するような汎用的なプログラムを公開していませんでしたので、今回の記事で紹介したいと思います。(絵画Seedってなんぞやって方はコチラの記事を参考にしましょう。)
2.BVSeed保存自動化プログラム
ミナモシティのコンテスト会場で絵画選択してから、バトルファクトリーで戦闘に入る自動化プログラムです。
※ Nx Macro Controller用のプログラムです。GC(GBA)自動化の導入はこちらの記事を参考にしましょう。
このプログラムの拘りポイントとしては、絵画選択からレンタルポケモンを借りて、SeedがズレていないかMFMで確認し、Seedがズレていた場合、プログラムを「停止 → 実行」することで、リセットからコンテスト会場に戻り、再度絵画待機からやり直してくれます。要は、コントローラー操作が不要ということです。
もう1つの拘りポイントは絵画待機時間を決定するのに使用する変数に「フレーム」を渡すのではなく、16進数の「絵画Seed」を渡すようにしています。3gensearchの「個体逆算」や「MFM」では、フレームではなくSeedを入力するので、こちらの方が使い勝手が良いです。一応、絵画待機フレームはログに出力するようにしています。
ゲームでの準備
マクロの実行にあたっては、ゲーム側においては以下の準備をして下さい。
・ 手持ちに1匹目の秘伝技の一番上を「そらをとぶ」にする。
・ ゲームボーイプレイヤーの画面設定を「フル」にする。
・ 設定で「はなしの はやさ」を「はやい」にする。
・ マッハ自転車を便利ボタンに登録しておく。
準備ができたら、ミナモのコンテスト会場の絵画の目の前でレポートを書いてきます。
Nx Macro Controllerでの設定
・「Var PaintSeed」に目的の絵画Seed(16進数)を入力する。
・「Var Frame2」で絵画選択から、BVSeedを保存するまでのフレームを調整する。
目標のSeedに合わせて、双方の値を調整して下さい。絵画選択フレームが830Fよりも短い場合、+65535Fされる仕様になっています。固定・野生乱数利用の場合Frame2は目標から1000〜2000ほど前のSeedにすれば良いと思います。
マクロの実行
準備が完了したら、マクロを実行します。NXのオプションから、LINE Notifyトークンを設定していれば、レンタルポケモンを借りた際に通知してくれます。Seedが合っていれば、そのまま待機し、ズレていればフレーム調整後にマクロを再度実行しましょう。手動でミナモまで戻る必要はありません。
3.おわりに
欲を言えばレンタルポケモンを画像認識して、フレームがズレている場合は自動で調整できるようにしたいところですが、画像を持ってくるのもC#スクリプトを書くのも大変でしたので、ひとまずは諦めました。次回も汎用的なスクリプトを紹介したいと思います。