以下の内容はhttps://dokudenpa.hatenablog.jp/entry/CoSeedSorterより取得しました。


【ポケモンコロシアム】汎用乱数自動化プログラム『CoSeedSorter』

※ 注意 ※
自動化プログラムの紹介記事となりますが、プログラム本体は現時点で一般公開しておらず、不特定多数への配布は行っていません。ご了承ください。

1.はじめに

この記事は Pokémon Past Generation Advent Calendar 2025 の 17日目の記事です。

ポケモンコロシアムに登場するダークポケモンは、色違いを狙えるうえに「ナショナルリボン」も付与できるため、乱数調整を行う方がそこそこ多いと思います。

実際に乱数を始めようとすると、まずは「初期Seed厳選」というおなじみの苦行からスタートすることになります。CoReader の公開によって、初期Seed厳選や瞬きでのSeed特定に画像認識を使えるようになり、かなり作業が楽になりましたが、それでもSeed を 1点狙いする場合は相応の時間を費やします。Seed厳選が終わった後も端数消費や 1F単位でのフレーム合わせが待っており、負担の大きい作業になりがちです。

今回私が作成した自動化プログラムは 全ダークポケモン に対応しており、多くのポケモンは初期Seed厳選から戦闘に突入するまでの全工程が自動化されています。初期Seed厳選、瞬きでSeed特定、ダークポケモンで消費、スナッチリストで端数消費など、基本的なステップに加え、不定消費、進化瞬き、戦闘瞬き、NPC制御等 大体なんでも対応しています。

乱数調整の手法・用語については詳しく説明しませんが、プログラムの使い方や、「どの Seed を設定すればよいか」といった実用的な部分を中心に紹介します。一般公開していないけど。

 

2.CoSeedSorter の事前準備

NX Macro Controller で「CoSeedSorter.nxc」を開くと、CoSeedSorter フォルダが生成されます。フォルダ内に「設定.exe」というファイルがありますので、こちらを使用して実行したいオプションを設定します。「設定適用」をクリックすると、現在の設定が「settings.json」に保存されます。

 

まずは共通設定を入力します。こちらを設定しなければ何もできません。

 

・検索方法、FullDBのパス、LightDB のパス
 とにかくバトルで初期Seedを特定する際の「とにかくバトル」の開閉回数となります。DB のフォルダパスを指定してください。8回検索モードでは LightDB、7回検索モードでは FullDB を参照します。ダウンロードしていない方は夜綱さんが公開している Dropbox より入手して下さい。

・ダークポケモンの消費速度(Advance/s)
 主に高速消費で使うダークポケモンの消費速度です。よく毎秒 17146.6消費と言われますが、エミュで調べたら 16920消費でした。初期設定のまま変える必要はないと思います。 

・消費に使うダークポケモンの位置
 高速消費時にダークポケモンで消費する際、手持ちの何匹目となるかをこちらで指定します。

・許容する消費の上限
 初期Seed厳選時に許容する目標Seed までの消費となります。目標Seedリストに入力した Seed数に応じて、効率の良い消費数に自動計算されますので、基本的に設定変更する必要はないです。

・瞬きを利用するポケモン
 瞬きでSeed特定に使うポケモンを指定します。ムウマ / エーフィ / ベイリーフ / メガニウム / バクフーン / オーダイル / オクタン / チャーレム / チルタリス / サマヨール / ミュウツーに対応しています。

・瞬きを利用するポケモンの位置
 瞬きでSeed特定時に、瞬きを利用するポケモンが手持ちの何匹目となるかをこちらで指定します。

