第三世代メソッドズレ
RSの野生乱数において度々出現しては人々を困らせるメソッドズレについて
そもそもメソッドズレとはなんぞやという人のために簡単に説明
第三世代の野生ポケモンが生成されるときの処理の仕組みは
エンカウントスロット決定とかレベル決定とかの諸処理
↓
性格決定
↓ (性格の条件をみたすまで性格値を探索)
性格値決定
↓
個体値決定
という感じになっています
この処理の最後の性格値決定から個体値決定までを抜き出してみると
性格値下位(LID)決定→性格値上位(HID)決定→個体値(H,A,B)決定→個体値(S,C,D)決定
となっています
ところがこの一連の処理の途中にスキップが入ることがあります
LID→HID→スキップ→HAB→SCD とか
LID→HID→HAB→スキップ→SCD とか
これらがそれぞれ
メソッド1:LID→HID→HAB→SCD
メソッド2:LID→HID→スキップ→HAB→SCD
メソッド4:LID→HID→HAB→スキップ→SCD
と呼ばれています
このメソッドがそれぞれの個体生成に使われるときに、どのメソッドが使われるかはだいたい決まっています (RSの野生ならメソッド1とかEmの野生ならメソッド2とか)
ところが、自分の予想していたメソッドと違うメソッドが個体生成に使われることがまれによくあります
RSの野生だからメソッド1を想定していたのにメソッド4になってる!とかですね
この想定外のメソッドがでてくる現象が俗にメソッドズレと呼ばれています
このメソッドズレが起こる原因は長い間謎とされてきました
2011年9月にはBond697氏が英語で、2012年12月には外野席さんが日本語で書いてるのだけど
こういうときに便利なのがSmogonですね
RSE/FRLG Method Determinationってもうまんまですやん
沢山かいてあるので要約すると
第3世代の剰余を返すmod関数がとっても非効率で性格に一致するPIDを探すのにとっても時間がかかる
こんな処理してるからPID探索中に描画の割り込みを受けて乱数が1つ消費される
ってことが書いてます(すごく雑)
原文はゲーフリのことをボロクソに書いてるけどランダム性を産み出すための処理の一環なんだよきっと多分そうだよゲーフリ悪くないよ
ということで性格値探索に時間がかかるとメソッドがズレやすいってことですね
外野席さんの乱数調整小ネタ.txtの27に書いてあることとも一致しますね
すごく大雑把に図解するとこんな感じです
GBAのポケモンは60fpsで描画処理が行われていてこの描画処理にも乱数が使われているので、性格値探索から個体値決定までの間に描画処理による割り込みが入るとメソッドズレを引き起こすということです
これを踏まえて過去に報告されたメソッドズレ個体を調べていきます
性格値探索にかかる時間の指標として性格値の再計算回数を用いることで処理時間が近似できますね
最も右の列に性格値の再計算回数を出力しています
このハスボーは性格値の再計算が84回
2.FRLG乱数 ドイツ産 色サファボケンタロス(意地2V?) - no pain,no gain
これは46回
3.
@Blastoise_X こちらの個体です 6162F,FB0A,イシツブテ♂,Lv12,がんじょう,なまいき ,58CBE985,02-11-22-00-05-22,22-00-05-01-23-20,02-11-22-01-23-20
— てるる@コロシアム乱数 (@tellu_poke) 2014, 7月 17
これは39回
というように性格値の再計算回数が約30回を越えるとメソッドズレを起こしてメソッド1からメソッド4になりやすいようです
ちなみに
4.Method1個体値ズレのメタモンが出てきたんですが|ゆゆううききのブログ
のように基本がメソッド2のEmでメソッド1が出ることもあります
この個体の性格値再計算回数は0回
メソッド1:LID→HID→HAB→SCD
メソッド2:>LID→HID→スキップ→HAB→SCD
なので性格値探索が早く終わりすぎてスキップの割り込みが入らなかった場合メソッド1になりうるということが考えられます
この仮説を調べるために自分でも性格値再計算回数が0回の個体を狙ってみましたがメソッド2になりました
再計算が0回だからといって必ずメソッド1になるわけではないのでご注意を
というわけでゲーム内の処理速度がメソッドに影響を与えていることはほぼ確定しました
処理速度が影響するならゲームハードの違いによる処理能力の差も当然影響すると考えられます
使っているのがGBAなのかGBASPなのかDSなのかGCなのか
みなさんご存知のようにGCのポケモンボックスではメソッド4が出やすいです
通信するときのラグでもあるんですかね
ハードの違いは誰も注目していないのでデータがないです。僕には調べようがありません
なので気になる人は自分で調査するなり情報共有するなりしてください