# ポケスポット乱数調整 備忘録 乱数調整がテーマなので、苦手な方はブラウザバックをお願いします。 夜綱さんのツイートに画像を付けて補足する個人的な備忘録 <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">XD グライガーの乱数調整に成功しました。(2022/1/23)<br><br>陽気 31-31-31-0-31-31<br>seed:0x89A18D27<br>強制消費1:7447+4 <a href="https://t.co/3CD6PDUXzn">pic.twitter.com/3CD6PDUXzn</a></p>&mdash; メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1485220210823303173?ref_src=twsrc%5Etfw">January 23, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">XD アメタマの乱数調整に成功しました。(2022/1/25)<br><br>控えめ 31-0-31-31-31-31<br>seed:0x85b3123c<br>強制消費1:5687+4 <a href="https://t.co/jTzOfAyEHH">pic.twitter.com/jTzOfAyEHH</a></p>&mdash; メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1485799669481742341?ref_src=twsrc%5Etfw">January 25, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ポケモンXDの新要素である、ポケスポットに登場する野生ポケモンの個体生成は、出現判定時に種族/性格値(性格/性別/特性/色違い)が固定され、エンカウント時に個体値/XD特性が決定されるようになっており、従って2度乱数調整ポイントがあります。 ## 性格値の固定 1. seed+3消費のリストを作る 2. 「あと1歩で出現判定」状態でセーブする 3. seed厳選->大量消費->微調整 4. 1歩歩いて判定にかかったらセーブ、間違いがなければ必ず個体生成がなされる。かからなければリセットして3へ戻る 5. 色違いであることを確認してリセット ### seed+3消費のリストを作る <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">xdseedはミラーボレーダー破壊後に限定した上で、出現判定が入るまでのなつき判定の回数を3回と見積もって計算しているが、これは3回固定ではないため、失敗する可能性がある。ポケスポット判定のギリギリまで歩いてからセーブすることで不確定要素を排し、レーダーが生きていても調整可能になるはず。</p>&mdash; 夜綱、 (@sub_827) <a href="https://twitter.com/sub_827/status/1268009782083858432?ref_src=twsrc%5Etfw">June 3, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> - xdseedの「ポケストップ」タブで、seed:0/手持ち1匹/消費数999999999に設定して、検索条件を入力してseedが1巡するまで検索してコピー (0xFFFFFFFF / 999999999 = 4回とちょっと) - ウソハチが逃げ出していない or ウソハチ捕獲後以外は「ウソハチ出現判定あり」にチェックを入れるのを忘れずに ```ps1 # 目標のseed一覧テキストファイル shiny_list.txt に記載されたそれぞれのseedを3消費進めたseedを、shiny_list_advance.txt に保存する Remove-Item shiny_list_advance.txt foreach($strSeed in ([string](Get-Content shiny_list.txt)).Split(" ")) { [UInt32]$tmp=[System.Convert]::ToUInt32($strSeed, 16) [PokemonPRNG.LCG32.GCLCG.GCLCGExtension]::Advance([ref]$tmp, 3) *>$null $tmp | Out-File -Append shiny_list_advance.txt } ``` - このseedいずれかのseedに合わせて出現判定を踏むことで、指定した個体が出現する ### 「あと1歩で出現判定」状態でセーブする <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">・ポケまんま置いてからラボに直行して最短で↑移動してガレージ内に入る<br>・左下スタートで28往復+1往復以内に判定が入るので、28往復したら一度セーブ。その後リセットを繰り返して判定が入るタイミングを掴み、歩数調整して再度セーブ。(判定は1/3で通るので、出なさすぎたら28往復やりなおし)</p>&mdash; 夜綱、 (@sub_827) <a href="https://twitter.com/sub_827/status/1268008502804353024?ref_src=twsrc%5Etfw">June 3, 2020</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> - ポケまんま置いてシャドーのラボ左ガレージに直行、左下端から28往復でセーブ(ORCA GC Controller) - 1往復ごとにミラーボレーダーのメッセージ送りもしているので、27往復はしてくれるはず... ``` # ポケまんま置く Press A -i=500 # マップ遷移: オアシスから移動する例 Press dD -d=2500 -i=2000 Press dR -i=200 Press A -i=6000 # シャドーのラボ移動 Press dU -d=2100 Press dL -d=250 Press dU -d=2000 -i=1000 Press dU -i=2000 Press dL -d=2000 -i=200 # 28往復 # ミラーボレーダーのメッセージ送り Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press dR,dL -d=2600 -i=200 Press B,B,B -i=200 Press St # ここでセーブ ``` - 手作業で2~3往復して、出現したら場所を記憶してリセットを繰り返し、どこで判定が発生するのか確認する - 出現判定は1/3なので、何度か試す - 例えばここ ![](https://i.imgur.com/J4xDwF1.png) - 1歩手前まで歩き、セーブ - 1歩歩いたら出現判定を踏めることも確認しておくと精神衛生上良い。1/3なので何度か試す ### 1歩歩いて判定にかかったらセーブ - seed合わせに間違いがなければ必ず個体生成がなされる。かからなければリセットして3へ戻る - 続きから始める: 14消費, 持ち物消費: 8 ### 色違いであることを確認してリセット <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">性格一致色違いは1000件程度該当します、いますぐバトル待機時間にするとおよそ20分以内の間隔です。seedメモするの忘れてしまいましたが、そう難しくはありません [1/2] <a href="https://t.co/ILQorFTi3U">pic.twitter.com/ILQorFTi3U</a></p>&mdash; メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1485799762138116096?ref_src=twsrc%5Etfw">January 25, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ## 個体値/XD特性の調整 1. xdcheckで目標の個体を検索する 2. 移動前に合わせるべきseedを算出する 3. 乱数調整をしてエンカウント ### 移動前に合わせるべきseedを算出する - 事前にステージ遷移に係る消費数を調査する - ロード後seed特定→移動→腰振り観察で移動直後のseed特定 - `[PokemonPRNG.LCG32.GCLCG.GCLCGExtension]::GetIndex($current,$start)` みたいな - 例1: C05Vグライガー(岩場) ``` [開始seed]->[強制消費1,2を差し引いたseed]->[移動前のseed] 56BC7BBB->f91d90c(4+9)->9a18d27(7447) 8BC42D0F ->fc9ea9ac(4+13)->64ba3f47(7447) ->2c6051bf(4+12) ->b129030(4+9) ->7dcbae33(4+8) D6BC7BBB->8f91d90c(4+9)->89A18D27(7447) よって 9a18d27 64ba3f47 89A18D27 に調整する ``` - 例2: A05Vアメタマ(オアシス) ``` 2405CA1E->BCE0E732(4+8)->d054fd5(5687)lv13 9243BC41->D1172A85(4+8)->5b3123c(5687) x A405CA1E->3CE0E732(4+8)->8d054fd5(5687)lv12 1243BC41->51172A85(4+8)->85b3123c(5687)lv10 218451925, 2365935573, 2243105340 ``` ### 乱数調整をしてエンカウント - 歩数が多いとなつき消費やミラーボレーダー判定が入りずれる?シャドーのラボ外の端で調整すること - 続きから始める: 24消費, 持ち物消費: 13 <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">「あ! あれは 野生のアメタマだ!」画面でも腰振りを観察することで2消費ずつできますが、ステージ遷移後の残り消費数が奇数だとリセットになってしまいます。事前にステージ遷移に係る消費数を調査(ロード後seed特定→移動→腰振り観察で再度seed特定)し、差し引いたseedに調整します [2/2] <a href="https://t.co/olN0J2dyzZ">pic.twitter.com/olN0J2dyzZ</a></p>&mdash; メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1485799893667295232?ref_src=twsrc%5Etfw">January 25, 2022</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>