1.はじめに
この記事は Pokémon Past Generation Advent Calendar 2023 の245日目の記事です。FRLGでは243日目でID調整自動化、244日目でストーリー自動化のプログラムが紹介されています。この流れに乗るしかないと思い、固定・野生乱数の汎用自動化プログラムを作成しました。
FRLGは通常の個体決定フレームに加え、初期Seed決定フレームを合わせる必要があり、更にはおしえテレビの待機フレーム、キー入力による初期Seedの変化など考慮する項目が多いです。
今回、紹介するプログラムはそれぞれのフレーム設定や、キー入力の設定に加え、固定シンボル全てに対応し、サファリ・釣り・いわくだき乱数も可能です。また、色違い・素早さ判定が通るまでにリトライする機能や、歩きエンカウントも可能でかなり汎用的なプログラムに仕上がりました。
FRLG乱数の基本的な知識については以下の記事が分かりやすかったです。流れが頭に入ってないという方は、まず以下の記事を参考にすると良いです。
・固定乱数における初期Seed決定から、消費までの流れ。
・野生乱数における初期Seed決定から、消費までの流れ。メソットズレについて。
・初期Seedを変化させるキー入力について。
2.固定・野生乱数自動化プログラムの事前準備
※ Nx Macro Controller用のプログラムです。GC(GBA)自動化の導入はこちらの記事を参考にしましょう。
ゲームでの準備
マクロの実行にあたっては、ゲーム側においては以下の準備をして下さい。
・ 野生乱数の場合は2匹目の一番上の技を「あまいかおり」にする。
・ ゲームボーイプレイヤーの画面設定を「フル」にする。
・ 設定で「はなしの はやさ」を「はやい」にする。
・ せんとう エフェクトを「みない」にする。
・ ステータスを確認する場合は手持ちを開けておく。
レポートを書く場所や、狙うポケモンによる独自の設定については、事項で解説します。
Nx Macro Controllerでの設定
・「Var Frame1」に初期Seed決定フレームを入手する。
・「Var Frame2」に個体決定フレームを入力する。
・教えテレビを使う場合は「Var TeachyTV」を"あり"にする。
・教えテレビを使う場合は「Var Frame3」に教えテレビの待機フレームを入力する。(Frame2 + Frame3×313が個体決定フレームになる。)
・初期Seed決定時にキー入力をさせる場合は「Var KeyInput」に75~78行目の該当するキー入力方法をコピペする。
・「Var Encounter」にエンカウントタイプを入力する。("固定" or "野生")
・「Var Pokemon」に固定乱数で狙うポケモン名を入力する。
・歩きエンカウントする場合は、「Var WalkingEncounter」を"あり"にして、ビードロを使う場合は「Var Flute」を"あり"にし、「Var Steps」にエンカウントする歩数を入力する。
・色違いが出現するまでループさせる場合は「Var Shiny」を"あり"にする。
・素早さ判定が通るまでループさせる場合は「Var SpeedCheck」を"あり"にする。
・素早さ判定する場合は「Var ActionSpeed」で相手ポケモンの行動順を入力する。("先制" or "後攻")
・サファリで乱数する場合は「Var Safari」に114~119行目の該当するサファリエリアを入力する。
・サファリで捕獲するまでループさせる場合は「Var CaptureSB」を"あり"にし、サファリ以外の個体をマスターボールで捕獲する場合は、「Var CaptureMB」を"あり"にする。
・いわくだき乱数の場合は「Var RockThrow」を"いわくだき乱数"にする。
・釣り乱数の場合は「Var Fishing」を"釣り乱数"にする。
共存できない設定、フレームが短すぎる場合、不正な固定シンボル名が入力されると、エラーメッセージが出て、プログラムが停止します。
なお、Frame1の設定は眼鏡ポッポさんが公開している「初期Seedリスト」とリンクさせています。公開先はコチラです。
3.プログラムの実行場所
設定が完了したら、所定の位置でレポートを書いて、プログラムを実行します。それぞれの実行場所、独自の準備、要点についても紹介します。
野生乱数
通常のマップ
野生の場合は2匹目の一番上のわざを「あまいかおり」をして、任意のマップでレポートを書いて実行します。マップによっては、NPCやフィールド消費でSeedがズレるので、各自でフレームを調整して下さい。歩きエンカウントさせる場合は初期Seedによって、何歩目で遭遇するかが決まっているので、事前調査が必要となります。
サファリ
以下の場所にレポートを書いて実行します。通常のあまいかおりを使う乱数であれば、スプレーを使って実行します。捕獲の自動化ができるので、色ラッキーや色ハクリューを捕獲するまで、ループさせることも可能です。
歩きエンカウントでは、「サファリゾーン北エリア」、「サファリゾーン東エリア」で乱数する場合、マップ移動時にエンカ床を踏むので、目的のエリアの最初のエンカ床でスプレーが切れるように調整する必要があります。
「サファリゾーン北エリア」の場合は写真の位置で「むしよけスプレー」を使い、柵に沿って受付まで移動することで、1歩目でスプレーを使い切ることができます。
「サファリゾーン西エリア」は写真の位置です。
いわくだき乱数
いわくだき乱数の場合は「こわせるいわ」の前でレポートを書きます。手持ちにはいわくだき要員を用意します。いわくだきエンカは初期Seedによって、何回目にエンカウントするか決まっていますが、1回目でのエンカウントにしか対応していません。RSEと同様に「こわせるいわ」はNPC扱いされているため、1個のみで乱数を行い、長い待機時間の場合は「おしえテレビ」を使って消費するとよいです。それか手動で壊したり、自分でプログラムを書き換えたりしても構いません。
釣り乱数
釣竿をべんりボタンに登録して、水の前でプログラムを実行します。こちらはC#スクリプトを使用しており、釣りが失敗した場合、釣り消費を差し引いてくれます。(FRLGだとそこまでメリットはないですが。)
固定乱数
各固定シンボルの実行場所について解説します。なお、それぞれ待機時間を調整しているので、基本的には同じフレーム設定を使いまわせます。
フシギダネ、ヒトカゲ、ゼニガメ
ゲームを最初から始めた直後のイベントで、モンスターボールの前で実行します。
コイキング
「4ばんどうろ」のポケモンセンターで、コイキングを売るおじさんの前で実行します。
ピッピ、ケーシィ、ミニリュウ、ストライク、カイロス、ポリゴン
「タマムシシティ」の景品交換所の受付前で実行します。
オムナイト、カブト、プテラ
「グレンじま」のポケモン研究所にいる研究員に化石を渡し、一度マップ移動してから、再び研究員の前に移動して実行します。
イーブイ
「タマムシシティマンション屋上」のモンスターボール前で実行します。
サワムラー、エビワラー
「ヤマブキシティ 格闘道場」のモンスターボールの前で実行します。
ラプラス
「シルフカンパニー 7階」の青年の前で実行します。
トゲピー
「みずのめいろ」でおじさんの前に行き実行します。受け取りメッセージは一度キャンセルして下さい。孵化まで自動で行うため、「じてんしゃ」を便利ボタンに登録する必要があります。
スリーパー
3のしまマヨ捜索イベントで、「きのみのもり」でマヨの前で実行します。
マルマイン
「むじんはつでんじょ」でモンスターボールに擬態しているマルマインの前で実行します。
カビゴン
「12ばんどうろ」または「16ばんどうろ」でポケモンのふえ入手後に、カビゴンの前で実行します。
フリーザー
「ふたごじま」でフリーザーの前で実行します。
サンダー
「むじんはつでんじょ」のサンダーの前で実行します。
ファイヤー
「ともしびやま」の山頂でファイヤーの前で実行します。
ミュウツー
「ハナダのどうくつ」の最奥でミュウツーの前で実行します。
ルギア
「へそのいわ」でルギアの前で実行します。
ホウオウ
「へそのいわ」でホウオウの一歩手前で実行します。
デオキシス
「たんじょうのしま」の三角形の物体を中心に移動させた後に実行します。
ライコウ、エンテイ、スイクン
ネットワークマシン完成直前に「ニシキ」の前で実行します。遭遇まで自動で行います。
4.色違い判定
「Var Shiny」を"あり"にしている場合は、色違いが出現するまでループし、NXのオプションから、LINE Notifyトークンを設定していれば、色違いが出現した際に通知してくれます。ラプラスやイーブイなど、受け取るポケモンにも対応しています。
5.素早さ判定
色違いを狙わない場合や、メソズレを狙う場合に使える機能です。「Var SpeedCheck」を"あり"にして、「Var ActionSpeed」で相手ポケモンの行動順を入力すると、素早さ判定が成功するまでループをし、LINE Notifyトークンを設定していれば、素早さ判定が成功した際に通知します。
自分のポケモンが使用する技は1匹目の1番上の技となります。素早さ判定をする際は「オレンジバッジ」による素早さ1.1倍補正を考慮して下さい。
また、相手の攻撃で倒されるパターンは想定してないので、注意しましょう。
6.捕獲自動化
サファリボールまたはマスターボールのみに対応してます。サファリで捕獲するまでループさせる場合は「Var CaptureSB」を"あり"にし、サファリ以外の個体をマスターボールで捕獲する場合は、「Var CaptureMB」を"あり"にします。捕捉率の低いラッキーや、ガルーラ、ハクリュー等を捕獲するには便利な機能です。
7.おわりに
ID調整、ストーリー、固定・野生乱数の自動化の3つが揃い、かなり欲しい個体を捕まえやすくなったと思います。フォロワーには毎日、色理想ミュウツーを捕獲するゴロツキも現れるレベルです。
ただし、FRLGで手に入らない「ダイブボール」や「プレミアボール」などのオシャボで捕獲するには、100匹捕獲してポケモンボックスから輸送する必要があります。(ついでに捕獲要員とPP回復アイテムも。)
また、RSEでは「ゴージャスボール」の回収効率が悪く、アキホから搾取するのが早いので、今後の自動化ではその辺に対応できればと思います。