BW2孵化乱数の仕組みと方法

とりあえず仕組みと簡単に方法だけ。
ツールはまだ。作ってもちょいと時間かかる。
 ツールできました。→http://blog.livedoor.jp/x_x_saki_x_x/archives/54034134.html
閾値検証とかいろいろしてないのあるし間違えてたら教えて。
特性遺伝に関する検証をちょこっとやって該当部分を書き換えました。
一応、検証記事はこちら→http://blog.livedoor.jp/x_x_saki_x_x/archives/54090106.html


●仕組み
タマゴ受け取りor受け取り拒否後の個体値乱数列t[n]とt[n+1]を合わせて孵化乱数列{s[n]}の初期シード
 s[0] = (t[n]<<32) + t[n+1]
を決定する。
今作では起動時に個体値乱数列2消費があり、タマゴを受け取った際にも孵化乱数列決定前に個体値乱数列13消費があるので注意。
(この13消費はBWのときの名残?)
受け取りを拒否した時の個体値乱数列消費はなく、その後孵化乱数列決定で2消費。
この孵化乱数列は次のタマゴ受け取りまで保持され、次のタマゴの性格遺伝個体値特性決定に用いられる。
タマゴを一度も受け取っていない時は、初回起動時の個体値乱数列2つが用いられるらしい。(未検証)
このような決定方法なのでここではNPC消費は影響しない

シードの更新は性格値乱数列と同様
 s[n+1] = s[n] * 0x5D588B656C078965 + 0x269EC3
である。
s[n]の上位32bitをr[n]とおく。
この孵化乱数列を用いて、
0.特殊処理
 生まれるポケモンの候補が2種類ある場合乱数を1つ使ってどちらが生まれるか決定。
 ニドラン系など。
 該当する場合は以降使用する乱数が1つ次のにずれる。
1.性格
 今まで同様の(r[1] * 25)>>32で決定。
2.特性
 両親がメタモンでない場合(r[2]*100)>>32で特性決定。
  ♀親が特性1の場合
   0-79 特性1
   80-99 特性2
  ♀親が特性2の場合
   0-19 特性1
   20-99 特性2
  ♀親が夢特性の場合
   0-19 特性1
   20-39 特性2
   40-99 夢特性
 片親がメタモンの場合は1つスキップして(実際には上の処理もしてるらしいが)r[3]の最上位bitで特性決定。
  0の場合は特性1、1の場合は特性2。
3.遺伝
 2.の次のシードから今までと同様に決定。
 (r[n] * 6)>>32で遺伝個所(0~5がHABCDSに対応)、r[n+1]>>31で遺伝親(0:♂、1:♀)決定。
 重複は先に決めた方優先で、3箇所遺伝するまでnを2ずつ増やしてループ。
 パワー系を持たせている場合は先にその1か所遺伝したものとする。
 両親パワー系を持たせている時はどちらのを採用するかをここの最初で処理しているらしい。
 自分では未検証。
4.遺伝しない個体値
 3.の次のシードから3つr[n]>>27で決定。
 遺伝しない3箇所に順番(HABCDSの順)に割り振られる。
 
かわらずの石での性格遺伝は100%になった模様。
片親にかわらずの石を持たせても上記のに変化はなかった。

以上がタマゴ受け取り時に決まる孵化乱数列により決定される次のタマゴについての情報。
孵化乱数列の初期シードだけが決まるようなので、パワー系を持たせたりすると個体値が持たせない時と変わることがあるが、決め方は上記に則っている。
性格値のみがタマゴ受け取り時に決まる。
性格値もおそらく受け取り時の性格値乱数列を用いてr[n]>>32(xor 0x10000)で決まる。
xorは特性の整合性を取るため。
当然性格値に左右される性別や個性もここで決まる。
で合ってるはず。自分では検証出来てない。


●方法
ツールはそのうち出るでしょう。

1.検索
 何がしかの方法で目的のシードを検索。
2.準備1
 タマゴが出来た状態で小屋に入ってすぐのとこでレポート。
3.シード合わせ
 起動してシードを合わせる。
 小屋の中なら不定消費がないので確認しやすい。
4.シード決定
 外に出てタマゴ受け取りor受け取り拒否。
 孵化乱数列決定。
 こちらは個体値乱数列を使ってるので急ぐ必要はない。
5.準備2
 性格値も調整したい場合はタマゴが出来た状態で再度小屋に入ってレポート。
6.性格値決定
 今までとそう変わらん。
 ただNPC消費が多いうえに個性と性別を利用しないとずれの把握がし辛い。


こんな感じになるんだろうか。
少なくとも自分はこの流れで孵化乱数した。
6V特性一致までは成功。
通常色ならシード見つかれば比較的楽かと。
色違いはずれがひどすぎたのでとりあえず後回し。
多分不定消費のせいでそれなりのシード使わないと相当大変。

