【Poke-Controller】時空の歪みの色違い探し自動化(紅蓮の湿地ver)【レジェンズアルセウス】
はじめに
時空の歪みで色違いを検知したい!できればポリゴンの色違いがほしい!
そんな思いから、Poke-Controllerを使ったレジェンズアルセウスの時空の歪み色違い探し自動化プログラムを作成しました。
でも、ポリゴンには会えていません。改良の余地がありそうです。
前回紹介した音声認識プログラムを使っています。
プログラムは下記に格納しています。
今回利用するファイルは、「ArceusDistortion_JPN.py」と「ArceusDistortion_JPN_debug.py」の2つです。
何が出来るの?
紅蓮の湿地エリアで 、時空の歪みごとに決めたルートを自動で移動します。
色違いのポケモンを検知するまで、プログラムが動き続けます。
ただし、期待値は低いです。1週間動かしても色違いに会えないかもしれません。
捕獲は手動です!逃げられないように注意してください!
ただ、焦って捕まえようとするとこうなります。
注意事項
PokeCon3.6(Python3.6)でのみ動作確認しています
Poke-Controllerの環境設定が必要です。
(pyaudioというライブラリをインストールする必要があります)
事前準備
Poke-Controllerの環境設定(pyaudioのインストール)
過去の記事の項目「事前準備」を参考にしてください。
(人によって環境が違うため、記載のやり方ではできないかもしれません)
プログラムの格納
1. ダウンロードしたファイル「ArceusDistortion_JPN.py」と「ArceusDistortion_JPN_debug.py」を格納する
下記フォルダに格納してください
パス:Poke-Controller-master\SerialController\Commands\PythonCommands
2. ダウンロードしたフォルダ「Arceus_Tree」を格納する
下記フォルダに格納してください
パス:Poke-Controller-master\SerialController\Template\
レジェンズアルセウスの設定
下記の状態であることを確認してください
(1)オプションで「話の速さ」を「速い」にする
(2)カメラ感度を「2」にする
(3)オプションで「BGM」と「鳴き声」を「0」にする
(4)「あんぜんおまもり」を道具欄に入れる
※移動時に高所から飛び降りるため、ないと落下死します
(5)「紅蓮の湿地」の「湿地ベース」へ移動する
(6)ライドポケモンは、ウォーグルにカーソルを合わせる
(7)地図の縮尺は初期状態で、時空の歪みにアイコンが重ならないこと
※時空の歪みのマークで画像認識をするため
(8)レポートを書いておく(おまかせレポートはオフにする)
※プログラム内でリセットするため、必ず事前にレポートしてください
動作の流れ
「LA_時空の歪み探しJPN」(ArceusDistortion_JPN.py)を実行します。
動作の流れは下記のとおりです。
1.時空の歪みの発生を待つ
2.時空の歪みの場所を調べる
3.時空の歪みへ移動する
4.色違いを検知しなければリセット
上記1~4の動きと、色違い遭遇時の動きを動画にまとめました。
1.時空の歪みの発生を待つ
「時空の歪みが発生した」が表示されるまで画像認識を繰り返します。
2.時空の歪みの場所を調べる
地図を開いて時空の歪みの場所を画像認識で調べます。
時空の歪みは必ず下記5か所のいずれかで発生します。
3.時空の歪みへ移動する
さきほど確認した場所へ自動で移動します。
今回狙うポリゴンは、各エリアの決まった3か所でのみ出現します。
そのため、闇雲に動き回らず、エリアごとにその3か所だけを移動します。
移動時に高所から飛び降りるため、あんぜんおまもりがないと落下死します
※ライドポケモンを呼び出すときになるSEが、色違いのSEと重なると検知できないため、移動時はなるべく力ライドポケモンを使わないようにします
仕様が分からず推測ですが、エリアによって出現率が異なる気がします。
エリア1ではほぼ100%、3か所でポリゴン(またはヒノアラシ)に出会えますが、他のエリアでは3か所のどこでも出会えないことがほとんどでした。たまに会えても1匹だけで、一度に複数匹は会えませんでした。
なお、移動ルートは検証中で、プログラム改善の余地ありです。
ポリゴンは決まった3か所に出現するのですが、毎回位置が少しずつずれるので、位置が少しずれてもポップできるような位置に着地する必要があります。
ただ、試行回数があまり稼げず、移動ルートの最適化ができていません。
特に、エリア2、エリア3での遭遇率が非常に低いです。。。
誰か助けてください!
4.色違いを検知しなければリセット
3か所への移動後、色違いを検知しなければゲームをリセットします。
時空の歪みから無事に脱出することは困難なので、この方が簡単です。
プログラムを使う前の確認事項
プログラム利用前に、必ずご自身の環境で色違いを検知できるか確認してください!
(本自動化プログラムは事前に用意した色違いSE検出用のデータと比較して色違いを検知する方式のため、パソコンやキャプチャソフトの環境によって検知できない可能性があります!)
具体的には、実際に色違いのポケモンに遭遇して、色違いSEを検知できるか確認します。
色違いの遭遇方法ですが、下記の方法がおすすめです。
・サブ任務19「おかしなポニータ目撃報告」で色違いポニータに出会う
・検知方式の異なる自動化プログラムで色違いに出会う
色違いポケモンに出会った後にキャンプへ戻り、もう一度その場所へ移動することで、また色違い出現時のSEを聞くことができます。
これを利用して、今回の色違い検知プログラムを動かした状態で、色違い出現時のSEを聞くことで、色違い検知できるかを確認してください。
色違い検知などの動作確認用プログラムを用意しました。
「LA_時空の歪み探しdebug」(ArceusDistortion_JPN_debug.py)を使うと、今回のプログラムを関数別に動作確認することができます。
実行後、「実行したい番号を入力してください」で待機状態になります。
(待機状態にならない場合は何度か「Start/Stop」を押してみてください)
コマンドライン(真っ黒の画面)で数字を入力できるようになります。
音声認識テストの場合、「9」を入力後「Enter」を押下してください。
音声認識処理が始まると、一定時間ごとに「一致率:0.xxx」と表示します。
この状態で、手動操作して色違いポケモンに遭遇し、色違い検知できるか確認してください。
「色違いを発見!」と表示されていればOKです。
色違い検知できない場合には、ご自身で色違い出現時のSEを録音して、プログラム側で読み取るようにする必要があります。
SEの録音や編集は、こちらのサンプルプログラムの記事を参考にしてください。
なお、この動作確認用プログラムでは、他の機能もテスト可能です。
例えば、「3」~「7」でエリア1~エリア5の移動ルートを確認できます。
他の機能も含めた動作確認用プログラムのデモ内容紹介動画を作りました。
※動作確認用プログラムでは、時空の歪みを発見後、HOME画面で停止するので、自動化の動作確認だけでなく、手動で確認する場合にも使えます。
上手く動かないときは
1.interruptでプログラムが終了する場合
⇒画像認識に失敗していることが多いです。
直前で読み取っているpngファイルを、ご自身で取得したものに差し替えた状態で試してみてください
2.音声認識に失敗する場合
・マイクなど他の入力機器が接続されている
⇒マイクなど他の入力機器を外した状態で試してみてください
・PC上で他の動画や音声を再生している
⇒ほかの動画や音声を再生しない状態で試してみてください
改善ポイント
本プログラムは下記の問題があり、改善の余地があります。
・40分以内に「時空の歪み」を見つけられないことがわりとある
⇒時間帯によって画像認識が上手くいっていないかもしれません。
範囲指定して画像認識するとか、画像を修正するとか必要かも
・時空の歪みでレア枠のポケモン(ポリゴン/ヒノアラシ)に会えない
⇒エリア2の1箇所目,エリア3の1箇所目と2箇所目、エリア4の2箇所目と3箇所目は立ち位置が悪いため、出現させられていないと思われます。
移動ルートの改善が必要なのですが、手動操作でも全然遭遇できないので、どう直せば良いのか分かりません!
時空の歪みでレア枠のポケモンに会いやすくなる条件など分かれば良いのですが。。。
あとがき
自動化を推進してくださっている先人の方々、いつも本当にありがとうございます…!
このプログラムがどなたかの喜びに繋がればうれしいです。
プログラムが無事に動いたこと、上手くいかなかったことなどあれば、
記録として残していただけると大変ありがたいです。
他の方が調べたときに、その記録がきっと役に立ちます・・・!
特に私が喜びます!