
※2023/8/31追記
初めまして、ジュナリと申します。
今回はレイド乱数のseed特定に必要な個体を探索、捕獲、ポケモンの情報をログに出力まで自動化したプログラムの説明書をNoteに書いてみました。
目次
注意事項
-
Poke-Controller(MODIFIED版またはExtention版) が導入済みであること。(導入のサポートはしません。)
-
商用利用禁止。(本プログラムの販売、本プログラムを用いて得られた成果物の販売など。)
-
本プログラムを使用したYouTubeでの配信や動画は収益の有無に関わらず概要欄にnoteまたはTwitterのURLを記載してください。
-
自作発言、無許可の二次配布禁止。
-
switchの熱暴走の対策をしてください。(本体の温度が高いと誤作動がおこりやすくなります。)
-
想定外の動作をした場合でも責任はとれません。自己責任で利用ください。
ダウンロード
PyocrとTessractOCRのインストール
OCRを使うため以下の記事を読みpyocrとTessractOCRのインストールをしてください。(これをやらないとつよさをみる画面で止まる。)
インストールが終わったら、検索欄に「sysdm.cpl」といれ「システムプロパティ」を開く→「詳細設定」のタブを選び→「環境変数」を開く→「システム環境変数」の「Path」にTesseractをインストールしたフォルダを指定しておいてください。

環境変数のPathに設定したくない場合は1165行~1169行のコメントアウトを消してください。

各ファイルの置き場所
SwSh_Raid_RNG_seed.py (剣盾レイド乱数_seed特定用個体探索_ver3.0)
SwSh_Raid_Get.py (剣盾レイド乱数_レイド討伐)
SwSh_Raid_Datechange.py (剣盾レイド乱数_消費調整)
→ SerialController\Commands\PythonCommands\ImageProcessingOnly
raid_rng_swsh (フォルダごと)
→ SerialController\Template
使い方
事前準備
・言語は日本語の漢字にする。
・日付を月末付近にしない。(21日くらいまでならセーフ)
・手持ちに1匹以上あきを作る。
・イベントレイドで使う場合はマスターボールを1つ以上用意する。
・メニュー画面の左下にキャンプ、左上をポケモン、その右隣にバッグを配置する。(カーソルはポケモンに合わせておく)
・ふしぎなあめ or けいけんあめをLv100にできる数用意する。
・まじめミントとかわらずのいしを2個以上用意する。
・バッグの道具欄の順番を1番目をかわらずのいし、2番目を飴、3番目をまじめミントに変更する。(変更したらカーソルは回復欄に合わせておく)


上記すべての準備が完了したらねがいのかたまりを入れた巣穴の前でレポートを書きます。

探索する個体の設定
巣穴の前で「レイド乱数用_個体探索_ver3.0」を実行してください。
すると下のようなウィンドウが出ます。

ウィンドウの各項目に探索する個体の情報を選び、実行を押してください。
以下各項目の説明。
・柱の種類
細い赤か太い紫から選択。デフォルトは太い紫が選ばれている。
・星の数
1~5の数字を選択。デフォルトは3が選ばれている。
レイド画面の★と一致するポケモンを探索する。
・タイプ1
18タイプから選択。デフォルトは指定しないが選ばれている。
レイド画面の左側のタイプと一致するポケモンを探索する。
・タイプ2
18タイプから選択。デフォルトは指定しないが選ばれている。
レイド画面の右側のタイプと一致するポケモンを探索する。
単タイプを選ぶとタイプ1で選ばれたタイプで単タイプを探索する。
・n日目
4~6の数字を選択。デフォルトは4が選ばれている。
入力された数字 - 1回日付変更をし、設定した星の数とタイプが一致する
ポケモンを探索する。
・n体目
1体目か2体目から選択。デフォルトは1体目が選ばれている。
n日目に4が入っている時だけ使用する。
5か6の場合1体目のままにしておく。
・Vの数
2~4の数字を選択。デフォルトは指定しないが選ばれている。
選んだVの数と一致するポケモンを探索する。
基本は使わないので指定しないのままで良い。
・レイド発見時
捕獲時リセットかキャンプバックアップ後、終了から選択。
デフォルトは捕獲時リセットが選ばれている。
seed用の個体の探索では捕獲時リセット、
消費が終了し、光らせたいポケモンの厳選をするときは
キャンプバックアップ後、終了を選ぶ。
・レイド戦闘時技選択
1~4の数字を選択。デフォルトは1が選ばれている。
・イベントレイド
チェックを入れるとレイド捕獲時マスターボールを投げます。
設定例 4日目(1体目)
seed特定作業で最も時間のかかる工程だが、いー氏(@yie_than)の個体値計算プログラムを組み込むことで、個体値パズルができる個体が出るまで探索し続けることが可能になりました。(本当に感謝)
ウィンドウの設定は以下の画像の通り。

