FRep

プログラム【基本ハート送信v2】

画像認識を使った基本的なハート送信プログラムです。

ランキング最下位から1位に向かってハート送信していき、1位で終了します。

フルオート・セミオートどちらでも使えて、漏れなく安定して送信します。

 

こちらのプログラムを作る前に、画像認識の記事をサラッとでも目を通して頂けるとスムーズにプログラムが作成できると思います。

 

スポンサーリンク

概要と特徴

画像認識で画面の中のハートを見つけてタップします。OKとハートを送信しました!(=送信確認)はタッチ操作でタップし、再びハートを画像認識で探します。

画面の中にハートが見つからなければ、「ランキング画像認識でエラーではないこと」「1位画像認識で1位ではないこと」を確認し、3.9人スワイプで画面を上にスクロールしてハートの画像認識を繰返します。

エラーが認識された時は、エラー処理ループでエラーを解消します。

1位が認識された時は、プログラムを終了します。

ランキング画像認識

「リトライが出たら」「イベントお知らせが出たら」という【エラー】をひとつひとつ見つけるのでなく、「ランキング画面にいるならば正常に動いている」「ランキング画像認識に失敗したら何かしらのエラーにある」という考え方です。

エラー処理ループ

無限ループにならない作りになっています。

エラー処理ループを使うことにより、通信待ち時間(=いわゆるミキピョン=ミッキーの画像がピョンピョン跳ねているアレです)やリトライ等にも対応しています。

エラー処理ループを教えて下さったのは、本職プログラマーのHさんですが流石の仕様です!このおかげでプログラムが止まることが本当に少ないです。

強制ポップアップ対応[v2]

送信中に強制ポップアップ(期間限定イベントインフォメーション)が出た場合には、エラー処理ループに入り【OK】と【とじる】をタップして元の送信プログラムに戻ります。

強制ポップアップは、キャンセルだと元に戻って送信を続けることが出来ますが、OKの位置がハートのOKやBOX受取のOKと同じなので、OKをタップしてしまう可能性が高いです。
エラー処理ループでも、OKリトライ画像認識でOKをタップしますので、OKされるものだとしてその先のとじるを画像認識でタップして復帰させるようにします。

 

実際の送信の様子

送信時間は、ランキング人数101人-自分=100人で7分44秒でした。
これは端末の性能と通信環境(エラーの回数)により変わります。

FRep基本ハート送信v2

※音量にご注意ください

FRep実行中のパネル

プログラム実行中にFRepパネルが変化しているのを見てください。6位と2位の辺りで一瞬だけ「エラー」の文字が確認できます。これは[プログラム4.ハート画像認識]と[プログラム14.エラー待機]でスキップ表示ありに設定しているからです。この表示があるとエラーの有無がわかりやすいです。

尚、FRepパネルは画像認識の邪魔にならない位置に置いてください。FRepパネルがある為に画像認識が失敗する場合もあります。

又、オプション-記録/再生設定で【再生プロセスの通知】をONにしている場合もポップアップの位置には充分注意してください。デフォルトでは【とじる】画像認識と位置が被る為に、失敗したり処理が遅くなる事があります。出来れば【再生プロセスの通知】はOFFをお勧めします。

 

FRepのプログラム

FRepハート送信プログラム

FRepハート送信プログラム

FRepハート送信プログラム

 

プログラムの説明

1.[待機]0.5秒–直前のプログラムからの予備待機です。

2.[ハート送信ループ]15回–通常は4回で良いのですが、3.9人スワイプで5回になる場合、ミキピョンやエラーでも4回以上になる可能性もあるので念の為15回に設定しました。

3.[待機]0.5秒–送信確認からの待機を含めて、若干の待機が必要です。

4.[ハート画像認識]←詳細はこちらを確認

FRep画像認識ハート制御設定

判定時間に0.5秒入れました。こちらは3.待機と合わせて調整可能です。
[スキップ/延長用パネルを表示]にチェックを入れることによって、プログラム実行時にFRepパネルに表示が出ます。

