SM孵化乱数

SM色孵化乱数に成功しましたので記事にします。

前記事→SM孵化乱数に関するあれこれを読んでおくことをおススメします。

・参考文献(読んでおくことを強くおススメします)
ろいしんブログ様 SM孵化仕組み検証
ろいしんブログ様 ポケモンSM乱数調整について
ぽよノート様 SM孵化の乱数列生成アルゴリズムについて
ぽよノート様 Tiny Mersenne twisterの逆算
oupoの日記様 出力関数が線形な場合のTinyMTにおいて連続する4つの乱数値からstateを得る
ただの雑記byさき様 SM孵化乱数列を計算する


用意するもの
・SM孵化乱数ツール(後述)
・国籍と性格の違うコイキング♂♀(個体値をそれぞれ特定していると尚よい)(ボールが違うと尚よい)
・赤い糸
・変わらずの石2個
・目的の個体を孵化するための親(乱数の下準備を済ませてから調達も可能)



SM孵化乱数ツールについて
2016/12/21時点で私が認識している限り三人ほどツールを公開していらっしゃいます。
本記事ではくあん様のSM孵化乱数ツール(DL先SM孵化乱数調整ツール)を用いて説明することにします。


※本記事ではver1.15aに対応しています。更新の内容によっては作業が楽になっている部分がありますのでよく確認してください。


step1 現在seedを特定する
今作の乱数ではDS本体の時間を変更して初期seedを調整するという作業ができませんので、まずは自分のロムの現在のseedを求めることから始めます。

預け屋にコイキング2匹を預けます。この時、両方に変わらずの石を持たせます。

次に、以下の手順を繰り返します。
1.タマゴができたら受け取りを拒否(破棄)する。
2.即座にレポートを書く。
3.タマゴができたら受け取り、孵化させる。
4.産まれた個体の性格をメモする。(必要ではないですが性別・ボールもついでにメモするとミスが減ります)
5.レポートを書かずにリセット。

1~5を127回繰り返します。127匹分のコイキングの性格を確認することができたら終了です。
この作業が最も今作乱数の大変な部分であり、ミスが多発するポイントとなっています。

確認した性格から現在seedを求めます。
さき様のSM孵化乱数列検索ツール(WEB版)に性格を入力します。
このとき、♂親から遺伝した性格を0♀親から遺伝した性格を1として127桁の0と1の羅列にして入力します。

参考までに私が実際に入力した形式は以下
0100011101101101001111110000000000110111010111011110101110010110011011000001110010111101111010111111111101100000101111110101011

性格確認にミスがなければ検索結果に16進数8桁の数字が4つ出たはずです。これらが現在seedとなるので確実にメモしましょう。
私の場合は以下
35c26e3a 69a19f86 e26b7726 26269592

一度現在seedを特定したロムでは、孵化をする場合にはタマゴをいくつ受け取りいくつ拒否したかという詳細な情報を全て記録しておかなければならないことに注意してください。





step2 乱数列の確認
SM孵化乱数ツールを起動します。

個体検索タブを開き、検索範囲のボックスに先ほど求めた現在seedを入力。
消費数は0~150、その他ボックスの国際孵化にチェックを入れリストを出力します。

孵化リストが出力されたはずです。
step1の作業のときに性別をメモしていた人は、リストの0~127付近を確認すれば性別の並びが一致していることが確認できます。
ただし、ツールで出力された消費0~127の位置と実際の並びとは多少ズレがあるはずです。
これは孵化の仕様が完全に解明されていないこと、ツールの作成者がそれぞれ違うために統一した処理がなされていないことや、孵化スキームにおいて性格遺伝判定が最初でないこと等が原因です。
なのでまずはこのズレを修正します。


step1で用いたコイキングに今度は変わらずの石を持たせずに預け屋に預けます。
step1の作業を終えてタマゴができてしまっている場合は受け取らずに拒否して持ち物を回収してください。

一つタマゴが出来たら孵化させ、性格を確認します。この性格が出力したリストの消費数122~127付近にあったらその位置が正しい現在の位置だった場所です。
タマゴを一つ受け取ったことで更に消費が発生しているので、リストにある「受け取り消費」の数字分あなたのロムは消費が進んでいます。
例えば、タマゴの性格が消費数125の位置と一致していて、その欄の受け取り消費が20となっていた場合現在の消費数は125+20=145です。
次のタマゴの個体は消費数145の欄と一致します。
このことを理解し、自分のロムが今消費数いくつなのか、それを確認するにはどのような手順を踏めばいいのか、これらを把握しておけばもはや乱数調整は成功したも同然となります。

ちなみに出力したリストと全く結果が合わない、一致する箇所が見当たらない場合は設定のミスまたは性格確認でのミスの可能性が高いためしっかり確認してください。





step3 狙いの個体を孵化させる
あとは自分の狙いの個体が消費数いくつで生まれるのか検索をかけ、その消費数まで乱数を消費してタマゴを作るだけです。
あらかじめロムのTSV(色違い判定に用いるもの)を特定していれば色違いで検索をかけることも可能です。
ここでは消費数の調整の話をしておきます。

本作で孵化乱数の消費が発生するのは
タマゴを拒否する→1消費
タマゴを受け取る→15~50消費ほど(ツールで確認可能)
の以上2パターンです。
これ以外の消費方法は現在発見されておりません。
よってこの二つを組み合わせて目的の消費まで行く必要があります。

必要消費が少なく30程度で済む場合は、30個タマゴを拒否するなり、タマゴを一つ受け取ったときの消費をリストで確認して残りを拒否で消費するなりで容易に達成できます。
ただし、色違いを狙うとなると話は別で、数千消費がザラにあります。

ここで使うのがツールに実装されている連続孵化リストのタブ。
こちらのタブでは、「タマゴを拒否せずに連続で受け取っていく場合の連続個体リスト」を出力できます。
消費数もしっかり表記されているため、こちらのリストを上手く使えば消費数を調整しやすくなります。

実際の例でいきますと、私は消費7108の個体を狙う場合に、連続孵化リストを確認しながら219個タマゴを受け取り7080消費を行いました。
このあたりは個人の匙加減や親の都合で変動するので、ツールを使いこなしリストと睨めっこしながら決めてください。

ちなみにタマゴ受け取りの消費数は
赤い糸を持たせたり、国際孵化や光るおまもり所持で増え、
メタモンを親にしたり、パワー系を持たせると減ります。

※Sn様のツールだと自動で受け取り数、拒否数を計算してくれる機能が実装されているようです。

目的の消費数まで到達したらタマゴを受け取り乱数調整は終了となります。
終わったら、最終的に消費数いくつまで乱数が進んだかを記録しておいてください。次の孵化ではそこから消費がスタートします。

成功画像です↓


step1で求めた現在seed 35c26e3a 69a19f86 e26b7726 26269592からカウントして25842消費の個体です。

次は色孵化をするための下準備において記事にする予定です。

質問はコメントかツイッターにて。
ツイッターの方が迅速に対応可能です。
また、本記事では詳細な説明を敢えて省いた部分がありますが、冒頭の参考文献を読んでいただければ基本的に自己解決できるものばかりです。