【剣盾乱数調整】過去作の菱形色違い判定について(おまけ:TRVの求め方)

先日PokémonHOMEもリリースされ過去作からもポケモンを連れてこられるようになりましたね。それに伴い過去作ポケモンの菱形判定が気になっている人も多いと思います。 3DSRNGToolも菱形判定を追加してくれましたしちょうどいいので簡単にそれについてお話ししようと思います。

おさらい

色違いの判定式

色違いかどうかは以下の式から判定されます。TSVやPSVもこの式を元に求められます。
(TID)xor(SID)xor(PID上4桁)xor(PID下4桁)≦15(5世代以前は7)

TSV・PSVとは

TSV・PSVとは、ポケモンの色違いの判定をするにあたって便宜上付けられた名前です。値が一致していれば色違いになると言われれば誰にでも理解しやすいですよね。 TSV・PSVは色違いになるかどうかの判定しかしないので元の値から不要な部分を省いてしまっています。
以下の記事で詳しく説明されています。

8世代での星形・菱形判定

8世代での星形・菱形判定はソード/シールド発売直後に海外勢によって解析されてましたね。色違いの判定式の結果が0になった場合のみ菱形、それ以外の場合の色違いは星形になります。例外として、正月の色違い確定のコイキングレイドのように『色違い確定』要素がある場合は菱形になります。
☆星形:1≦(TID)xor(SID)xor(PID上4桁)xor(PID下4桁)≦15
◇菱形:(TID)xor(SID)xor(PID上4桁)xor(PID下4桁)=0

  • レイド
    ☆星形…15/65536
    ◇菱形…1/65536
  • 孵化
    ☆星形…15/65536
    ◇菱形…1/65536

野生だけは少し話が変わります。個体が生成される前に色違いかどうかの判定があります。(ひかおまなしで1/4096) 色違いになる判定をされれば、後に生成される性格値が色違いであっても色違いでなくても強制的に色違いにされます。色違いにならない判定をされれば、後に生成される性格値が色違いであっても通常色に戻されます。
色違いになる判定をされた場合、判定式の結果が0になる場合はもちろん菱形、本来通常色だった個体も性格値に補正がかかり菱形になります。判定式の結果が1〜15だった場合のみ星型になりますが、1/4096の確率で色違い判定をされた上で生成される性格値が15/65536の星型の条件を満たすものである必要があるため、実際の確率は約1/17,895,697です。

  • 野生色違いの確率
    ☆星形…約1/17,895,697
    ◇菱形…約1/4,097

  • 色違い判定を超えた上で野生色違いの内訳 ☆星型…15/65536
    ◇菱形…1/65536
    ◇菱形…65520/65536(元々通常色だった分)

【追記】冠の雪原での追加要素

  • 固定シンボル
    同じポケモンを500匹倒したときに3%の確率で色違いの確率が上がるボーナスが発生するのは野生のポケモンのみで、固定シンボルでは起こらないようです。

  • ダイマックスアドベンチャー
    ダイマックスアドベンチャーで出現するポケモンには色違いになるように補正がかかります。
    確率はひかるおまもり無しで1/300、ひかるおまもり有りで1/100です。
    菱形になるように補正がかかる野生に対して、こちらは以下の式を満たすPIDになるように補正がかかるので、補正がかかった場合は必ず星型色違いになりますしかし、補正なしで菱形色違いが出る可能性もあります。(これまで多くの方が色粘りや自動化を使って色違いを捕獲してきたと思いますが、全く報告がないことから菱形は出ないかもしれません。多分だけど野生の処理から察するに1/300で色違いの判定されてなおかつ1/65536で菱形を引いた場合にのみ菱形になると思います。1/19,660,800になると思います。)
    (TID)xor(SID)xor(PID上4桁)xor(PID下4桁)=1

☆星形…約1/100 (ひかるおまもり有り)
☆星形…約1/300 (ひかるおまもり無し)
◇菱形…1/65536

【追記】500回倒すと色違いは出やすくなるのか

これまで何度も話されては結局どうなのかあやふやなままだったこの話について進展がありました。海外勢の調査によってようやく正確に効果を把握することができました。
発端となったのは海外のポケモン公式サイト。『同じ種類のポケモンを500回倒すと色違いの確率が6倍になる』という公式がアナウンスするとは思えない記載があったことが始まりでした。海外勢の解析からも同様の処理があることはツイートされていましたが、公式の記載とは異なり『3%』などと一定の確率下で起こるような記載があったことや、オーラポケモンとの関係性について語られていなかったこと、本当に『3%』なのであればこれを考慮しないときの確率と大差ないことから、よく分からないけど多分あんま意味ないくらいの認識で放置されていました。

結論から言うと、『500回倒すとオーラポケモンの発生率が3%となり、その場合の色違い判定チャンスが6回増える。さらに、釣りにおける連鎖が25回を超えるとオーラポケモンの発生率が最大28%まで上昇する。』という内容でした。
解析によって判明した『3%』というのはオーラポケモンの出現率のことだったんですね。
ただし、連鎖は簡単に途切れてしまうので倒す手間やPPの管理を考慮すれば、シンプルに逃げたりリセットしたりした方が間違いなく良いです。
また、この仕様はオーラポケモンにのみ効果があるのでオーラを放つことのないポケモンを倒し続けて時間を無駄にすることはやめましょう。

ひかおま所持で500回倒したときの色違いの確率はそれぞれ以下のようになります。ほとんど意味ないです。