・制動時間
 目標の瞬きSeed でステータス画面を閉じる際に、何F 早く閉じるか指定します。制動時間は各自の環境で変える必要がありますので、強制消費固定組を使って特定するのが分かりやすいです。ストーリーの早い段階で特定したい方は「目標の瞬きSeedまで消費」の設定で、任意の瞬きで抜けた後にパイラタウンNPC の移動方向を見て特定してください。(参考記事

 

共通設定の入力が終わったら、実際に乱数したいダークポケモンを選択します。右上の「ダークポケモンを選択」ボタン、もしくはポケモンの画像をクリックすると、「ダークポケモンを選択」のフォームが開きますので、こちらからポケモンを選択します。選択したポケモンによって、それぞれの乱数調整の方法に対応したタブに自動で切り替わります。

乱数調整の手法が複数あるダークポケモンは「乱数タイプ選択」や「出現マップ」などのコンボボックスを変更することで、タブを任意のものに切り替えることができます。

 

なお、プログラムを実行する際のレポート場所については「レポート場所」のラベルに表示されている場所で行います。その後、それぞれのタブで設定を行います。

 

こちらも共通仕様ですが、NX のオプションで Webhook の URL を設定している場合は、初期Seed厳選の終了時やプログラム終了時に通知します。消費終了予定時刻はざっくりと算出していますので、数分程度はズレます。

 

また、CoReader を使った人間なら分かると思いますが、基本的に瞬き画像の差し替えが必要です。NX Macro Controller のキャプチャ画面を右クリックすると、画面をキャプチャでき、"C:\NX Macro Controller\Captures" に保存されると思いますので、こちらの画像を CoSeedSorter フォルダ内の Source → Blink フォルダ内の画像と差し替えます。大きめにキャプチャした後にトリミングするのが楽です。

 

差し替えても瞬きを認識できないという方は C#スクリプト内の閾値を直接調整するとうまくいくかもしれません。アナログのキャプチャーボードの場合、ポケモンによっては認識が厳しいと思います。

 

テンプレートマッチングの類似度などを出力したい場合は下記の値を直接編集してください。CoReader で瞬き認識できないという民が度々観測されますが、こちらも設定がややこしいので、一般公開したくない要因の一つでもあります。逆にいうと正しく使っていただけそう&Co乱数の知識がある方にはプログラムをお渡しすることも可能です。

 

3.それぞれのタブの設定

タブごとの設定について説明します。それぞれのタブに入力するSeed は CoSearch 準拠としています。

強制消費固定組を乱数する場合でも、xdcheck で出力したSeed はダミーPID と敵トレーナーのTSV生成による消費が見込まれており、-4消費する必要がある上に、強制消費も自前で設定する必要があるので、CoSearch を使うのがラクです。

CoSearch は強制消費が見込まれたSeedが出力されるので、基本的には「設定.exe」で強制消費を考慮する必要はありません。ただ、敵TSV の生成がないプラスル、ダブルバトルカードe+組などは差し引く必要があります。これらのポケモンは「設定.exe」の初期設定で消費を差し引いています。

要は CoSearch で強制消費が見込まれているポケモンは「設定.exe」で強制消費を見込まず、CoSearch で強制消費が見込まれていないポケモンは「設定.exe」で強制消費を見込みます。なので、自分で強制消費を弄る手間はほぼありません。

 

また、各タブの共通なのですが、「初期Seed厳選」や「瞬きでSeed特定」など、各ステップごとに実行することが可能です。ただし、途中から実行する場合は現在Seed などの設定を入力する必要があります。

Seedリストについては複数入力可能ですが、不定消費組などはフレームも一緒に入力する必要があるので、該当Seed と列を合わせるようにして下さい。

 

また、移動系統のチェックボックスのみ選択した場合は リセットして移動のみ を実行します。乱数調整を行う前に正常に戦闘に突入できているか確認するために使う機能です。

 

強制消費固定 or 不定消費(展開あり)

 

赤枠で囲っているのがそのタブでしか乱数できないポケモン、青枠は他のタブでも乱数可能なポケモンです。青枠のポケモンは「乱数タイプ選択」や「出現マップ」のコンボボックスを切り替えることで、ほかのタブに移動できます。

強制消費固定組は目標Seed の入力さえ間違えなければ、基本的には乱数調整が成功します。

 

「目標Seedから差し引く消費」は強制消費のような意味合いです。繰り返しにはなりますが、CoSearch では個体検索時に強制消費が見込まれたSeed が出力されますので、設定.exe側では強制消費を入力する必要はありません。


特殊なポケモン

・ベイリーフ、マグマラシ、アリゲイツ
 「出現マップ」のコンボボックスでスナッチ団アジトを選択し、さらに乱数タイプで「強制消費固定」を選択すると、強制消費固定タブに切り替わります。NPC が動き回るため、戦闘突入までは自動化できず、端数消費までしか選択できません。NPC の待機時間が 4秒以上確保できる場合は、屋内に入ってからすぐに戦闘に入れば強制消費9 となるため、実質強制消費固定に該当します。また、NPC が移動している最中に話しかけると消費がズレます。

・テッポウオ、マンタイン
 メニュー割り込みによる乱数調整の場合、強制消費固定で乱数調整が可能です。テッポウオ と マンタインを両方乱数する場合はテッポウオを固定後に敗北する必要があります。敗北後は「敗北 or スキップ後に再戦」のチェックボックスをチェックしてください。メニュー割り込みの成功率は 8割程度です。
 また、マンタインはテッポウオ討伐後にフィールドで毒状態で力尽きて、ブレス戦を飛ばした場合も強制消費固定として乱数調整が可能です。こちらは乱数タイプ選択の「強制消費固定(変態)」を選んだ場合に実行できます。運要素はないですが、自動化ならメニュー割り込みの方が明らかに優位なので、おまけ機能のようなものです。(やり方の動画はこれ

・プラスル
 
敵TSV の生成がないため、強制消費-2 としてます。個体の検索は CoSearch で強制消費0 で行い、設定.exe側で 2消費を差し引きます。ウソッキーを一緒に乱数する場合は一度敗北して、固定する必要があります。消費が増えてもいいなら、戦闘終了後にそのままプラスルの乱数に移行してもOKです。初期Seed厳選から実行する場合は、ミラーボ戦をA連打で突破を試みるので、パーティの強化が求められます。(コロシアム周回自動化でレベルを上げておくとよい。)

・ヤミカラス
 一度敗北すると生成順が変わって、ストーリークリア後に再度乱数できます。出現場所はどちらも「ダークポケモン研究所」です。

・ヘラクロス
 一度敗北すると生成順が変わって、ストーリークリア後に再度乱数できるため、個体値を気にする方は「スナッチ団アジトNPC」タブで乱数すると良いです。

・リングマ
 フラグメールを開封前の場合は御三家と同じロジックで強制消費13 固定で乱数調整することができます。ただし、NPC の待機時間が 3秒に満たない場合は会話中に NPC が再度動く際の NPC消費が入るため、その場合はスナッチ団アジトタブを使いましょう。

・トゲピー、メリープ、ハッサム
 強制消費の検索には CoTool の「不定消費」タブを使用します。私は実機と消費が合わなかったので、エミュで消費を調べました。合わなくても展開が広いので、何度かやれば成功します。

 

不定消費

 

不定消費組は 1F合わせが必要です。こちらは瞬きで合わせるSeed とフィールドで待機するフレームをセットで入力する必要があります。

 

CoSearch を使って、「瞬き終了時のSeed」と「フィールドで消費するフレーム」を検索し、出力された値を入力します。空白時間はプログラム側で見込まれているので、まずは検索したフレームをそのまま入力して問題ありません。

 

特殊なポケモン

・ベイリーフ、マグマラシ、アリゲイツ
 ダークポケモン研究所で乱数する場合は不定消費となります。「出現マップ」のコンボボックスでダークポケモン研究所を選択すると、不定消費タブに切り替わります。

・ライコウ
 敗北後の方が不定消費が安定するという噂があるので、敗北後のオプションを用意しています。

 

不定消費+NPC消費

 

御三家やパイラ組、レディアンは別のタブの方が簡単に乱数できますので、ほぼヤンヤンマ専用のタブです。

 

「不定消費開始時のSeed」と「フィールドで消費するフレーム」は CoTool を使って検索します。ツールの出力は確実に実機と合うわけではないので、エミュを使うなどして、調査するのを推奨します。

 

特殊なポケモン

・ベイリーフ、マグマラシ、アリゲイツ
 「出現マップ」のコンボボックスでフェナスシティを選択すると、不定消費タブに切り替わります。

・マグマッグ
 NPC が歩き回るため、C#スクリプトを直接弄って、移動を書き直す必要があります。もしくは移動を待機に書き換えて、外部コントローラーで動かすのも手です。特別な理由がなければ「パイラNPC」タブで乱数調整することを推奨します。

 

進化瞬き

 

主にラルガタワー組とツボツボの乱数調整に使うタブで、戦闘瞬きよりも簡単に乱数できます。こちらは「初期Seed厳選から戦闘突入まで」と「瞬きで消費してから戦闘終了まで」の2つのステップを自動化できます。なので、戦闘突入から技覚え画面に移行するまでは手動で進める必要があります。

 

戦闘中にダークポケモンで消費したい方は「戦闘中にダークポケモンで消費する場合はチェック!」を選択し、「瞬きでSeed特定&ダークポケモンで消費」を選択します。ポケモンの進化時に 約56万消費されるので、戦闘に入る前の消費調整に利用できます。

 

「瞬きで消費してから戦闘終了まで」を選択する場合は技覚え画面からプログラムを実行します。制動時間や戦闘終了までの消費の調査は各自で必要となります。

 

戦闘瞬き

 

進化瞬きや、メニュー割り込み等の手法が開拓されたため、ほぼホウオウ専用です。進化瞬きと同様に「初期Seed厳選から戦闘突入まで」と「瞬きで消費してから戦闘終了まで」の 2つのステップを自動化できます。こちらも戦闘中にダークポケモンで消費できるオプションを実装しています。

CoSearch の戦闘瞬きは瞬き間隔 4F のみに対応していますが、こちらは瞬き間隔を指定可能となっています。そのため、瞬き間隔 7F のルナトーンや、3F のサマヨールを使うことが可能です。

 

目標Seed は CoSearch で検索したSeed をそのまま入れればよいですが、ホウオウの場合はカメラアングル決定による消費が入るため、設定がやや複雑で、CoTool を使って目標個体が出現するSeed と消費数を計算する必要があります。以下の設定の場合、カメラアングル決定(+通常の戦闘消費)で 178消費されるため、その消費が入る前のSeed を求める必要があります。具体的な手順について説明します。

 

まずは CoTool の検索設定で入力したSeed および 残り消費数を Co/XD LCG に入力します。今回は B32F466F から 9820消費進めますので、5838A31B が目標Seed となります。このSeed を目標Seed として、CoSeedSorter側で設定し、乱数調整を行います。

 

プログラムを実行すると、BlinkWatch のフォームが開きますので、通常の CoSearch を使った戦闘瞬き乱数の手法で進めてください。(参考記事

瞬きの観測は手動で行い、最後のフレーム合わせだけ自動で行います。画像認識は不要なので、OBS のウィンドウプロジェクターを使うなどして、瞬きを観測しやすくすると良いです。フレームの補正は -200F 周辺になるかと思います。

ホウオウの場合は最後の 1匹を倒した際のカメラアングル、ムゲンダイのカメラアングルは CoTool の出力と照らし合わせて下さい。OBS で録画しておくと安心できます。

 

特殊なポケモン

・マクノシタ
 戦闘突入前に高速消費する場合は「フェナスシティで消費」タブを使って下さい。「戦闘瞬き」タブはダークポケモンを使った高速消費を想定しているため、選択できないようになっています。これはホウオウも同様です。

 

フェナスシティで消費

 

マクノシタは展開が広いため、戦闘瞬きよりは最後の 1匹を倒す直前に手持ちから瞬きで消費して、ねんりきで戦闘を終了させる手法の方が良いです。「初期Seed厳選から戦闘突入直前まで」、「瞬きで目標Seedまで消費&ねんりきで最後の1匹を倒して戦闘突入」の 2つのステップがありますので、順番に実行してください。

「初期Seed厳選から戦闘突入直前まで」はフェナスシティの不定消費で高速消費を行い、戦闘に突入する直前まで自動化します。フィールドでの消費は毎秒 3005消費くらいです。

 

「瞬きで目標Seedまで消費&ねんりきで最後の1匹を倒して戦闘突入」はエーフィのステータス画面を見た状態で実行します。消費終了後、ステータス画面を閉じて、A連打で最後のポケモンを倒します。

 

目標Seed は CoSearch で検索できます。Seed が大量に出力されますが、一番上のSeed を選択して良いです。

 

タイトルで消費

 

主にヘラクロス と レディアンでの乱数を想定しています。このタブでは「とにかくバトル」のパーティ生成による消費を行い、タイトル画面で端数消費まで完了させます。

この 2匹はストーリーで固定しなかった場合、クリア後にスナッチ団アジトで出現します。ホウオウはファイヤーで消費した方が早いので、おまけで実装しただけです。

 

通常であればNPC の移動で消費がブレますが、タイトルでSeed を調整して、すぐに戦闘に突入すればSeed によっては強制消費9 固定で乱数調整することができます。NPC の待機時間は 4.4秒程度の余裕がないと、NPC消費が再度入ってしまうため、あまり使い勝手はよくありません。

ちなみに何故かこのゲームは「とにかくバトル」を行ってから、ゲームを開始すると全ての扉が閉まる仕様があるため、扉を開けたままレポートを書いても移動時間を減らすことができません。

Seed を合わせるのが 1回だけで済みますが、基本的には「スナッチ団アジトNPC」で乱数した方が安全だと思います。

 

ファイヤーで消費

 

ホウオウ専用のファイヤーのステータス画面を見て消費するタブです。バトル山 100人抜きのムゲンダイ直前の中断データを作成して、プログラムを実行します。初期設定では目標Seedの 300万消費前までざっくりと消費します。


消費速度は毎秒 3699消費想定です。私がホウオウを乱数した際には瞬きでSeed特定にミュウツーを使用しました。他に良さげなポケモンがいればオプションで追加するかもしれません。バトル山自動化と合わせればかなり楽にホウオウの乱数調整が可能となります。

 

パイラNPC

 

NPC制御によるパイラ組の乱数調整です。端数消費が 2回必要となりますが、パイラ組は不定消費+NPC消費よりも NPC制御の方が事前調査が不要で簡単です。

 

「建物内での目標Seed」は CoSearch を使って検索し、NPC待機時間に十分に猶予があるものを選定します。

 

「瞬き直後のSeed」、「フィールドで消費するフレーム」は不定消費と同じ要領で計算し、出力された値を「設定.exe」に入力します。

 

特殊なポケモン

・マグマッグ
 NPC が歩き回るため、2回に分けて実行する必要があります。「① 初期Seed厳選 ~ ⑤ スナッチリスト&瞬きで端数消費」を実行した後に手動で NPC の前まで移動し、移動後に「⑦ 瞬きでSeed特定&ダークポケモンで消費 ~ ⑩ 戦闘突入」を実行します。

 

スナッチ団アジトNPC

 

あまり知られていませんが、スナッチ団アジト組も NPC制御による乱数調整が可能です。この方法を使えば運要素なしで、確実に成功させることができます。

 

「アジト1階突入時のSeed」は CoPilot を使って算出できます。目標Seed はそのまま目標個体のSeedを入力して問題ありません。強制消費はツール側で勝手に差し引きます。

パイラNPC と違って、待機時間が大きいSeed が見つかりやすいので、7秒以上の待機時間を確保しておくと良いでしょう。リングマだと 7秒だとギリギリ足りない可能性があるので、7.5秒は確保したいところです。

 

・ベイリーフ、マグマラシ、アリゲイツ
 「出現マップ」のコンボボックスでスナッチ団アジトを選択し、さらに乱数タイプで「NPC消費」を選択すると、スナッチ団アジトNPCタブに切り替わります。NPC が動き回るため、戦闘突入までは自動化できず、端数消費までしか選択できません。

 

SpecialThanks

 

デバッガーの皆さんに向けた SpecialThanks ですが、実は隠された機能があります。このタブを選択した状態でプログラムを実行すると、リセットして初期Seed を特定するだけでプログラムが終了します。瞬きの画像認識の動作確認や、制動時間の調査をしたい時に使う機能です。まさかの実用目的。

本プログラムはデバッグ項目(ポケモンと乱数調整方法の組み合わせ)が 90項目もありましたが、記事公開日の夜に全項目の動作確認が完了しました。

今年の 4月からデバッグ&修正を繰り返していましたが、戦闘瞬きの実装ミスがあったことに数日前に気づき、それまでにデバッグしていた方(約 2名)を絶望させたのはヒミツです。

 

4.その他汎用プログラムの紹介

乱数調整をする前の準備段階で需要がありそうなプログラムも作成したので、こちらは一般公開します。

コロシアム周回自動化

3世代自動化鯖で代わりに公開してもらってたやつです。コロシアムを周回してレベリング や ポケドル稼ぎを自動で行います。

進化瞬き要員や、S判定ポケモンの育成、大量にボールを買い込む場合などにご活用下さい。エーフィ / ブラッキー / プラスル / オーダイルのみ、技覚え処理の最適化もしています。詳しい使い方は Readme に書きました。

Co乱数は生成順や個体固定の都合上、敗北しざるを得ない場合があり、その度に所持金の半分も持ってかれるので、大量に稼いで大量に買い込んでおくと良いです。

 

ダブルバトルカードe+ 戦闘自動化

カードe+組はそれぞれのダークポケモンを入手するために 24戦も勝利する必要があり、かなり時間がかかりますので、戦闘を自動化しました。ほぼ A連打するだけの単純設計です。カイオーガ や ホエルオーで「しおふき」を連打するのが早いと思います。

基本はカードe+の読み込みだけ人間がやればいいですが、やさしい19、ふつう19・20、きびしい3・19 を読み込んだ際に出現するトレーナーは貯水持ち や ヌケニンを使ってくるので、一部は手動で操作して下さい。

 

5.おわりに

以上となります。できることがかなり多いので、長文となってしまいました。

3世代どころか未来世代も含めて、これほど作りこんだ自動化プログラムがあるのか怪しいくらい頑張りました。ここ 1年でいくつか自動化プログラムを作成しましたが、リソースの 6割くらいは CoSeedSorter につぎ込んでいた気がします。

作ってる途中で パイラNPC やら、メニュー割り込みやら、スナッチ団アジトNPC やらも開拓されたので、度重なるアップデートがあり、本当にめちゃくちゃ時間がかかりました。とにかく json への読み書きと、C#スクリプトでの Seed管理の実装が苦痛でしたね...。

今後の自動化となりますが、3世代の自動化はほぼ作り尽くしたので、最後にコロシアムストーリー自動化を作って終わりにしたいと思います。配信環境と自動化環境がある方で、デバッグを手伝っていただける方を募集中です。こちらは 3DS自動化に入る前の勉強を兼ねて、PokeCon で組む予定ではあります。(3DS自動化を NX で書くか、PokeCon で書くかはまだ決めてませんが。)

明日の Pokémon Past Generation Advent Calendar の記事では ハンターさんがポケマスの何かを書くようです。一体どんなオタク記事なんだ...?




以上の内容はhttps://dokudenpa.hatenablog.jp/entry/CoSeedSorterより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14