ほぼデフォルトで大丈夫です。
柱、星、タイプだけ設定します。今回はサシカマス、ドジョッチ、ゴルダックあたりを狙うためタイプ1だけ水で指定しています。
設定例 4日目(2体目)
上記の設定で3Vとパズルできる個体が見つかったため、以下の設定にします。

3Vだとゴルダックかウッウだったので若干出やすいウッウにします。
タイプは飛行・水を選択。星の数はウッウが出やすい★4を選択。2体目の個体を選択しあとはデフォルトのまま。
設定例 5日目、6日目
5日目と6日目はVの数が少ないほうがいいので、今回は2Vを狙う設定にします。


4日目(1体目)とほぼ同じ設定。
大まかな流れ
設定した後は終了するまで待つだけですが、一応どういった流れで動くかも書いておきます。
1.指定された日にち(n日目)のレイドが指定されたタイプ、星の数と一致するかを確認します。一致しなければリセットして1日目からやり直します。
2.指定のレイドを発見したら戦闘を行い捕獲し、レベル上げを行います。
3.ステータスを読み込み個体値を計算します。4日目(1体目)ならパズルできるか確認し、それ以外は指定されたVの数なのかを確認します。
一致しない場合は4日目(1体目)なら日付を1日進めてレポートを書き1.からやり直し、それ以外は日付そのままで1.からやり直し。
seed特定と消費終了後の設定
seedの特定が終わり消費も終了した後、光らせたいポケモンを探索することもできます。(高速消費のプログラムは他の人が作ったものを探してください)ウィンドウの設定は以下の画像の通り。

今回はサシカマスを狙うため水単タイプの星3を選択。(ゴルダックも出るけど)レイド発見時の項目を「キャンプバックアップ後、終了」を選択することで、指定したレイドを見つけたらキャンプを開閉してプログラムを終了します。

おまけ
大雑把に消費後、現在の消費数を把握するためにレイドを倒すのが面倒だったため、本プログラムのレイド戦闘部分を切り取ったものを作りました。
(ついでに捕獲直前で止める機能も追加してます)
「レイド乱数用_レイド討伐」を実行することでウィンドウが開きます。


おまけ2
現在消費数がわかって10とか20とかずれていた分、少しだけ消費するのが面倒だったので少量の自動消費も作りました。
レイド画面で消費するので遅いです。1~20程度の時に使うといいかも。
「レイド乱数_消費調整」を実行することでコンフィグがでるので消費数を入れてOKを押してください。

画像認識がうまくいかない場合
使用しているキャプチャーボードによっては画像認識がうまくいかない場合があります。もしうまくいかない場合は以下の閾値(threshold)を調整することで動くかもしれません。(閾値の値が知りたい場合はshow_valueの部分をTrueにするとログに出力されます。)
誤認識が多い場合は閾値を上げて、画像が見つからない場合は閾値を下げてください。それでもダメならものすごく面倒ですが画像を差し替えてください。(1230枚以上ある)
◆レイド画面
・星のチェック 375行目(デフォは0.93)
・タイプのチェック 377行目、380行目、383行目(デフォは0.93)
◆つよさを見る画面
・タイプ1のチェック 537行目(デフォは0.93)
・ポケモンの名前チェック 549行目(デフォは0.93)
・ポケモンの姿違い等のチェック 551行目~938行目(デフォは0.88~0.93)
・特性のチェック 2004行目、2006行目、2008行目(デフォは0.93)
・性格のチェック 2049行目(デフォは0.93)
・個性のチェック 2053行目、2055行目、2057行目、2059行目、2061行目、2063行目(デフォは0.90)
使用しているプログラム
・個体値計算 作成者:いー様(@yie_than)
・高速日時変更プログラム ver.0.1.0 作成者:フウ様(@dragonite303)
おわりに
本プログラムはいー様(@yie_than)の作成した、個体値計算プログラムを一部改変して利用させていただいております。OCRの不明点はこちゃてす様にアドバイスをいただきました。
お二方本当にありがとうございました!
また、何か不具合や不明点がありましたらジュナリ(@junari000)にDMかリプライを送っていただければ反応します。