Cギア使わないタマゴの乱数調整

もしかしたらやってる人いるかも知れない?けど、考えた通りうまくいったので簡単に書いておく。

 いま主流でやられている方法は初期シード合わせがフレーム単位でめんどうだけど、Cギアを使わずゲーム開始時の初期シードをそのまま使う場合、初期シード合わせは秒単位で良いのが最大の利点。秒以外のファクターもあり百発百中とは行かないまでも、適当にやっても初期シードが合うのでとても楽です。
 あとCギアだと遺伝や性格はほぼ制御できず運任せという感じだけど、Cギアを使わない場合、一旦成功してしまえばその再現が簡単にできるのが利点。
 一旦軌道に乗れば、大抵10分かからず5Vが出せます。ただ、現状だと6Vを出すには非常に骨が折れるので、6Vがほしい時は今までの方法を使うのが無難かなー。

基本的な理屈

・タマゴの上書き前の個体値は、個体値乱数(メルセンヌツイスタ)の8〜13番目の乱数を用いて計算される。
・タマゴの遺伝するステータス、遺伝元、性格、性格値、かわらずのいしの判定などは性格値乱数(64bit線形合同法)を用いて計算される(具体的な方法は不明)。しかし、ペラップの鳴き声を使うことで1ずつ?消費できることが分かっている。
・これらの二つの乱数列(個体値乱数、性格値乱数)はゲームスタート時(the pokemon campanyって出る前くらい)に決定され、どちらの初期シードも共通の起源を持つ。

→ある時間設定での個体値乱数列の8〜13番目に個体値31となる乱数が二つ以上含まれていれば、タマゴの上書き前の個体値に31が二つ含まれるということなので、そこを遺伝で上書きされないようにペラップで性格値乱数を制御すれば、5V程度の個体値であれば比較的簡単に出せるようになる。

手順

1、時間設定を適当に変更しつつ、キュレム等の固定シンボルを使って個体値乱数の8〜13番目でどのような個体値が出てくるか調べる

 固定シンボルをゲームスタート直後の乱数が消費されていない状態で捕まえると、個体値乱数の1〜6番目の乱数で個体値が生成される。実際に知りたいのは8〜13番目なので、そこの個体値を知るためにはエンカウント前にいくつか乱数を消費する必要がある。
 消費する方法は現状128歩ごとに発生するなつき判定(手持ちの数だけ消費)だけなので、手持ち五匹でなつき判定を起こし、5個乱数を消費してからエンカウントするのが理想。
 もちろん五匹だと5つしか乱数を消費できないので、捕まえたキュレム個体値で分かるのは個体値乱数の6〜11番目。ほんとに知りたいのは8〜13番目なので、これで分かるのは8〜11番目の四カ所。もしこの四カ所に31が一つでも含まれていれば、12〜13番目も調べる、という風にやると効率がいい(最初に10個乱数を消費してからエンカウントすれば11〜16番目が分かる)。
 ちなみに固定シンボルとタマゴの個体値はHABCDSの順に決定されるので、5消費してから捕まえたポケモンのBCDSの個体値がゲームスタート後すぐにタマゴをもらった時のHABCの個体値に相当する。

こういう調査を時間設定を変えながらひたすら繰り返し、いい時間設定を探すのが最初の関門。

2、実際にタマゴを孵化してみて、31以外の部分に遺伝による上書きが起こるような乱数消費数を探る

 1で調べた遺伝前個体値の31以外の部分四つのうち、三つを遺伝によって個体値31を上書きするような乱数消費を探すのが目標。
 上で書いたとおり、ペラップで進む乱数は性格値乱数のみなので、タマゴを貰う直前にペラップに乱数を使わせると遺伝前個体値は全く変わらず、性格や遺伝する個体値、遺伝元などだけが変わる。
 したがって、卵を貰う前にペラップにしゃべらせる回数を一回ずつ増やしていけばいずれは理想的な遺伝パターンが見つかるはず。



めっちゃアナログな方法だけど一応こんな感じでやってみたらうまくいきました。ツールいらずw


いくつか注意点。

遺伝上書き前に31になる部分二つと遺伝で上書きさせる31三つで5Vになるという計算なので、上書き前の個体値31の二箇所がこうげき&とくこうだと本来作りたいはずのこうげき以外5V、とくこう以外5Vにはならないのでちゅうい。
(電源オン時の)初期シードは、ボタン入力に影響をうけるので、最初のロゴが出るまではボタンには触らないようにする。
あと初期シードは月と日が掛け算になってたりとかはせずすべてバラバラなのでどこをずらしてもOK。
ただ、ボタン入力以外でもぶれるファクターがあるらしく百発百中というわけには行かないようです。
?での捕獲前の乱数消費をスムーズに行えるようになつき判定直前でセーブするのが必須。数時間はかかるので律儀に毎回128歩あるくのはめんどう。
変わらずのいしやパワー系は使ってもOK。
一旦理想的な遺伝パターンを見つけて5Vを出せるようになれば、種族を変えたり遺伝させる性格を変えたりしても大体同じ設定が使える。ただ、ktxadさんのブログにもあるとおり、メタモンが絡んでいる場合と絡んでいない場合だと結果が異なってくる感じ。


ぐだっと書いたのでわかりにくいけど誰か偉い人が分かりやすく解説してくれることを祈るw