ミルクの日記

ポケモンの乱数調整方法を紹介しているサイト

【第5世代乱数】オフセット+1の弊害

https://imgur.com/tk1mF1X.jpeg

乱数調整ツールにオフセット+1の値を入力すると、
実機で観測できる針の位置と異なる針の位置が出力される問題のお話


BW乱数黎明期では、乱数ツールにオフセット自動計算する機能はなかったので、
実機で出た個体から目標個体までの消費数を調べていました。

オフセット計算できるツール(cal_offset、バトルサブウェイ…以下略、bwpidseedなど)が開発され、
bwseedlistで出力される結果と出力されたリストが不整合に感じる状態になりました。

リストを見やすくするために、オフセット+1した場合の弊害についての解説となります。



  オフセット

オフセットとは?

本来の意味は補正する
何らかの要因で基準の位置からのズレた値を相殺する補正値のことを指します

BW乱数でのオフセット

ゲーム起動の際に決まる初期seed*1を起点として、内部処理の影響で性格値乱数が一定数消費されます
この進んだ消費数をオフセットとしています
※暗転中にNPCの移動や天候による性格値乱数列の消費はオフセットに含みません
※同じ条件下では、オフセットの値が変わることはありません
※初期seedが異なるとオフセットの値も変わります




  色違い6Vメタモンの乱数調整例

 今回の使用初期seed

年,月,日,時,分,秒,Timer0,個体値乱数消費,H,A,B,C,D,S,めざパ,威力,初期seed,性格値乱数消費,乱数値,性格値,キー入力
12,10,14,22,5,18,c68,0,31,31,31,31,31,31,あく,70,14B11BA64DD611C5,108,D1B9D9E1,D1B8D9E1,A→↓

説明の為に色違い6Vメタモンが出現する初期seedを用意しました

トレーナーID

表ID:00000 裏ID:02140


 オフセットの特定

https://imgur.com/fmNvpSO.jpeg
バトルサブウェイ乱数補助ツールに初期seedを入力するとオフセットが出力されます


今回の初期seedの場合、オフセットは43です
※ついでに針の位置は『1』


BW2非対応バトルサブウェイ乱数補助ツールのオフセット計算はBW1のみ
BW2の場合は別のツールを使いましょう


  実際に乱数調整してみる

https://imgur.com/jl7UmSB.jpeg
bwseedlist*2で目標個体の位置を確認後、
初期seedの時間に起動して、ペラップを指定回数鳴かせて
性格値乱数を消費すると目標個体が出ます


https://imgur.com/rm0QLmD.jpeg
今回の例では、ペラップのステータス62回見たあとに、
『あまいかおり』を使うと色違い6Vメタモンが出ます

人によってやり方に多少の差異があると思いますが、
こんな感じで乱数調整しているかと思います


  BWseedlistの設定

https://imgur.com/tk1mF1X.jpeg
BWseedlistのオフセットの値を以下の値にした場合の比較となります

  • ツールの結果通りのオフセット
  • ツールの結果+1のオフセット


  オフセット+1した時の比較

 野生リスト

オフセット+1 オフセット通り
62,メタモン(53) ,しんちょう,○,D1B8D9E1, 63,メタモン(53) ,しんちょう,○,D1B8D9E1,

野生リスト(オフセット通り)

<野生リスト(初期seed:0x14B11BA64DD611C5+オフセット:43)>
(ID:0-2140、ID補正有り)

消費数,出現,性格,シンクロ,性格値,色違い
0,イノムー(52) ,なまいき ,×,B5F1BCD5,
1,イノムー(52) ,ゆうかん ,×,E331AA6B,

<中略>

61,ピッピ(52) ,おっとり ,○,8205FB51,
62,メタング(53) ,おだやか ,×,2434934A,

63,メタモン(53) ,しんちょう,○,D1B8D9E1,★ ←目標の個体

64,ルナトーン(55) ,のんき  ,○,EE5B0871,
65,メタモン(55) ,しんちょう,○,5193AFCE,

野生リスト(オフセット+1)

<野生リスト(初期seed:0x14B11BA64DD611C5+オフセット:44)>
(ID:0-2140、ID補正有り)

消費数,出現,性格,シンクロ,性格値,色違い
0,イノムー(52) ,ゆうかん ,×,E331AA6B,
1,イノムー(52) ,しんちょう,×,9A0817E7,

<中略>

60,ピッピ(52) ,おっとり ,○,8205FB51,
61,メタング(53) ,おだやか ,×,2434934A,

62,メタモン(53) ,しんちょう,○,D1B8D9E1,★ ←目標個体

63,ルナトーン(55) ,のんき  ,○,EE5B0871,
64,メタモン(55) ,しんちょう,○,5193AFCE,


 パターンリスト

オフセット+1 オフセット通り
初回の針の位置 2 1

初回の針の位置は初期seed一致確認に使われる

今回の乱数調整例であれば、初回のレポート針の位置は『1』が正しい位置となります

  • 上記以外の位置であれば、目標の初期seedをひけてない証左となります

オフセット+1したパターンリストを使っていると、
リスト上では『2』となっているので、誤認の要因となります


パターンリスト(オフセット通り)

<パターンリスト(初期seed:0x14B11BA64DD611C5+オフセット:43、消費数:0~70)>

,1,2,1,7,0,7,7,2,7,6
,1,5,2,0,1,0,4,3,7,3
,1,1,7,6,0,1,5,0,0,2
,2,5,5,1,1,2,1,1,6,0
,5,7,2,6,1,1,0,6,4,7
,2,1,3,5,4,2,0,3,2,3
,5,0,6,4,5,6,7,2,7,5
★

パターンリスト(オフセット+1)

<パターンリスト(初期seed:0x14B11BA64DD611C5+オフセット:44、消費数:0~70)>

,2,1,7,0,7,7,2,7,6,1
,5,2,0,1,0,4,3,7,3,1
,1,7,6,0,1,5,0,0,2,2
,5,5,1,1,2,1,1,6,0,5
,7,2,6,1,1,0,6,4,7,2
,1,3,5,4,2,0,3,2,3,5
,0,6,4,5,6,7,2,7,5,2
★



  まとめ

BW乱数のやり方を紹介している検索上位にヒットするブログの説明では、
オフセット+1にしていることが多いので注意が必要です。

日本版のBW1の場合はTimer0の値が(比較的)安定しているので、
レポート針での初期seed確認を行うことが少なく、影響はあまりないかと思います。

しかし、海外版やBW2ではTimer0が安定しないことが多いので、
オフセット+1のリスト出力していると、
いつまでも初期seedが一致しないと勘違いする事案になるのでご注意ください。



  • Timer0を安定させたい場合はコチラ

milk4724.hatenadiary.org

milk4724.hatenadiary.org



脚注

*1:性格値乱数のseed(seed1)=初期seedと仮定した場合

*2:設定方法は後述の為、省略