国際孵化あたりで12連続とかで光るシード使えれば相当楽になるかと。
 

ARサーチャー乱数の消費数

どこの乱数で性格を決めてるかだけ。
性格値は多分廃乱系統だと思うけれど検証してない。
それ以外の情報は他を見て。
これを踏まえてやると初めて使うシードでもいちいち確認する必要は皆無。

針の場所で常に消費数を確認しながらやった。


●禁伝系
パルキア以外は試した。
+6消費目のシードが性格決定に使われてる模様。
50まで消費したならbwseedlistのタマゴリストの56が該当する性格になるはず。

●霊獣系
3匹とも試した。
+11消費目のシードが性格決定に使われてる模様。

●上記以外
要するに普通の。
1匹目なら性別ありは+6消費目、性別なしなら+5消費目のシードが性格決定に使われる模様。
2匹目以降なら前のポケモンの性格決定に使われたもの+性別ありなら5、性別なしなら4つ後のものがそう。
性別の有無で消費数が変わるので注意。


まあ、これだけ。
3つ目の性別の有無によるずれは性別固定により廃乱系統の性格値決定方法を採用してるからだと思うのだが、先に書いたとおり個性を見ての検証等はしていない。
禁伝系が性別ありと同じとこで性格決めてるのも理由は知らん。
針だけでタイマーずれオフセット同時特定余裕だしいちいちオフセ確認とかする必要ないでしょ。
これ違うんじゃねとかあればシード針メモ送ったポケモンとか書けば検証するかも。


一応、ARサーチャー産は光らない。
http://www.smogon.com/forums/showpost.php?p=4292493&postcount=915


個体値乱数列は9+13n。
禁伝系は9、霊獣系は22。

BW2孵化乱数について

BW2色孵化乱数成功しました。
BW2孵化乱数の仕組みと方法
読めば分かるけれど、NPCが多くなったことは乱数の難易度に影響していません
タイマーずれは多いけどね。

ツールも作りました。
BW2孵化乱数用ツール

特性遺伝検証についてはこちら。
BW2特性遺伝検証



何となくBW2の孵化乱数してみたいなってことでいろいろ調べてみた。
というわけでタマゴ生成判定とかタマゴ出来た際の乱数消費から何か分からないかなとか調べてみた。
のだけれど、結局そんなのはどうでも良くて、何が言いたいかというと、
預ける前から次に出来るタマゴの性格・個体値・遺伝個所が決まっている可能性があるということ。

…まじかよ。



一応以下に簡単に検証レポを載せておく。
全て♂親とメタモンを預けている。
どちらも個体値特定済みで、出来たタマゴの個体値から遺伝個所は全て判明している。

まず、タマゴが出来た後レポートして5回タマゴを受け取って孵化した結果、性格・個体値(50測)・特性は全て同じで、性別は♂が3回、♀が2回出た。
また、その後何回か別のタマゴを孵化した結果、タマゴが出来た時点で性格・個体値・個体値遺伝・特性が既に決まっていると考えられる。

次に、タマゴ生成判定だが、17歩ごとに判定で性格値乱数列が1消費されているだろうことは分かったが、閾値等は不明。
メニューを開いてペラップ消費したらこの歩数はリセットされるよう。
17歩歩いただけではタマゴは出来なかったが、34歩歩くとタマゴが出来るシードがあった。

34歩でタマゴが出来るシードが見つかったということで、乱数消費について調べてみた。
預けるポケモンを2匹とも手持ちに入れた状態でレポート。
初期シードを合わせて起動してペラップの音で初期シードを確認した後ポケモンを預ける。
このとき性格値乱数列の消費はなし。
タマゴが出来るよう消費して34歩歩いた後ペラップの音を聞いたところ、34歩での2消費以外性格値乱数列の消費はなかった。
そして、タマゴを受け取る前に野生ポケモンを捕まえに行ったところ、個体値乱数列の消費なし(要するに2消費の奴だが)の個体値のポケモンが出現。
同じレポートから全く同じルートで今度はタマゴを受け取ってから野生ポケモンを捕まえにいったところ、個体値乱数列の消費が15(要するに17消費)のポケモンが出現。
タマゴを受け取る際の消費かと思われるが、性格も個体値も個体値遺伝も特性も既に決まっているので何に使うのかは不明。

そして、最後にタマゴの性格や個体値等が固定されるタイミングを調べた訳だが、適当な時間で上のレポートから起動して預けてレポートし、タマゴを作って孵化したところ同じ性格個体値特性のポケモンが生まれた。
また、再度このレポートから再開してタマゴ作って孵化してもやはり同じ性格個体値特性のポケモンが生まれた。
念のためポケモンを2匹とも引き取ってからレポートし、町をぶらついてから再度預けてタマゴ作って孵化してみたがやはり同じ性格個体値特性のポケモンが生まれた。
さらに、同じメタモンと別の♂ポケモンとを預けてタマゴを作って孵化したが、♂から遺伝する個所の個体値が新しい♂親のものに変わっただけで、性格個体値特性(の番号)は全て同じだった。