5.[OKタップ]–間隔0.6~1.0秒(待機後タップ)

FRepタッチ操作OKタップ

OKの[K]辺りの位置をタッチ操作でタップします。
ハートをタップしてからOKまでは通信しないので、この時間は端末の性能だけによります。あまり変動しないので間隔は詰められるだけ詰めても大丈夫です。
但し、OKがタップ出来る前にプログラムがタップしてしまうと、エラー処理ループに回ります。そうなると却って遅くなるので、FRepパネルの「エラー」表示をよく確認してエラーにならない範囲内で時間を短くしてください。テスト端末(P10lite)では何度かエラーもあったので0.6秒が限界でした。

[20190809]修正 OKタップ位置を念の為、[K]辺りの位置に変更しました。
詳細はこちら→OKリトライの画像認識とタップを修正

FRepツムツムOKのタップ位置

6.[ミッションタップ]–間隔1.0秒~1.3秒(待機後タップ)

ミッションタップとは…今日のミッションすぐ下の【達成度バー】の辺りをタップすることを指します。ランキング画面でタップしても何も起こらない箇所として、どこをタップしても回避できる場合によく使います。詳細は→こちら

FRepタッチ操作ミッションタップ

ハートを送信しました!(=送信確認)は、どこをタップしてもポップアップが消えること、そしてランキング画像認識とエラー処理ループがあればタップに失敗しても問題ないことから、画像認識ではなく[ミッションタップ]にしました。これにより少しは送信時間が短縮できると思います。
OKをタップしてから送信確認Popupまでは「通信」します。したがってミキピョンが出る可能性もあります。端末の性能プラス通信環境により必要時間が変わり変動もあるので、若干長めに設定した方が結果的に送信時間は掛からないかもしれません。エラー処理ループに回らない範囲で間隔を設定してください。

尚、画像認識ではなく[ミッションタップ]にして唯一困るのは、最後のハート送信後にミキピョンが出た場合です。この場合にミキピョンが長く続くと、もうハートは無く1位認識も成功して送信プログラム完了になります。しかしミキピョンがあるとボックス受取プログラムが失敗になる可能性が出てきてしまいます。

7.[ハート送信ループ終了]

8.[ランキング画像認識]←詳細はこちらを確認
FRepランキング画像認識
ランキング画面であることを確認する為の画像認識です。もしランキング画面にいなかったらエラー処理ループにいきます。ここでは「スクリーンショットを撮る」にしましたが、チェックを外しても大丈夫です。

9.[1位画像認識]←詳細はこちらを確認

FRep1位画像認識

1位だったらプログラムを完了します。「スクリーンショットを撮る」のチェックを外して省略していますので、8.ランキング画像認識に使用したスクリーンショットを使って判定します。
本来ならば、このプログラムで直接「完了」にすれば良いのですが、何故かプログラム途中の完了は完了にならずに次のスワイプにいってしまう事がある為、「完了」はなるべくプログラム最後に入れています。

10.[3.9人分スワイプ]–1位に向かってスクロールするスワイプです。3.9人にする理由はこちらをご覧ください。タッチ操作のスワイプでも可能です。テストプログラムは操作の記録(Rec)で作ったものです。ぴったり4人にしなくても良いので0.2秒スワイプも作成可能です。

11.[待機]0.2秒–ランキングが1位まで来た時に、それ以上スワイプ出来ない場合はスワイプ戻りがあります。その時間を待機(ビョーン待ち)しないと、うまくハートの画像認識が出来ません。待機後はプログラム2へいきます

12.[エラー処理ループ]15回–12~18がエラー処理ループです。

13.[ミッションタップ]–間隔0.5秒(待機後タップ)とりあえずミッションタップで何とかなるものも多いです。

14.[エラー待機]0.5秒–ミッションタップと次の画像認識前に待機がないとうまく動かなかった為に入れました。

FRepエラー待機

[待機スキップ/延長用パネルを表示]にチェックを入れることによって、プログラム実行時にFRepパネルに表示が出ます。ラベル名に「エラー」と入れたので、FRepパネルもわかりやすいです。