最後に、検証をしてくれたAnubis氏はこのようにまとめています。

  • 色違いが好きならオーラポケモンを狙おう
  • 『フルオッズ(最も低確率の条件で色粘りをすること)』ならオーラポケモンを避けよう(非オーラポケモン+ひかおま無しで1/4096)
  • 時間がないなら500回ではなく100回倒そう(100回倒すと3%の確率で色違い判定+3)
  • 釣り連鎖はするな…

もっと詳しい内容を読みたい人は以下のAnubis氏のツイートのツリーに一連の情報が纏まっているので見てみてください。

過去作ではどうなのか

さて、では過去作ではどうなのでしょうか。菱形になりそうな場合を箇条書きで書き出してみます。

ほぼ確実といえるもの

  • ◇菱形:(TID)xor(SID)xor(PID上4桁)xor(PID下4桁)=0を満たす色違い
  • VC産の色違い
  • ポケモンGO産の色違い
  • 配信ポケモンの色違い(運命的な出会いフラグのある色違い)

このように、基本的な判定式は剣盾と変わりません。色違いのふしぎなおくりものに関しては、運命的な出会いフラグによって菱形になるのではなく、確定色違いの場合は菱形の判定式を満たすようなPID(性格値)になるように生成されるので菱形になると思われます。そのため、5世代の九州配信や、6世代のひろしまコイキング、7世代のイースターエッグなどの色違いブロックルーチンがかかっていない配信ポケモンを色違いにした場合は菱形確定ではなく、星型の可能性もあると思われます。
検証により、運命的な出会いフラグによって菱形の色違いになることがわかりました。デオキシス、ミュウ、ダークライシェイミなどのチケット系のポケモンや、タマゴ状態で配布されたポケモン、5世代九州配信のようなブロックルーチンがかかっていない配信ポケモンも確定で菱形になると思われます。個々の検証は行っていないので星型で光った報告があれば教えてください。
なお、ルビー/サファイアで配信されたポケモンには運命的な出会いフラグを持たないポケモンがいます。WISHMKRジラーチやCHANNELジラーチ、ルビー/サファイアで出会った孤島ラティなどは通常の色違いと同じく15/16が星型になると思われます。

間違いや他に確定で菱形になると検証済みのものがあれば教えてください。

3DSRNGTool v1.0.4以降について

2020/03/03にサイレントアップデートで菱形検索機能を実装してくれました。 新たにTRVというものが定義されましたが、これはTSVを求める際に省いてしまった不要部分です。簡単にイメージすると、TSVは色違いかどうかを判定するためだけの値で、TRVは色違いになる場合に菱形になるかどうかを判定するための値になります。(そもそもTSVがなければTIDとSIDだけでよかったんだけどね…)
3DSRNGTool v1.0.4の説明ではTRVは以下のように定義されています。

  • Definition of TRV (Trainer Residual Value)
    TRV is the last 4 digits of TID xor SID, a value between 0 and 15. Can be presented in a one-digit hex number
    TRV = (TID ^ SID) & 0xF
    TRV = (TID ^ SID) - (TSV << 4) is independant of TSV

3DSRNGTool上での菱形色違い

TSVとPSVが一致すると色違いに、さらにTRVとPRVも一致すると菱形になります。ツール上ではTRVが一致している場合は濃い水色で表示されます。

TID xor SIDの下4桁、0〜15の値(=16進数なら0〜Fの1桁で表せる)ということですね。
(ちなみにTSVは逆にTID xor SIDの下4桁を省いた上12桁です。)

TRVの求め方

プログラマー電卓を使う方法

使い方がわからない人もいると思ったので簡単に説明しておきます。TRVは以下の手順で求められます。今回はWindowsに標準搭載されているプログラマー電卓を使いました。7世代の通常プレイで表示されているG7TID(6桁)とは別にTIDとSIDが必要なのでID調整がほぼ必須と言えるでしょう。自分は数年前にID調整した情報がたまたまスクショで残っていたのでそれを使いました。

TSV Finder

【追記】現在はbotの稼働を停止しているため使えません。TSVを求めてもらった後、3DSRNGToolにseedを入れて確認する方法で求めてください。

ポケモン乱数調整Discord上で、ぼんじりさんがTSV Finderというbotを動かしてくれています。このbotを使ってTSVを検索すればTRVも一緒に教えてくれます。
Discordへのリンクはこの記事の最後に貼ってあります。botの使い方は#gen7チャンネルのピン留めを確認してください。 f:id:larvesta10:20200719161406j:plain

過去にTSVSearchを使ってTSVを求めた人

3DSRNGToolのv1.0.4以降では、ID調整タブにもTRVが実装されています。過去にTSVSearchを使ってTSVを求めた人は、その際にTSVと一緒に出力されたseedをメモしていれば、3DSRNGToolにそのseedを入力することでTRVを求めることができます。

ゲームのバージョン、seedを正しく入力した上で検索を押すと、結果の1番上がTRVを求めたいデータのIDであるはずです。(無印サンムーンなら1012消費、ウルトラサンムーンなら1132消費にあります。) f:id:larvesta10:20200719162236j:plain

TID・SIDがどうしてもわからないとき

3DSRNGTool v1.0.4ではリストを表示するとPRVも表示してくれるようになっています。TRVおよびPRVは0〜Fまでの16通りしかないので、PRV=0〜Fの16通りを1匹ずつ乱数調整して菱形エフェクトが出るまで8世代に送ればTRVを特定することができます。
例えば、PRV=Fのポケモンを乱数調整して8世代に送り、菱形になればそのデータのTRVはFになります。必ず8世代に送れるポケモンを乱数調整するように気をつけてください。

適当に書いたのでよくわからないところがあったら聞いてください。