とりあえず検証したのはここまで。
まだいろいろ疑問点や調べたいことはあるけれどもこの先はまたの機会に。

自然保護区の色オノノクス乱数

第5世代初の色固定だったので気になって調べてみた。
個体値乱数列は別で再現したので性格値乱数列についてのみ。
図鑑集めるの大変だった…。


0.NPC等の不定消費確認
あると検証が面倒だが、10秒ほどメニュー閉じた状態で放置しても消費なかったので大丈夫かと。

1.消費数等確認
色オノノクスを捕まえる前後のペラップの音程から消費数は3。
同じシード消費数でシンクロ有無を変えると効くのと効かないのがあったので、そこに乱数を使用している。
性別特性がシードによって変わるので、性格値にも乱数を使用しているよう。
性格もシードによって変わるので、そこにも乱数を使用しているよう。
レベルは固定。
BWの他の個体決定も鑑みると、以上から上3つそれぞれで1消費しているものと推測できる。

2.検証
表ID:37373
裏ID:8331
初期シード:0xECA9D3DEDB790149
個体値:31-31-31-31-31-31
オフセット含め消費95~104までの10通りについて調べた。
消費数はペラップ音で確認した。
個性も見たかったので個体値は全て同じになるようにした。
シンクロと性格はbwseedlistの固定リストと全て一致。
性格値については性別は全て一致したが、リストとは特性が異なることがあった。
通常とは性格値の決め方が違うだろうから異なってもおかしくはないが。
性別が10個全て一致したのが偶然か否か。
特性が使う性格値乱数列の最下位bitで決まってるように見えて仕方がない。

・シンクロなしで捕まえた個体の表
シード番号性格値乱数列性別性格特性性格値 mod 6
96FFBE71F3すなお24
9759AFAFDEがんばりや13
9846FDE8C7のうてんき24
99020045CEおだやか20
10063BA207Eやんちゃ11
101CE3385FBのうてんき20
1022ACDC2D6やんちゃ20
10364391AC6れいせい20
1042E5D882Cさみしがり11
105AEF156FDゆうかん13
1060E7FFE83----
1071634F8A9----



ここから先の考察はもしまた気が向いたら。
あるいは解析結果が先に出るか。


~追記~

バトルサブウェイ対戦相手決定方法のコメント>>1より、過去の色ドラゴンタマゴと同様だとすると矛盾がなかった。
その性格値決定方法は、
 LID:乱数値の下位1Byte
 HID:TID xor SID xor LID xor 1
HIDのxor 1は性格値全体にxor 0x10000しているのと同義。
この通りであれば色ドラゴンタマゴと同様に裏IDの絞り込みができそう。

Nのポケモン

多分出てくるのは以下ので全部。
おもいでリンクして1ROMで各1匹まで?
6U、性別性格個性も固定?
性別あるポケモンは全て♂だった。
メグロコ3回捕まえたが個性全て同じ。
ゾロア以外は野生で出る。
BWに送るとエフェクトなし、説明文普通と同じ。
再びBW2に戻せばエフェクトまた出る。


場所ポケモンレベル性格個性特性
2番道路チョロネコLv.7おくびょう気が強いかるわざ
ヤグルマの森マメパトLv.13おくびょう気が強いきょううん
ヤグルマの森オタマロLv.13ひかえめ気が強いうるおいボディ
ヤグルマの森ドッコラーLv.13うっかりや駆けっこが好きこんじょう
リゾートデザートメグロコLv.22すなお気が強いじしんかじょう
リゾートデザートダルマッカLv.22むじゃき力が自慢はりきり
リゾートデザートズルッグLv.22のうてんき力が自慢だっぴ
リゾートデザートシンボラーLv.22おとなしい気が強いマジックガード
電気石の洞穴ガントルLv.28むじゃき力が自慢がんじょう
電気石の洞穴バチュルLv.28すなお気が強いきんちょうかん
電気石の洞穴ギアルLv.28うっかりや食べるのが大好きプラス
電気石の洞穴テッシードLv.28てれや力が自慢てつのトゲ
ホドモエシティゾロアLv.25せっかち力が自慢イリュージョン
リゾートデザートヒヒダルマLv.35おだやか力が自慢ダルマモード
地下水脈の穴コロモリLv.55おくびょう力が自慢てんねん


下3匹以外はBWストーリーで実際にNが最後以外の4回の戦闘で使ったポケモン。
下3匹はBWのOPで幼少期のNと一緒に映っていたポケモン。

プロフィール
さき

ポケモンの乱数調整とかツールとか。サンムーン乱数調整できました。
Twitter→@water_blow

広告
最新コメント
記事検索