15.[OKリトライ画像認識]←詳細はこちらを確認
[20190809]修正
OKリトライ画像認識の判定を80%→93%に変更しました。

FRepリトライOK画像認識

まずここで「スクリーンショットを撮る」にしました。この後2つの画像認識には「スクリーンショットを撮る」のチェックを外し、この画像を使いまわします。

16.[各種とじる画像認識]←詳細はこちらを確認

FRepとじる画像認識

これを入れることによって強制ポップアップ対応になります。

17.[ランキング画像認識]←詳細はこちらを確認
FRepランキング画像認識
ランキング画面になればプログラム2に戻ります。画像認識はプログラム8と同じです。

18.[エラー処理ループ]終了–ループ猶予15回の間に復帰できる予定ですが、ミキピョンが長く出る様な端末/通信環境の場合はループ回数を増やしてください。

19.[スクリーンショット]←詳細はこちらを確認

FRepスクリーンショット設定

もし15回でエラーから復帰できなければその時のスクリーンショットを撮ります。

20.[中断]–例えば、メイン端末で二重ログインしたことによってログイン画面に戻ってしまった時、ツムツムアプリ落ちでホーム画面に戻ってしまった時などに中断になる可能性があります。スクリーンショットで何故中断したのかを確認しておきましょう。
尚、このプログラムを関数で使用した場合は、[中断]と[完了]でプログラムの分岐先を変えることが出来ます。このプログラム単体で使用している場合は[中断][完了]どちらも同じです。
プログラムによっては中断後に再び復活して送信を続ける方法もあります。

21.[完了]

 

まとめと修正情報

以上で基本的なハート送信プログラムが完成しました。

[20190225]修正
ランキング画像認識の判定を80%→90%に変更しました。

[20190809]修正
1.OKリトライ画像認識の判定を80%→93%に変更しました。
2.OKタップ位置を念の為、[K]辺りの位置に変更しました。

 

次のおすすめはこちらです。

