【ポケモン剣盾】マイコンで乱数調整・自動周回する方法(7/18修正)

# PokemonSWSH_SeedSearchSupport
~~ポケモン剣盾の乱数調整を手助けするためのツール作成をしました。乱数調整特化型のカスタマイズです。~~
乱数調整だけでなく自動周回や自動孵化にも対応しました。（20020715）
使用や準備等におけるトラブルへの対応はできません。すべて自己責任のもと行ってください。 

- [ポケモン剣盾乱数調整作業自動化](https://qiita.com/chibi314/items/975784f6e951341fc6ce)  （@chibi314さん）
をもとに作成しています。公開許可を下さったことと合わせてお礼申し上げます。

##やれること
[PokemonSWSH_SeedSearchSupport(7/18)](https://github.com/mikanpk/PokemonSWSH_SeedSearch_EXE)
![コメント 2020-07-15 113909.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/c57a09a9-cf9b-4709-81c6-fed7706d03d4.jpeg)



- 乱数調整補助
    - 高速乱数消費
    - seed特定に必要な操作（レイドを繰り返す作業等）
         - 本ツールはゲームの操作を補助するものであり、seed特定ツールではありません
         - ぼんじり様の[SW Seed Calculator](https://bzl.hatenablog.com/entry/2020/01/05/212130)などを使用してください
- 自動周回
    - きのみ集め
    - 羽集め
    - IDくじ
    - バトルタワー
    - ほりだしもの市
    - 自動レイドバトル
    - W稼ぎ
    - タマゴ孵化
- 市販のコントローラでの操作（xInput\directInput）
    - 左パッド動くようになりました（20200715）



##用意するもの
[【ポケモン剣盾】自動化ツール-PokeAutoEX（乱数調整・自動孵化等）](http://gamearena.blog.jp/archives/31585433.html) さんと同じです。
要望があれば詳しくかきます。

- 各種プログラム
   - 本ツール（[PokemonSWSH_SeedSearchSupport](https://github.com/mikanpk/PokemonSWSH_SeedSearch_EXE)）
        - Arduinoに書き込むSwitch操作用ライブラリも同梱（pokemon_automation_arduino_firmware）
   - Arduinoにプログラムを書き込むためのツール（[Arduino IDE](https://www.arduino.cc/download_handler.php?f=/arduino-1.8.10-windows.exe)）
   - Arduinoをコントローラとして認識させるツール（[ArduinoSTL](https://www.arduinolibraries.info/libraries/arduino-stl)）
- .NET環境のあるWindowsPC （Windows 10以外は未検証）
- マイコン（Arduino Leonard 若しくはその互換）
- FTDI FT232 （USBシリアル変換）
- PCとArduinoをつなぐUSBケーブル
- ArduinoとFTDI FT232をつなぐジャンパ線
- FTDI FT232とSwitchをつなぐUSBケーブル
- USB接続のコントローラ（[F310](https://gaming.logicool.co.jp/ja-jp/products/gamepads/f310-gamepad.html)を使用しました）


#導入
1. 本ツールのダウンロード
 - [ツールとArduinoに書き込むSwitch操作用ライブラリ](https://github.com/mikanpk/PokemonSWSH_SeedSearch_EXE)をダウンロードする
![コメント-2020-07-15-135423.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/da84d95f-25db-00b0-c5ff-90aeccd10008.jpeg)

2. マイコン（Arduino Leonard）の準備・書き込み・接続
 - [【Switch】自動化アダプターの製作方法（ハンダ付け不要）](http://gamearena.blog.jp/archives/31585433.html) さんと同じです。
     - 準備ができたら、SwitchとFT232基板（小さいほう）、ArduinoとPCをつなぐ
     - このとき、無線コントローラが繋がっていると動作しないので、Switchのコントローラは本体につけておく

##使う前のSwitch側の設定
- 本体設定の「インターネットで時間を合わせる」を**OFF**にする
- Xメニューを下図のように配置する
  ![Ecn-KzxUEAERt9B.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/ba8305e4-2993-06ff-cfa7-5bcabce01b38.jpeg)

- 設定を下図のようにする
    - 話の速さ⇒速い
    - 戦闘アニメ⇒見ない
    - 手持ち⇒自動で送る
    - ニックネーム登録⇒しない
    - ![a.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/d39c0803-272b-f458-4259-e47993a49de2.jpeg)
- バッグの道具を、けいけんアメが**一番上**に来るようにする（Lv100にできるだけの数があること）
 ![EcoGKZ2U8AAy4RL.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/d5e22098-5212-41e8-c02d-b36aef92b0ea.jpeg)

- 手持ちのポケモンを**レイド用1体**のみにする
    - タマゴ孵化の場合は特性「ほのおのからだ」1体のみにする
![EcoGKZ1U0AMm6FQ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/befd3b0f-9e14-4b09-25a3-84e27d46da61.jpeg)



##使う前のPC側の設定
- シリアルポートの指定と、コントローラ（PCに接続）があればその入力形式（xInput/directInput）を選択
     - コントローラを動かしてみて、右側のINPUTのテキストが想定通りに変わればOKです
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/5ddf6355-1503-0ff2-d199-69d6e0185800.jpeg)


#使い方

基本的に見たままの内容です。
ボタンへのオンマウスでツールの使い方が出ます。

### 日付設定
- ゲーム画面を表示した状態でクリック
    - 場所はどこでもOK 
    - ![2.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/44d6c06e-6136-d627-cc47-ea79ad2df76d.jpeg)



      


### seed特定（レイド使用）
![3.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/7581a9cc-a01b-9f2d-664d-b37c771e40db.jpeg)

- レポート後次の4日目へ
    - レイド画面を表示した状態でクリック
    - 4日目（1体目）が目的のポケモン（2V,3V）が出なかった場合に使用します
 ![EcnpJbbU0AALCxZ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/c251f5b5-16ef-2887-218c-d3079be5c20b.jpeg)
- 1日ずらした後の4日目へ
    - どの画面でもOKです
    - 4日目（1体目）が目的の個体値でなかった場合に使用します
- N日目の個体
    - どの画面でもOKです

### レイドバトル

![4.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/eb7f5181-8cde-6363-4671-2910e147e9f8.jpeg)

- レイド開始（みんなで・ひとりで）
    - レイド画面を表示した状態でクリック    
        ![EcnpJbbU0AALCxZ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/c251f5b5-16ef-2887-218c-d3079be5c20b.jpeg)
              
- ダイマックスしてN番目の技使用
    - たたかうが表示されている状態でクリック    
      ![EcnpJb0UwAEB0Or.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/d02c5e2d-1404-c548-26d6-4f42e67d80bc.jpeg)
        - 押したあとは基本Aボタン連打を押しておけば大抵は勝てます    
        


### レイド後個体値確認
![5.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/1c01e046-052d-683e-0e15-14d35b5a48a7.jpeg)

- レベル100にする 
    - フィールド上で押してください
    - バッグを開いて、手持ちの2体目にけいけんアメをMAXまで与えます       
      - ![EcnppxgU8AI9YJQ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/2607651c-9e93-5ebd-f715-b7b1939221bf.jpeg)


- ステータス表示
    - 最初に入力するであろう性格を表示します
    
    
### 高速消費（**ランクマ後**）
![6.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/34441215-bf04-44cb-7b50-358c78629e62.jpeg)

- N日進める　
    - ワイルドエリアから**ポケモンセンターの中**に移動した状態で使います
        - ワイルドエリアで行うとエラーが発生しやすいそうです
    - HOME⇒設定⇒本体⇒日付と時刻⇒2000/1/1にしてから、指定値を消費（日付設定画面のまま終了します）
        - 2060年以降はうまく動作しないそうなので、最大消費数をとれるよう日付を最小値にしてから開始しています
   
    ![EcoMcpLUYAIDx2H.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/31ae7224-e07d-3b0e-df87-85f2c3a17098.jpeg)


### 日付調整
![7.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/cd8d428c-82b4-cc22-3e99-028b1ce369e4.jpeg)

- レイド画面を表示した状態でクリック
    - ![EcnpJbbU0AALCxZ.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/c251f5b5-16ef-2887-218c-d3079be5c20b.jpeg)


### 周回ボタン
- ランクマ後　⇒　ランクマッチ後に使用可能
- そのほか　⇒　ランクマッチ不要
- それぞれ対象に向かってAボタンが押せる状態でクリック
- **必要な設定や条件は、ボタンにオンマウス**で表示されます。
  -  バトルタワー自動周回用バトルチーム（ヌケニン対応）
  -  ![21438.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/0ca28fe1-4450-ebbb-af46-1991261ed756.jpeg)


### タマゴ孵化
- 孵化サイクル　⇒　孵化したいポケモンのサイクルを入力します
- BOX数　⇒　指定した数分孵化します（空のボックスが必要です）
    - ![9.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/671548/016522d4-f68a-9ba4-f0e7-799a02722aae.jpeg)
    
1. ワイルドエリアのハシノマ原っぱに移動
2. Xメニューを開く
3. 「ポケモン」を開く
2. 手持ちを特性「ほのおのからだ」1体にする
3. 「R」を押してボックスを表示する
4. 空のボックスを表示する
5. ボックス・「ポケモン」の表示を閉じる
4. 「タウンマップ」に矢印をあわせた状態にし、Xメニューを閉じる


# 最後に

## 所感
- [PokeAutoEX](http://gamearena.blog.jp/archives/31471103.html)さんだとタイミングが合わずずれが生じて使えなくて困った
- ワンボタンで大抵のことをやりたかった
 - スマホやタブレットから操作ができるようにしたかった（リモートデスクトップ利用）
     - ディスプレイが1枚しかなくて困っていた
- 下記のような地味に繰り返しの作業が多くて疲れた
 - 4日目(1体目)が目的のポケモンのレイドでない場合に、レポート・次の4日目へ進む
 - レイド後に経験飴を与えてレベル100にする
 - ステータスを表示する　
など
- コントローラが使いたかった
- コントローラの実装難しすぎてつらかった

## 注意
- @chibi314 様の日付すすめボタンとは少し仕様が違うので注意してください
    - 本ツールはゲーム画面の状態から始めます

## 参考
- [ポケモン剣盾乱数調整作業自動化](https://qiita.com/chibi314/items/975784f6e951341fc6ce)
- [【ポケモン剣盾】バトルタワー自動周回でBP荒稼ぎしてる話（日々検証中）](https://azukiss.hatenablog.com/entry/2020/01/26/095522)
- [【ポケモン剣盾】自動化ツール-PokeAutoEX（乱数調整・自動孵化等）](http://gamearena.blog.jp/archives/31585433.html) 

## 変更履歴
- 7/18　バトルタワー自動周回のコマンドを変更
- 7/18　バトルタワー用バトルチーム公開

## Q&A

- うまく動かない
    - 本体の設定、ソフトの設定、Xメニューの配置（と矢印の位置）、道具の配置などが指定の位置にあるか確認してください
- タイミングが合わない
    - 機種やソフトごとに若干待機時間が異なるためあわない場合があります