見出し画像

Frepによる自動化

Frepについて

Frepはマクロプログラムを作成し実行できるAndroidのアプリです
くり返し同じ操作を行うときに使用されます

Frepのインストールと初期設定

①Frepをプレイストアからインストールします(Frep2ではない)
②Frepを起動し、root権限の許可、ユーザー補助サービス、他のアプリの上に重ねて表示をオンにする
③アプリ制限を選択し、ポケモンGOにチェックを入れる

Frepでプログラムを作る

実際に自動交換のプログラムを作成してみます
プログラム作成に重要なのはフローチャートです
交換のプロセスをフローチャートにしてみましょう

続いてこのチャート通りにプログラムを作って見ます
チャートのひし形では判断、四角では操作を行っているのがわかるとおもいます
まず判断に必要なスクリーンショットと操作を作成します

★プログラムに必要なスクリーンショット
上のチャートに載っているモノを参考にしてください
①フレンド画面
②交換ポケモン一覧(検索でタグを指定している状態)
③ポケモン選択後の交換待機画面
④交換後の受け取ったポケモンの画面

★プログラムに必要な操作の記録
操作を記録するにはFrepを起動し、Frepの通知のタップします
Frepの操作ボタンが現れるので上部分を押しRecに合わせます
赤い丸を押すと操作の記録を開始します
電源ボタンでスリープに入ると記録を終了します
①交換ポケモンの選択画面で左上のポケモンの選択後、確定を押す

プログラムの作成
必要なスクリーンショットと操作が揃ったら実際にプログラムを作ります
プログラムの作成を選んだら記録した操作の①の選びます
プログラム例
①待機
②画像認識(交換ボタンを認識したらタップ)失敗時は①に戻る
③待機
④画像認識(ポケモン一覧の検索バー左の矢印などを認識)
⑤待機
⑥ポケモン選択の操作(記録した操作を再生)
⑦待機
⑧画像認識(交換の確定ボタンを認識したらタップ)
⑨待機
⑩画像認識(受け取ったポケモンを認識したら閉じるをタップ)

画像認識
基本的には画面の一部を事前に用意したスクリーンショットと見比べて判断させます
タップが必要な手順では成功時に認識領域中央をタップを有効にします
画像編集で認識させたい箇所を選択します
認識方法を検索類似度≧80%を選択し、検索範囲で認識させたい箇所の少し広めに周りを囲うように設定します
テストで用意したスクリーンショットの認識が成功すれば問題ありません
用意した画像に差し替えても失敗する場合は検索範囲が認識範囲より小さくないか確認してください
成功したときは次へ、失敗(時間切れ)の場合は一つ前の待機に戻ります
判定は10秒くらいにして画像認識に失敗した場合は一つ前の待機に戻りループさせます

待機
画像認識に失敗した場合に備えて、画像認識をループさせるため、各動作間に待機を挟みます
通信速度や端末の処理速度に依って微調整が必要な部分です

操作の再生
記録しておいた操作を再生します

繰り返し
再生回数を編集します
Frepの通知から再生回数を設定できます

プログラムの配布

作成したプログラムは以下のページで配布しています
停止中
時間のある時に再配布します

1080x2400用
RedmiNote9S,POCOF3,POCOX3Pro等

1080x2340用
Redmi9T,Mi10Lite5G,RedmiNote9T等

記録の管理-右上の三-ファイルから取り込みを選択し、強制取り込みを行う
画像の認識範囲を編集と操作記録の差し替えするだけで動くはずです
プログラム自体は変更する必要ありません
画面サイズに合わせてファイルを作ってあります
機種別に分けていますが該当機種がない場合は機種の画面解像度を調べて合うものを使ってください
画面サイズに合うものがない場合はどちらかをダウンロードしてプログラムの調整をしてください

導入の流れ
予め★の項目に記載している必要なスクリーンショット及び、操作記録を保存しておきます
動画にしていますので同じような流れで導入してください

実際の操作
Frep起動後、Frepの通知が出ているか確認します
ポケGOアプリ以外では制限されていますと表示されているはずです
また、交換したいポケモンにタグをつけておきます

1回目の交換は手動で交換を開始し、ポケモン選択画面で交換したいポケモンにつけたタグを検索します
ここで交換用のタグを設定しておかないと画面認識に成功しません

1回目の交換が終了したら、フレンド画面に戻るので、そこから自動交換プログラムの再生を開始します
プログラム再生がうまくいってない場合は何処でおかしくなったのかを確認し、該当箇所を調整します

通信速度や端末の処理速度に依ってベストなプログラムが異なるのでインポートしたまま使えないかもしれません
特に操作記録は操作間隔に余裕を持って記録しておかないと通信処理が追いつかなかった場合に失敗する原因となります
応用することであらゆる操作を自動化出来ます

重要

Frepのプログラムに関して、聞かれても答えるのが難しいです
プログラミングの知識こそ必要ありませんが、手順を洗い出し命令させ実行するというプログラミング的思考を理解している必要があります

流石にそこまで解説できる余裕はありませんので各々で理解に努めてください
https://kids.athuman.com/cecoe/articles/000178/