# ポケモンXD乱数調整 初期seed厳選を自動化する 見てわかる人向けの内容です。 ご自由に使っていただいて結構ですけど、保証や大したサポートはできません。悪しからず。 <a href="https://github.com/mukai1011/XDInitialSeedSorter"><img src="https://github-link-card.s3.ap-northeast-1.amazonaws.com/mukai1011/XDInitialSeedSorter.png" width="460px"></a>  JScript, Powershellと来て最終的にC#に移植しました。結果的にずいぶんすっきりしたと思います。 以下のツイートで披露したツールの完成版です。 <blockquote class="twitter-tweet"><p lang="ja" dir="ltr">みずようかんさん(@ AT12806379)のGCコントローラーArduinoファームフェアWHALEと夜綱さん(@ sub_827)のXDSearchを黒魔術でがっちゃんこして、ポケモンXDのseed厳選を自動化しました。<br>文字認識周りはImageMagickで下処理してTesseract OCRに食わせています、コマンドで完結してお手軽~ <a href="https://t.co/AWY3IVi3qz">pic.twitter.com/AWY3IVi3qz</a></p>— メイユール (@meilleur_pkmn) <a href="https://twitter.com/meilleur_pkmn/status/1473283040185298944?ref_src=twsrc%5Etfw">December 21, 2021</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> ## 環境構築 バイナリを置いておきますが最新ではないかもしれません。必要であればビルドしてください。 .NETのおかげで(確認していませんがたぶん)クロスプラットフォーム対応です。OpenCvSharpのruntimeがOS依存かも ### ハードウェア Arduinoでゲームキューブ制御ができる状態を前提としています。みずようかんさん([@AT12806379](https://twitter.com/AT12806379))の[WHALE](https://github.com/mizuyoukanao/WHALE)を使用します。ボタン操作でソフトリセットを行うのでサーボモーターは不要です。 ### ソフトウェア - Tesseract OCR - 文字認識に利用 - 特製の学習済みデータが付属しているので、tessdataに配置してください。 - xdj.traineddata (XD-Japanese) - xdn.traineddata (XD-Number) - [XDDatabase](https://github.com/yatsuna827/XDDatabase) - 夜綱さん([@sub_827](https://twitter.com/sub_827))のXDSearchコンソール版 - 子プロセスとして利用する際に相対パスが壊れないように少し改変してビルドします。 ```csharp static class Program { static void Main(string[] args) { // MakeDB(); // Load().CreateDB(); // while (true) // { Directory.SetCurrentDirectory(AppContext.BaseDirectory); LoadDB().SearchSeed(); // } ``` ```powershell # 簡易スクリプト # 適当なのであんまり期待しないでください # git # patch(wsl) # dotnet sdk git clone https://github.com/yatsuna827/XDDatabase cd .\XDDatabase\XDDatabase # 差分の適用 # GNU patchのWindows移植版を用意するかwslを使うか、手動でファイルを編集してください。 echo @" 19,20c19,21`r < while (true)`r < {`r ---`r > // while (true)`r > // {`r > Directory.SetCurrentDirectory(AppContext.BaseDirectory);`r 22c23`r < }`r ---`r > // } "@ | Out-File patchfile -Encoding ascii wsl patch --binary Program.cs patchfile # ダミーのcsprojを用意してビルド mv Program.cs ..\ rm -Recurse -Force Properties\ dotnet new console mv -Force ..\Program.cs .\ dotnet publish --runtime win-x64 --self-contained /p:PublishSingleFile=true --configuration Release mv bin\Release\net6.0\win-x64\publish XDDatabase # 計算済みファイルを配置 cd XDDatabase curl -Uri https://github.com/yatsuna827/XDDatabase/releases/download/binary/bin.zip -OutFile bin.zip Expand-Archive bin.zip mv bin\bin\Completed\ .\ rm -Recurse -Force bin,bin.zip ``` ## 使い方 README.mdにある通りです。設定に問題があるとコケるはず - `setting.json`を適宜変更する - ArduinoのCOMポートとキャプチャデバイス番号 - 目標seedは10進数表記で入力する - tesseractやXDDatabaseはパスを通せば編集不要。パスを通さない運用の場合は実行ファイルのパスを与える - `XDInitialSeedSorter.exe`を実行する ## キャプチャデバイスの較正 `setting.json`の当該箇所で、キャプチャデバイスの取得解像度と各要素の位置を調整できます。必要に応じて変更してください。 - 文字認識の精度に関わるので、解像度は高い方がいいです。 - 4:3推奨。極端に変形しているとOCRが上手く機能しないかもしれません。 - HPは3桁全てが、種族名は最も文字数の多い「レックウザ」「デオキシス」「ラティアス」がぴったり収まる矩形を指定します。GIMPの矩形選択がちょうどx,y,width,height表記なので捗ります ## おわりに 乱数調整を研究開拓する先駆者の皆様、とりわけ今回ツールを利用させていただいた夜綱さん([@sub_827](https://twitter.com/sub_827))、みずようかんさん([@AT12806379](https://twitter.com/AT12806379))に感謝いたします。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up