この記事はPokémon Past Generation Advent Calendar 2023 53日目の記事です。
ここでは、「スカーレット/バイオレット」の戦闘乱数について書きます。SVは原則として乱数調整は不可能です。ただし、戦闘中の事象については予測することが(ある程度)可能かもしれません。
SV戦闘乱数の調査
今回は、もしCSPRNGでないならxoroshiroだろうと検討をつけました。調査方法はシンプルで、スキルスワップを使い自分と相手の間でよちむを発動し続けるだけ。1ターンに2回よちむが発動するので64ターン記録し続ければ現在stateが分かるはず。ただし、よちむで選ばれる候補となる技の個数は2個である必要があります。ちなみに、特定にはNX RNG Toolを使わせて頂きました。
実践するにあたって下の画像のスリーパーを用意しました。こいつと相性が良いのは、ポケモンリーグ手前のワッカネズミ(Lv9くらい)などです。「はたく(0)」か「エコーボイス(1)」、「スキルスワップ(0)」か「みがわり(1)」がよちむで選ばれる技の候補になります。
みがわりで変化技を、霊テラスで攻撃技を防ぐ
観測には全体で30分くらいかかりましたが、無事に特定できました!その後の出来事(よちむ、ムラっけ)の内容も一致していました。ムラっけについては乱数値 % 32で決定し、20未満の数が出るまで乱数値を繰り返し発生させているようです。詳しい説明は省きますが、剣盾と同様の処理がされています。
発売初期の戦闘中の不具合
みなさんはSV初期のオンライン対戦でゆびをふるで出る技が固定化される現象をご存知でしょうか。例えば、開幕に指を振ると「ハッピータイム」が出る、その次は「はきだす」になるとか。
戦闘乱数がxoroshiroであることが分かった後に調べてみたら、やはり0で初期化されたままだったみたいです。下の画像を見てください。603は「ハッピータイム」、255は「はきだす」の技番号となっています。*1SVの技は全部で654個だから、乱数値 % 2^10でいいはず。
最後に
仮に戦闘乱数調整が活用できるとしたら、伝説系の捕獲乱数とかになるんでしょうか。うーん微妙。VGC的にはこういうの好ましくない可能性があるので、今後タブーとみなされて記事を消すことになるかもしれない。
*1:有志の方が作成された技リストを参考にさせて頂きました。