ろいしんぶろぐ

乱数調整とか

第5世代乱数調整について

第5世代乱数調整について

 

 

乱数調整の一般的な手順として、

目的を達成する乱数列の並びを検索し、検索した乱数列の並びを享受できるように調整する、という手順が考えられるが、

後半部分の調整に関しては第5世代は少し事情が異なる。

ゲーム中で用いられる乱数列の初項である初期seedが第3,第4世代ではユーザー間で共有できる値なのに対して、第5世代では各ユーザーのDSごとに割り振られた固有のMACアドレスが初期seed決定に関与しているため、ユーザー間で初期seedが異なる。

そのため、他人の調整をそのまま真似しても成功する可能性のある第4世代以前とは異なり、ユーザーが各自で調整を行う必要がある。

 

ユーザー各自が調整を行うにあたって、知っておくべき事項は個体の検索方法、個体生成の仕組み、目的乱数列へのの到達方法の3つに大別される。

個体の検索については2種類あるが、これについては外野席さんの「乱数調整小ネタ.txt」の45  目的の検索と結果の検索 に詳しく書かれてあるので割愛する。

 

個体生成の仕組みについては処理スキームという概念を理解する必要がある。

本稿は処理スキームの理解を目的とした記事である。

スキームについて

乱数調整を行う上で非常に重要なのにもかかわらず、ほとんどの人がおろそかにしているスキームについて。

スキームとは個体生成などが行われる際に呼び出される処理の仕組みのようなもので、第3世代でよく名前が出される"メソッド"もスキームの一つにあたる。

このブログ内でも何度かスキームを記述していて、おまじないパワー併用野生乱数ホワイトフォレスト野生乱数などがこれにあたる。

他のブログではただの雑記byさきさんのBWなみのり、つり、大量発生野生乱数に記載されているがこの他のブログではあまり見かけない。

以下に、スキームの使用例を示す。

たとえば、野生乱数の場合、r(n-1)までの乱数が消費されている状態であまいかおりによるエンカウントを行うと下記の処理スキームにしたがって乱数が使用され個体生成が行われる。

f:id:Blastoise_X:20140210000459p:plain

さびたコイルさん作成のbwseedlistの野生出力ではr(n)からの一連の処理が横に並べて出力されるため、1つの乱数値で全てが決定されていると誤認している人も少なくない。上記のような出力形式のため通常野生については問題ないが、その他の調整を行う際には個別の処理が必要になる。

一例として下に通常釣り時のスキームを載せる。

f:id:Blastoise_X:20140210002608p:plain

釣りでの処理スキームではシンクロ判定と出現ポケモン決定の間に釣り成否判定がはさまるため、リストに出力されるシンクロ成否と個体情報は分離され、シンクロ判定の1つ下の段が実際の個体となる。

この処理スキームが認識されていないから、”釣りの場合はオフセットが-1される”などといった無用な記述がなされている。

第5世代の乱数調整においてよく繰り返される”オフセット特定”という作業はほとんどの場合で無駄な作業であり、処理スキームを前提とした調整を行う際には”オフセット”という値に大した意味はない。

オフセット特定ツールは正しいオフセット消費を出力してくれるが、ツールを盲信し、初期seed確認を行わない調整が増えたことは残念である。

 

第5世代の乱数調整において重要なのは「どこから始まりいくつ消費するか」ではなく「現在の乱数位置を把握し、どこまで消費するか」である。現在位置の把握では目的の初期seedを実現できているかの確認が行えるため、乱数調整を正しく行う上では必要な作業である。また、処理スキームを理解していればどこまで消費するかは自明。

現在位置を把握するのに、もっとも簡単な方法はレポートの針を用いる方法である。BW2が発売されてから注目されたためBW2だけの方法と思っている人もいるが、もちろんBWでも使用できる。ただ、針の欠点として毎回メニュー画面からゲームに復帰するため、不定NPC環境下ではNPCによる消費の割り込みを防げない点には注意が必要である。

 

野生個体生成に用いられる処理スキームのほとんどはbwpidseedの取説.txtに掲載されているので、確認してみることを推奨する。取説.txtで扱っていないホワイトフォレスト、おまじないパワーについては当ブログ内で補完している。

孵化個体生成については、さびたコイルさんのBW乱数調整解説ページ、外野席さんのBW2孵化性格値調整関連.txtが詳しい。

 

以上が第5世代乱数を行っている人全てに見てほしいこと。

ここからは、少しだけ入った話。

 

本稿を書くにあたって、釣りのスキームを少し調査した。

録画環境がないので目測での調査になるが、待ち時間決定は恐らく6段階の乱数を発生させて浮きの沈む回数を決めているように見える。

また、待ち時間決定後の用途不明の1乱数消費はペラップを戦闘中に鳴かせて確認すると、戦闘終了後に消費されている模様。用途は謎のままだけれど、BWの通常野生でも消費されていてBW2の通常野生ではなくなったらしいので、初期化等の無駄遣いかと思う。

甘い香りでの連続個体生成による色粘りから裏IDを調べる際には気に留めてもいいかもしれない。