以下の内容はhttps://dokudenpa.hatenablog.jp/entry/XDIDより取得しました。


【ポケモンXD】ID調整自動化

 

1.はじめに

この記事は Pokémon Past Generation Advent Calendar 2023 の356日目の記事です。

ポケモンXDに出現するダークポケモンは「ナショナルリボン」が付いており、後世代でも多少は人気がありますが、個体生成時に色回避の処理が設けられており、色個体を入手することができません。一方で色回避処理によって、通常入手不可能な個体が出現するため、個体はそれなりに充実しています。(↓ 参考記事)

色回避で入手できる個体は臆病5VA0トゲピーや臆病めざ草ファイヤー、控えめ5VSUめざ氷サンダー、やんちゃめざ格サンダーなどが一部の界隈では有名です。

上記の個体を手に入れるにはID調整が必要で、複数の個体を狙う場合は何度も周回が必要になります。XDはCoと違って、ID調整でSeedを1点狙いする必要がありませんが、面倒なことには変わらず、イーブイの個体を良いものにするなら1点狙いした方が良いので、一応XD版も作成してみました。

名前入力とフレーム合わせだけではなく、「初期Seed厳選」→「2人でバトルで高速消費」→「突入Seedまで端数消費」→「ID調整のフレーム合わせ」→「IDを画像認識して成功判定」までを完全に自動化するプログラムとなっており、ID調整の負担がかなり軽減されたと思います。

 

 

2.タイトル画面での新たな消費方法について

XDの初期Seed厳選&消費の自動化については、過去にメイユールさんが公開しており、PokeCon版についてもフウさんが公開しております。どちらも素晴らしいプログラムですが、タイトル画面での消費方法を「いますぐバトルで最強生成」と「設定変更」の2つのみで行っているため、目標のSeedに到達するための消費経路が貧しく、Seedによっては1000回を超える設定変更を行う必要があり、消費に多大な時間を要するケースがありました。

そこで今回消費方法に活用したのが、70日目の記事でかけらさんが提案していた「いますぐバトル」と「つないでバトル」の画面遷移時に発生する消費を組み合わせた消費方法です。今まで2つしかなかった消費方法が4つになるため、目標Seedに到達するまでの自由度が格段に上がり、多すぎる設定変更に悩むことがなく、平均20~30回程度まで抑えることができます。この遷移時の消費と消費経路を検索する拡張メソッドを、夜綱さんとJohn兄貴がPokemonXDRNGLibraryに実装して下さったこともあり、ID調整自動化にも活用させていただきました。

 

 

3.ID調整自動化

①プログラムの入手

まずはID調整自動化に使用するプログラムの入手です。以下のGoogleドライブより、nxcファイルをダウンロードして下さい。

※ NX Macro Controller用です。GC(GBA)自動化の導入はこちらの記事を参考にしましょう。

プログラム作成に当たっては夜綱さんが公開しているライブラリである

PokemonPRNG
PokemonXDRNGLibrary

をお借りしました。ID調整自動化プログラムに使用しているライブラリにはXDDBも含まれていますが、それでも2MB程度とかなり容量が小さいです。

 

 

②事前設定

プログラムをNX Macro Controllerで開くと、nxcファイルの同階層に「XD_ID調整自動化」というフォルダが生成されます。その中に入っている「設定.exe」ファイルに諸情報を入力して下さい。目標SeedはCosearchまたはXDQuickBattleSearch(現在は非公開)を使って検索します。意外と知られていませんが、XDでもCosearchでSeedを検索することができます。exeファイルに入力するSeedは名前入力画面に突入時のSeedではなく、ID決定時のSeedを入力します。

突入時のSeedは目標Seedの2000F前のSeedに自動計算されます。空白時間は基本変更する必要はありませんが、ズレが大きい場合は各自で修正してみて下さい。プラスにズレた場合は空白時間もプラスします。また、現在のTID・SIDの入力をしないと、消費数がブレる場合が多いので、必ず設定するようにして下さい。

許容する消費数の上限は最適な消費数が自動で設定されます。算出はニアトさんの記事を参考にしました。

 

 

③プログラムの実行

事前設定が終わったらプログラムを実行します。

流れは「目標Seedまでの消費が許容範囲内のSeedを引けるまで、初期Seed厳選」→「ダブルバトルで毎秒4192.3の高速消費」→「消費終了後に残り消費数が30万以下になったら、高速消費終了。30万以上なら再度高速消費」→「いますぐバトルの最強生成、いますぐバトル&つないでバトルの画面遷移、設定変更を利用して名前入力画面の突入Seedまで端数消費」→「最初から始めるを選択して、名前入力画面に移動。名前入力とフレーム合わせ」→「TIDを画像認識して目標のIDと一致すれば終了。合わなければ初期Seed厳選に戻る」となります。

NXのオプションでWebHookのURLを設定していれば、高速消費に移行する際、高速消費が終了した際、IDを確認した際にメッセージが送信されます。乱数に成功したけど、目標Seedが分からない場合はログやイーブイのステータスから確認すれば良いです。

 

 

4.おわりに

CoのID調整自動化プログラムをベースに組むことができたので、1週間で完成させることができました。CoとXDの両方の乱数処理を学ぶことができたので、今後の自動化の幅が広がったなぁと思います。

また、今回はID調整の自動化を作成しましたが、こちらをベースに初期Seed厳選と消費を行うプログラムを作ろうかなとも思っています。

需要が高いであろうID調整自動化は一通り作り終えたので、少し休みたいところですが、アドカレ2023延長線366日アドカレ2024本編が残っているので、まだまだ気は抜けません。




以上の内容はhttps://dokudenpa.hatenablog.jp/entry/XDIDより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14