初心者向け!ガバガバポケモン乱数調整講座
そもそも「乱数調整って何よ」「改造と同じじゃないの?」という方に解説する向けのまとめです。
「乱数」と「改造」の違い
そもそも、ポケットモンスター……縮めてポケモンというゲームにおいては、「ポケモンの強さ」や「性格」、「性別」や「色違い」といった様々な要素が一体のポケモンに詰まってます。
その要素は、同じ「ピカチュウ」というポケモンでも、遭遇する毎にオスメスが異なったり、強さやレベルが異なったりするものです。まるで、決められたサイコロを振って決めてるかのように。
このサイコロを振ってる時みたいにランダムで数字が決定する仕組みのことを「乱数」といいます。
この「乱数」は基本的には、非常に複雑な計算を1/60秒単位で繰り返し行うことで作られています。(作品や乱数によってはサイコロの振り方に例外もあります)
つまりは、すごい短い時間で常にサイコロが振られていると思ってください。
しかし、現実世界でも、サイコロの振り方によって出る目をある程度コントロールできたりします。
例えば、サイコロの角を軸にコマのように回転させたり、中に重さの異なるものを混ぜてしまえば、出る目は偏りますし……。あとは、そもそも「振ったふり」をするというものもあります。有名どころでいうと、「456サイ」……4、5、6しか書かれてないサイコロなんかも世の中には存在しますね。
それはゲームという空間でも同じように、ゲームの操作によって、ある程度出る目をコントロールできます。
「サイコロの面の数字を後から、もしくは事前に数字を変える」のが「改造」。「サイコロの振り方を工夫して狙った数字を出す」、これが「乱数調整」です。
「ポケモン」というゲームの乱数について
ポケモン、というゲームの乱数調整においては、「乱数」……つまり、常に動いているサイコロの目がどのタイミングでどうなっているのか、を把握する必要があります。
乱数の最初の位置、「扉」とも言える地点を探し、その扉からサイコロの目がどのタイミングでどうなっているのか、を計算しなくてはなりません。
この「扉」を「SEED」、と呼びます。
この「SEED」を求めるためには、DSの古いポケモンのゲームなどは「日時」や「秒」を元に決定されているので、起動する時間や年月の設定をコントロールすることで一番最初の扉、「SEED」を決定していきます。
3DSやSwitchといった新しいゲームはこれもサイコロみたいに、最初に起動した時点でランダムに決められるので、起動した後のタイミングで「SEED」を探っていきます。
「扉」がわかったら、その扉の数値を元に「計算」します。
その「計算」に使うのが、パソコンの各種ツールです。パソコンのスペック次第ではこの計算が複雑すぎてできないこともなくはないです。
「計算」したあとの数値を元に、「どれだけサイコロを振ったら」目当てのポケモンが出るかを絞り込んでいって、目当てのポケモンと乱数調整で出会う……というわけですね。
色違いの決め方
同じ「扉」でも、トレーナー毎に狙っているポケモンが色違いになる、ならない、が決まってきます。
それは、ゲームを始めた時に決まる、「トレーナーID」にあります。
この「トレーナーID」も「乱数」でサイコロの目を振りながら決めるものになります。
ですが、実は、「目に見えないトレーナーID」というのもゲームの裏で作られているのです。それを、ここでは「シークレットID」……「SID」と呼びます。
このトレーナーIDとシークレットID、二つを計算した後にとある数字が出てきます。
これを、「TSV」……TrainerShinyVulueといいます。
これが、色違いを決める「鍵」のようなものです。
ポケモン毎に、「鍵穴」がそれぞれ乱数でランダムにサイコロで決められます。
その「鍵穴」ことPSV、PokemonShinyVulueとTSV、「鍵」が一致することで色違いになる、というわけですね。
この「鍵」は「さいしょにはじめる時点で「扉」を特定して、ツールを使って自分で狙ったものを選ぶ」手法や、
「「扉」を特定した上で「色違い」を出して、「色違い」のポケモンのデータを基に「鍵」を特定する」方法、
「「扉」をゲームをはじめから始めた後にリセットしないで特定して、「TID」や最初にもらったポケモンの情報を基に特定する」方法などで特定することができます。
ただし、ゲームによってはこの「鍵」が関係なく、普段とは異なる計算方法で色違いか否かを決めることがあります。剣盾のレイドや、BDSPの伝説ポケモンがその例ですね。
あとがき
大まかに(偉い人から怒られそうな内容ではありますが)説明をさせていただきました。
しっかりと理解したい方にとっては割とふわふわとした説明ですが、これが少しでも理解の一歩となりましたら幸いです。
もし、ちゃんとした内容で入門されたいのでしたら、mizdra様のブログにて乱数入門の記事がございますので、そちらご一読のほどお勧めします。