かけらの記録ノート

かけらの記録ノート

主にポケモンの乱数について語るブログ

【コロシアム乱数】連続戦闘乱数調整のやり方

コロシアム乱数では、まばたきによるシードの特定の発見によりいくつかのポケモンを簡単にできるようになりました。しかし、これはnpcやフィールド上の消費がない場所のみに限定されていました。中でも連続戦闘乱数をするには戦闘中のシードを調整する必要があるためほぼ不可能だと思われていましたが、このまばたきを応用することでシードの特定ができることが分かりました。今回はその具体的なやり方を説明します。

戦闘中のシードの特定をするには、今まで使われてきたまばたきを確認する方法で行います。ただし、いつものようにステータス画面のまばたきではなく、戦闘中のポケモンのまばたきを確認する必要があります。戦闘時には技のエフェクトにより不定消費が起こってしまうためです。しかもカメラが回っているせいでとても見づらい。
f:id:sina_poke:20200322205446p:plain
初めはステータス画面のときと同様にムウマによるまばたきの確認を想定していましたが、対戦中のムウマはステータス画面で表示されているよりも小さく、また目と体の境界が不明瞭なため、まばたきの確認が困難であることが分かりました。そこで色々なポケモンを考慮した結果、「オクタン」もしくは「フライゴン」が適しているという結論になりました。指摘があったので検証してみましたが、おそらくベイリーフが一番見やすいです。
f:id:sina_poke:20200328202019p:plain
オクタンはコロシアムのストーリー中で捕まえることのできるポケモンの中でも目が大きく、体と目のコントラストの差がはっきりしているため、戦闘中の画面で何とかまばたきを確認することができます(それでもとても難しいです)。
f:id:sina_poke:20200329171251p:plain
※最新世代なのでNNが6文字です。フライゴンはまばたきと同時に口をパクパクするので、その口の動きから何とか分かります。
ベイリーフちゃんを使いましょう。

説明にはCoToolを使ってゆきます。
sina-poke.hatenablog.com
ポさんに日本版での検証およびツールのデバッグを手伝っていただきました。とてもありがたい。

①準備
手持ちの先頭にまばたきを確認するポケモン、その次に瞬きのしないポケモンを置いておきます。先頭の方がまばたきが見やすいと思う(諸説あり)ので推奨。
そして消費用のダークポケモンと、消費確認用のムウマ、必要ならS判定用のポケモンを準備しておきます。
f:id:sina_poke:20200322205935p:plain
②消費と現在地の特定
目的のポケモンを出すトレーナーの一つ前のトレーナー戦で、次のターンで戦闘が終わる状態まで進めます。
ポケモン→手持ち画面を開いてムウマを使って現在の消費数を特定します。ここで必要であればダークポケモンを使って消費しておきます。

③まばたきを使ったseedの特定
戦闘画面に戻り、相手のポケモンを倒してバトルを終了させます。そして賞金の画面まで進めます。
その後、賞金の画面で約1~2分の間待機します(これは戦闘時の消費による瞬きの位相のずれを合わせるため)。
f:id:sina_poke:20200322205446p:plain
ここからポケモンの瞬きを観察していく作業に入ります。
まばたきの時間を入力します。オクタンの場合は「4」で、フライゴンの場合は「6」となります(欧州版はともに+1)。次に「個体検索」タブを開いてポケモンを選択しておきます。
f:id:sina_poke:20200329172605p:plain
先程特定したseedから検索範囲を0~500000消費程度に設定して、入力待ち状態にします。そして、ポケモンと見つめ合って”確実に”瞬きをしていると思われる部分でshiftキーを押下します。間隔が1000Fをこえたりととんでもないことになると思いますが、いくら大きくても正しく計算されるはずです。10個程度入力できればokです。
f:id:sina_poke:20200328202040p:plain
一度の計算で候補が一つに絞れなくても、もう一度まばたきを入力して計算を繰り返すことで絞り込むことができます。うまく候補が見つかったら次に進みます。

④オフセットの特定
ここでいうオフセットとは、賞金の画面でAボタンを押下してから戦闘が終わるまでの待機時間を指します。「シード」に上で求めた現在シードを入力し、「目標の消費数」を選択して、10000程度の適当な消費数を入力します。
f:id:sina_poke:20200328202103p:plain
万が一弾かれた場合は、適当に値をずらしてやればちゃんと出るはずです。そして、まばたきが出力されたのを確認したら「BlinkTimer」を開きます。「終了時オフセット」が0であることを確認したら、タイマーを開始します。タイマーは最後にShiftキーを入力した時点を基準にして自動で進みます。ここからポケモンのまばたきとタイマーの音を合わせていきます。画面を注視しながらポケモンのまばたきにタイマーの音が重なるように、タイマーの「早くする」「遅くする」をクリックor左右矢印キーを入力して補正していきます。これがめちゃくちゃ難しい。欧州版の場合では-40~-60程度で合いました。うまく合ったと思ったらタイマーが終わるまで待機します。そして。タイマーが終わると同時にAボタンを押して戦闘を終わらせます。
次に戦うトレーナーの出すダークポケモンを捕まえて、上に入力してあるseedから消費数を計算します。
f:id:sina_poke:20200329172506p:plain
この消費数と上で入力した目標の消費数からオフセットを求めることができます。
「オフセットを計算」にチェックを入れ、出てきたボックスに上で求めた消費数を入力します。そして計算をクリックすることでオフセットが出力されます。
f:id:sina_poke:20200328202134p:plain
欧州版では35前後の値になりました。

④目標個体の乱数調整
②と③を行って現在シードを特定します。シードを特定後も乱数は進んでいるので、その待機時間も考慮して少し多めの消費の個体を狙うと良いです。一点狙いの個体を狙う場合は、最終ターンの消費数(欧州版だとおよそ5万消費)+タイマーの待機時間の消費数(こちらも5万消費くらい?)を考慮してダークポケモンで消費を行う必要があります。その後、求めたseedから「連続戦闘」タブを開いて欲しい個体を検索します。そして、結果に出た消費数をメモします。
f:id:sina_poke:20200329172451p:plain
そして「瞬き検索」タブに戻って目標の消費数に上でメモした消費数を入力します。「BlinkTimer」を開き、「終了時オフセット」に上で求めたオフセットを入力します。そしてタイマーを開始し、タイマーとポケモンのまばたきを補正していきます。
f:id:sina_poke:20200329181313p:plain
あとはタイマーの終了と同時に戦闘を終わらせます。うまくフレームが合っていれば目標の個体を引くことができるはずです。
f:id:sina_poke:20200317213509p:plain
目標の個体とは異なるものを引いた場合は、「連続戦闘」タブで個体を検索して、出た待機時間の差分だけオフセットを調整してください。一般的な3世代乱数とは違って猶予がおよそ2倍あるのでそこまで難しくはないはずです。

※ツールでホウオウが選択できるようになってますが、現状では未対応です。調べた結果、色々とややこしいことが分かりました。やり方が大きく異なることになりそうなので一段落ついたら別途記事にまとめます。