ツムツムでFrep+Llamaを使って自動化しよう

こんにちは.
今日はツムツムでハートを自動で送る方法を書きたいと思います.
需要があるかどうかは不明...

目次

環境を整えよう!

まずは環境設定ですね.
必要なものは...

Androidでの操作

  • まずFrepとLlamaをPlayStoreからインストールしてください.

  • 一度Frepを起動しておきましょう.

  • そのあと, 設定 > 開発者向けオプション > USBデバッグ にチェックを入れてください

    • 開発者向けオプションがない場合, 設定 > 端末情報 > ビルド番号 を10回ほど連続でタップしましょう

PCでの操作

  • PCでFrepの設定ツールをダウンロードします. こちらからダウンロード

  • zipファイルができるので解凍してください.

  • 今回使うのはその中に入っている win.bat , win_alt.batmac.bat , mac_alt.bat (以下バッチファイル)になります.

  • ここでAndroidとパソコンを繋ぎます.

  • PCでバッチファイルを開きます.ダブルクリックしてください.(win.batやってできなかったらwin_alt.bat)

  • Server Startedと表示されたら成功です.

  • AndroidでFrepを起動して画面上部にサービス実行中とでれば設定完了です.

Frepを設定しよう

今回はLlamaを使う想定でプログラムを組んでいきます.
ちなみに画像認識を使います.
最初に簡単なプログラムを作ってそこから拡張していきましょう.

Frepの設定を変更する

  • Frepを起動して,オプションを押してください.

  • システム設定から

    • 撮影タイプ > BMP(高速)
    • 全ビットを画像認識にしよう > off(チェックマークを外す)
  • これで画像認識の速さがかなり変わります.

新規プログラムを作成

  • ツムツムを起動して,通知タブのFrepをタップしてパネルを表示します.

  • おそらく左上にRecと赤い丸のパネルが出てきます.

f:id:yark0531:20160717142106p:plain:w100

  • 赤い丸を押すと記録が開始され,電源ボタンを押すと記録が終了します.

  • 今回は上にスクロールする関数を作ります.

  • 赤い丸を押して,適当に操作します.
    終わったら電源ボタンで画面オフにしてください.

  • 画面をオンにするとFrep簡易設定ってのが出てきますのでラベルに 送信 とでも名付けておきましょう.
    保存して一旦ツムツムを閉じましょう.

  • Frepを起動して,記録の管理を押してください.

  • するとさっき記録したプログラムがあります.

  • それをタッチして操作間隔の調整(プログラム変換)を押してください.
    基本このページでプログラムを作っていきます.

  • 前の画面に戻ると 送信+というプログラムが作られていると思うので 送信 は 削除しちゃいましょう.(無料だと3つまでしか保存できないので)

まずは画面上の4人にハートを送るプログラム

  • 早速ですが,ここが一番の肝です.
    ここが成功するとあとは適当でも大丈夫だったりします.

  • ハート認識用のスクショをとります.
    できればこんな感じで...

f:id:yark0531:20160717225915p:plain:w100 f:id:yark0531:20160717225937p:plain:w100 f:id:yark0531:20160717140121p:plain:w100 f:id:yark0531:20160717140125p:plain:w100 f:id:yark0531:20160717140131p:plain:w100 f:id:yark0531:20160717140132p:plain:w100

  • ピンクのハート4つのスクショとピンクのハートなし(自分の情報見る黄色いボタンあったほうがいい)のスクショとピンクのハートを1つにして少しずつずらしたスクショ(4枚ほど)の6枚です.

  • あとは送信の時に使うスクショも撮っておきましょう.
    ハート送るときの画面ですね.

f:id:yark0531:20160717233627p:plain:w100 f:id:yark0531:20160717233629p:plain:w100

  • 送信+ でプログラム変換の画面にいきます.

  • まずは何もない状態にしましょう.
    送信っていう関数があるはずなのでチェック入れて右上の四角が縦に三つあるやつ(以下メニューボタン)を押して削除を選択します.

  • 最初はハートの画像を認識して押す操作です.

  • 右下の条件を押して画像認識を選択します.

  • 画像ファイルから選択を押してピンクのハートが4つあるスクショを選びます.
    そのまま適用を押します.

  • 認識する範囲を指定となりますので,ハートの部分を選択します.
    移動はスワイプ,範囲の指定は二本指で広げたり閉じたりします.

  • 認識する範囲を指定するとき,機種によってはハートのピンクの部分だけを選択するほうが正確なのと,ボタン全体を選択するほうが正確なときがあります.

f:id:yark0531:20160717230452p:plain:w100

  • 次に検索範囲のボタンを押します.
    ここで横幅をボタン全体にし,縦はランキングのスクロールできる画面全体にします.

f:id:yark0531:20160717230512p:plain:w100

  • これを確かめるために先ほどのスクショを使用します.

  • その前に設定です.以下を参考にしてください.

f:id:yark0531:20160717222415p:plain:w200

  • 失敗のときの遷移はまだ設定しないで大丈夫です.

  • この設定が終わったら右上のテストを押します.
    これで画像を選択すると画像が認識されているか確かめることができるので,先ほど撮ったスクショを選択してちゃんとハートが認識されていればOKです.

  • うまくいかなかった場合は戻って調整しましょう.

  • できたら適用を押します.

  • これで画像認識は完璧(なはず)なので,4人に送るプログラムにします.

  • 次はハートをプレゼントでOKボタンを押します.

  • 認識する画像はこんな感じで選択してください

f:id:yark0531:20160718000909p:plain:w200

  • 設定は以下の通りに