コメント

  1. M 様 より:

    イベント開始の強制ポップアップのスクショを撮りたいのですがイベント開始直後に使用中の端末で1度しか出ないので難しいです。送信機側でスクショを撮らないと、他の端末で撮っても座標位置がずれるので、画像認識には向かないですよね?

    そういう場合は、一時的に送信機の自動送信を止めて手動にて11時に出るならそのタイミングでスクショを撮るしかないのでしょうか?

    かのんさんのフレッププログラムをまるごとコピーして使用させていただいてますが、エラーのループでスクショを撮り諦めてその回の送信はストップする仕組みになっているのでしょうか?

    かのんさんのハート送信プログラムで私が理解するには、イベントの強制ポップアップが出るとOKをタップしてイベントページに進みフレップはエラーループでも復帰出来ずスクショ撮って諦めてその回の送信が止まるものだと思っています。

    そうなると、エラースクショは撮っていても、イベントページのスクショになりますよね?

    手動しか方法がないのなら仕方ないのですが、これからもイベントは毎月あります…

    何かいい方法がありましたらご教授お願いします。

    面倒な質問で申し訳ありませんm(__)m

    • かのんかのん より:

      コメントありがとうございます(^^)

      まず、基本ハート送信プログラムでイベント強制ポップアップが出た場合ですが、OKをタップ→とじる画像認識でタップして送信に復帰します。
      そのまま送信を続けますので、確かにスクショは撮れませんが、エラーで止まる事はありません。

      スクショが欲しい場合ですが、起動プログラムでしたら撮る事が出来ます。イベント開始の11時に送信と送信の合間でしたら、次のプログラム実行時にスクショが撮れているかと思います。

      起動v5.1プログラムでしたらスクショを撮った後にそのまま送信出来るかと思います。起動v5.1ezプログラムはスクショを撮ったその回はエラーとなり送信は出来ません。

      • かのんかのん より:

        追記
        上記の様にイベント強制ポップアップのスクショは必須ではありませんが、どうしても欲しいけれども起動のタイミングが合わない場合は、下記の方法も可能です。

        アンインストール→インストール または ストレージデータの消去 の後に手動でツムツムを起動

        以上よろしくお願い致します。

  2. きょー より:

    Twitterでリプした者です。
    仕事中の長時間自動化をしているのですが、帰宅するとスマホの電源が何故か落ちていてFrepを開くと「strservからの応答がありません」と表示されてもう一度winの設定ツールを実行しなければならなくなります。ツムツムのメールボックスを見てみると5時間程は稼働していたようです。

    • かのんかのん より:

      「長時間自動化」とは親型をされているのでしょうか?
      長時間の常時稼働は端末に大きな負荷がありますので、バッテリーの劣化具合によっては充電しながらでも電源が落ちる可能性があります。またXperiaZ4等、劣化が無くても常時稼働に不向きな端末もあります。
      稼働し始めてから1~2時間後に充電の状態を確認してみて下さい。どんどん減っていくならば常時稼働には不向きな端末かと思われます。
      親型ではなくランキング固定型のフルオートでしたら、マクロドロイドを利用した再起動型に変えてみることをお勧めします。端末を30分以上休ませてあげる事でうまく動く可能性があります。

  3. Ryo より:

    初めまして。失礼します。
    Ryoと申します。

    frep初心者ですが、ブログ記事を読ませていただき、フルオート完成に向けて作業を進めている次第です。

    1点お尋ねします。
    当記事に記載されている手順に沿ってプログラムを組んでみたのですが、ハートを4人に送信した後、本来であれば、次の4人に送信するためにスワイプ作業に移るかと思うのですが、スワイプ作業に移行せずに14のエラー待機に移行してしまいます。スワイプ作業に関しては、操作の記録での作成・タップでの作成(タップ→スワイプに変更はしています)を試してみましたが、上手くいきません。前記事のセミオートのハート送信時にはしっかりと4人分スクロールしてくれているのですが、かのんさんの方で考えられる原因等ありますでしょうか?

    ご教授いただけますと幸いです。
    よろしくお願いします。

    • かのんかのん より:

      プログラムの中でエラー処理ループへ分岐するのは、[8.ランキング画像認識]だけです。
      という事は、[8.ランキング画像認識]が失敗している可能性が大きいと思います。
      そうでなければプログラムの分岐先が間違っている事になります。
      まずは[8.ランキング画像認識]がきちんと動作しているかを確認してみて下さい。
      プログラム作成頑張ってくださいね!

  4. Ryo より:

    返信いただき、ありがとうございます。
    正直、まさか返信をいただけるとは思っていませんでした(涙)
    本当にありがとうございます。

    なるほどですね、まずは[8.ランキング画像認識]を確認したいと思います。
    進捗があり次第、再度、コメントさせていただきます。

    ありがとうございました!

  5. Ryo より:

    たびたび失礼します。
    ご教授いただいたとおりに[8.ランキング画像認識]を確かめてみましたがうまくいきませんでした。
    テストでもしっかりと認識しているようでしたが、やはり上手くいかず、再度、ランキング画像認識の範囲を設定し直して、テストでもしっかりと認識しました。その後にツムツム内で一連の流れを再生してみましたが、今度はハートを4人分送信後、エラー処理にすら進まず、再生が完了してしまいました。
    分岐に関しては、完了後は「次へ」、失敗(時間切れ)後は「12.エラー処理ループ開始」に指定しています。

    何か他に考えられる原因等、ございますでしょうか?
    よろしくお願いします。

  6. Ryo より:

    再度、失礼します。
    恥ずかしながら、設定ミスが発覚しました。
    ミス修正後、スワイプすることができました。
    お手間を取らせてしまい、大変申し訳ありませんでした。

    • かのんかのん より:

      ミスを発見できて良かったですね!
      初めて間もない方はミスを見つけるのも難しいと思います。
      1つずつ確認していくしかないと思いますので頑張ってください!

スポンサーリンク
タイトルとURLをコピーしました