【ポケモン剣盾乱数調整】星3~星5の柱でseedを特定する方法

概要

・従来の方法では、V固定が1箇所だけのレイドバトルからでないとseedの逆算ができなかった。

・特定の条件を満たす個体が出るまで粘ることで無理やり逆算させた。

使うツール…Xoroshiro-inverse(v1.2以降)

追記 現在では環境が整備され、使いやすいツールが公開されています. 個人的なおすすめは、ぼんじりさんのSW Seed Calculatorです。2020/2/2現在で使用できるのはWindows限定ですが、検索速度がものすごく速く、UIも親切です。GPUを使った並列計算も可能になっています。
また、Discordの乱数鯖のbotを利用することで、Windows以外でも(スマホからでも)seedを求めることができます。

理論的なところなので興味のない人は飛ばしてね

でも個体値パズルについてはなんとなくでいいから理解してね

・pattirudonさんのツールのアルゴリズムについてはoupo先生のしっかりした解説を読んでね。

・要約すると、V固定箇所が1箇所の場合、V固定箇所(3bit)-個体値(5bit *5)-特性(1bit)の連続した(初期seedからの位置が決まっている)情報が得られるので、現実的な時間で総当たりができる。

・星3~4はV固定が3箇所、星5は4箇所あり、個体値から得られる情報量が減る。総当たりする範囲を広げて対応しようとすると、計算量が膨大になる(個体値が1箇所不明になるだけで単純に32倍、そこにV固定の順番や再計算の判定が入る)。【12/25追記 : V固定数は星だけでなく種族にも依存するようです。星3でV固定2箇所だったり、星4でV固定4箇所だったりするポケモンが確認されています。以下。「星3~4」は「V固定3箇所」、「星5」は「V固定5箇所」と読み替えてください。内容を理解すればV固定2箇所の場合でも対応できるかと思います。】

・しかし、必要なのは「連続した5箇所分の個体値情報」であり、1体から求める必要はない。

7世代孵化乱数の調査で個体値パズルを埋めた。

・日付変更による消費はxoroshiroを進めるわけではないので、コイキング127匹とまったく同様にできるわけではない。

・しかし、星3~4と星5でV固定処理の回数が違うため、V固定4回目に再計算がちょうど3回入れば、連続した個体値が5箇所分観測できることになる。

スキップ無し

V固定位置3と4の間に再計算が無い場合は、星3~4と星5の個体値の違いは1箇所がVに書き換わっただけになる。

かぶりあり

既にV固定されている位置が再度選ばれると再計算が発生する。このように、4箇所目のV固定で被りが2回発生すれば、0-13-9-16-7という5箇所の連続した個体値が観測できる。

→ つまり星1生成(V固定-個体値-個体値-個体値-個体値-個体値)と同じ条件になるので、検索が可能。

・星3~4で固定されている3箇所(上の図だとH,C,S)のうち、どれが最後に固定されるのかは捕まえた個体からはわからないので、全部調べてみるしかない。アップデートで対応してもらいました。感謝。

具体的なやり方

・前提知識:4日目以降は星の数とポケモンの種類が固定されていない。

1. セーブ地点から3回日付を進める(一気に3日進めても1回しか日付変更してない扱いになるので必ず分けて行うこと)

2. 星3~4と星5で個体値を確認し、確定V以外の個体値が被ったらリセット。(例1: 星3が出た時0-31-31-2-31-3, 星5が出た時31-31-31-2-31-3 → Hが31で固定され、再計算は起こっていない)

(例2: 星3が出た時31-24-25-2-31-31, 星5が出た時31-31-2-17-31-31 → 1回目のV固定位置が被ったため1回だけ再計算が起こり, 星3ではCが2だったが星5ではBが2になっている)

上の例1, 2のように条件を満たさなかった場合は、セーブ地点から日付を1回進めてセーブし、1.に戻る。個体値が被らなかったら3.へ。

3. 再計算されすぎていないか確認する。「星3~4の確定V以外の個体値の3つめを8で割った余り」が「星5の4箇所目のV固定位置」(H=0, A=1, ..., S=5)と一致しなかったら再計算されすぎているので、リセットして日付を1回進めて1.に戻る。

4. 1日後, 2日後の個体情報(性格、性別、特性、個体値)を調べる。絞り込みに使うので、星3が理想だが、星4~5でも問題はない。

5. Xoroshiro inverseを起動し、情報を打ち込んで検索をかける。特性や性別で絞り込めない場合は20分~30分かかる。

6. seedが特定出来た → おめでとう。

複数出てきた → RaidFinder等のリスト出力で3日後の個体値とかからどれが正しいのか探す。

出てこなかった → 残念。1.に戻る。

たぶんそのうちもっとわかりやすい解説とか、理解しなくても代わりにやってくれるツールとかが出るはず。。。

追記

再計算の条件は正確にはもう一つあります。8世代の乱数取得処理は0から5までの値が欲しいときに「0から7までの値からランダムに選び、6か7が選ばれたら再計算する」という回りくどいことをするためです。

追記2

星4でも4V固定のポケモンが存在するらしいです。メタモンは3V固定の星4と4V固定の星4がいるもよう。

いいなと思ったら応援しよう!