f:id:yark0531:20160717233830p:plain:w200

  • 次はハートをプレゼントしました.の画面です.

  • 認識する画像はこんな感じで選択してください

f:id:yark0531:20160718000854p:plain:w200

  • 設定は以下の通りに

f:id:yark0531:20160717233848p:plain:w200

  • 最後に条件 > ループ開始で繰り返しを4回にセットして,全体をループさせます.

  • 最後にハートの画像認識の失敗のときの遷移をループ終了にして完成です.

  • 他の画像認識の失敗はありえないはず(ハートがうまく認識できれば)

できたプログラムはこのようになってるはずです

  1. ループ開始(4回)

  2. 画像認識(ハート)(成功:次へ,失敗:5へ)

  3. 画像認識(OK)

  4. 画像認識(TSUMTSUM)

  5. ループ終了

次は下から全員に送れるようにしよう

  • ツムツムを開いてRecを押して上に3人スクロールする関数を作ってください.
    3人ですよ?その方が確実なんで.
    ちなみにそこまで正確じゃなくても大丈夫です.
    ラベルを上スクロールとでもしておきましょう

  • 次にFrepを開いて,上スクロールをタップして,プログラム編集してください.

  • 上スクロールの右にあるチェックマークをつけて,メニューから切り出しを選択します.
    名前はそのまま上スクロール+で大丈夫です.

  • そしたら上スクロールと上スクロール+は邪魔なんで削除して,送信+のプログラム編集を押します.

  • 条件 > 関数呼び出し > 上スクロール+を押すと,一番下に上スクロール+が追加されています.

  • 条件 > 待機 > 1秒にして上スクロール+の上に実行すると安定するでしょう.

  • あとはこれに条件 > ループ開始 > 回数は送る人数÷3にして,全体を囲めばOKです.

プログラムのフロー

  1. ループ開始(送る人数÷3回)

  2. ループ開始(4回)

  3. 画像認識(ハート)

  4. 画像認識(OK)

  5. 画像認識(TSUMTSUM)

  6. ループ終了(4回)

  7. 上スクロール+

  8. ループ終了(送る人数÷3回)

送る前に一番下に移動してくださいね.
上からやると送信中にスコアを更新した人に送られない可能性があるので下からやってます.
不測の事態が起こるかもしれないので,ループ回数は多めにセットした方がいいかもしれません(私は+5回くらい)

次に受け取りを追加します.

なるべく一括受け取りの方がおすすめです.
なぜならLlamaを使う時に時間を指定するからです.
個別受け取りだと,送られた数に比例してプログラム実行時間が長くなります.

一括受け取り

これは簡単です.
必要なスクショは4枚(追加で3枚です)

  1. タッチ操作 メールボックスを開きます

  2. 画像認識 まとめて受け取るを画像認識でタップします

  3. 画像認識 OKを画像認識でタップします

  4. 画像認識 とじるを画像認識でタップします

  5. 画像認識 とじるを画像認識でタップします

個別受け取り

  1. タッチ操作 メールボックスを開きます

  2. タッチ操作 確認ボタンを押します

  3. 画像認識 OKボタンを押します

  4. 画像認識(TSUMTSUM)

以上を100回ループして,最後にとじるを画像認識します

Llamaを使って,時間を指定する

ここからはLlamaをいじっていきます.

まずはイベント1を作成します.

自分は条件でWiFiネットワーク接続を選びます.これをやらないとWiFiが繋がってない時にループしてしまって通信料が増えてしまうので…

高度機能でイベントを繰返すにチェック,繰り返し感覚を1時間2分とします

動作は画面オン(暗め)とLlama変数[x]を[1]ににします

次にイベント2を作成します.

条件を[x]が[1]ならにします.

動作にアプリショートカット実行で作成したFrepプログラムを指定します.その後Llama変数で[x]を[2]にします.

高度機能でイベントを遅らせるにチェックを入れ,3秒遅らせます.

最後にイベント3を作成します.

条件は[x]が[2] ならにします

動作は画面オフとLlama変数の[x]を[3]にします

高度機能でイベントを遅らせるにしてFrepプログラムの実行時間を指定します.

これでFrepプログラムを動かして指定した時間が経った後に画面がオフになります.自分は30分にしています.

Llama用にFrepプログラムを変更する

プログラムに変更を加えます.

Llamaを使うことによってアプリを終了させたり起動させたりします.

自分のプログラムのフローはこのようになっています.

  1. アプリ終了

  2. 待機 3秒

  3. アプリ起動

  4. ループ開始4回

  5. タッチ操作(ダブルタップ) : どこでもOK

  6. 待機0.5秒

  7. ループ終了

  8. 待機5秒

  9. 画像認識[TAP TO START]タイムアウト15秒:失敗したら8へ

  10. 待機10秒

  11. 待機0.5秒

  12. 画像認識[とじる]タイムアウト5秒:成功したら11へ失敗したら次へ

  13. 待機5秒

  14. 上記全受け取りプログラム

  15. 下スクロール[一番下にスクロールさせるプログラムを作ってください]

  16. 上記下から全員に送るプログラム

  17. 待機5秒

  18. 上記全受け取りプログラム

  19. アプリ終了

このようになります.

簡易になりまして申し訳ありません.

そして完全自動化へ...

あとはお好みで改良しちゃってください!

自分はスコア0の人には送らないように画像認識で頑張ってましたが精度が良くないので失敗してました…

最後の方適当になってしまい本当に申し訳無いです.

時間ができましたら画像の方を追加して見やすくしようと思っています.

ここまで見てくださってありがとうございました.