ほそめパパブログ

アラフォー3児のパパが子育てについて書いてます

ツムツム自動送信 FRepの画像認識を使ってみましょう。これでタップのミスはゼロ

投稿日:2017年3月16日 |最終更新日:

Pocket

どうもほそめパパです。

今回はツムツムのハートの自動送信でハートボックスやOK、閉じるといった確認ボタンをタップする方法について解説します。

「タップする方法といっても録画したタップを実行するだけじゃないの?」と思っているあなた

もちろん録画によるタップで問題が起きていなければそれでもいいかもしれません。ただ録画のタップの場合、予想外の動きをする可能性があります。

それとハートをタップする方法についても解説します。

ハートをタップする時にこのような事で困っていませんか?
「ハートの送信漏れがある」
「紹介をタップしてしまう」
「自分をタップしない方法が知りたい」


自動送信が録画だけの作りであれば必ずつまづく所です。ハートのタップは場所が変わってしまうので録画だけで送信漏れがでないようにするのは難しいです。私も今回解説する方法を知るまでは思い通りにいかずにかなり悩みました。

思い通りに動いてくれないと困る前にイメージ通りにタップする方法を知っておきましょう。

スポンサーリンク

録画のタップによる問題


録画でのタップの場合、どのような問題が起こるかについて解説します。録画のタップを使っている方であれば一度は経験しているはずです。

間違ったボタンをタップする

今は起きていなくても今後
予定と違ったボタンをタップしてしまう
という事が起こる可能性があります。

予定と違うボタンをタップしてしまうのは
「予定している画面が表示される前にタップしてしまう」いわゆるタップの空振りが発生する事が原因になります。

タップの空振りによってそれ以降の画面が予定の画面と違っているにもかかわらず同じ動作をしてしまう為、思いもよらない結果になってしまいます。

間違ったボタンをタップしないようにする対策として
「録画する時にタップするまでの待ち時間を長くする事」
で防ぐ事はできます。

その場合、具体的にどれくらい待ち時間をとればよいでしょうか?

待ち時間が無駄に長い

短すぎるとミスが起こる可能性が高いので長くとることになりますが、待つ時間は3秒?5秒?10秒?どれくらいがちょうどよい時間かわかりません。

10秒も待てば早く押してしまうタップの空振りの問題に対しては解決できますが、別の問題が出てきます。

それは待ち時間が長くなる事により全体の時間が長くなってしまう事です。

1回のみの動作であればあまり気にしなくても良いかもしれませんが、基本的には繰り返す操作が多いはずです。

予想以上に長い待ち時間

OKや閉じるボタンはハートを送るたびにタップするので人数分の回数を繰り返します。

自動送信を目指しているのであれば300人〜500人位にはハートを送ることになります。

例えばOKをタップするのに10秒待つとします。300人の場合、OKをタップする為に10秒の待ちが300回起こります。それだけで3000秒となり50分も待つことになってしまいます。

ハッキリいってこれはかなりの無駄な時間になります。

そこで画像認識という機能を使います。

画像認識は何ができる?


画像認識の機能を使うと表示されている画面と前もって用意した画面が同じ場合に指定した場所をタップすることができます。

実際には用意した画像全体で判定を行うのではなく画像の一部になります。

画像認識の機能を使うことで2つの問題を解決してくれます。

間違ったボタンをタップしない

表示されている画面と用意した画像が同じと認識するまでタップは行わないので、早とちりしたタップはしないようになります。これによってタップの空振りは絶対に発生しなくなります。

待ち時間がほとんどない

表示されている画面と用意していた画像が同じと判断すると待たずに次の操作にうつるので無駄な待ち時間がなくなります。厳密には画像の判定を行う時間がありますが、1秒もかかりません。スマホの性能がよければほとんど一瞬です。

OK、閉じるのような画面では判定を行う画像の一部とタップする場所を同じにしておくことで判定を行ったあとでそのままタップできます。

画像認識の機能の凄さがわかってもらえたでしょうか?良い点はあるのに対して悪い点は全く見つからないといっていいほど素晴らしい機能です。

これを知ってしまうともう録画のタップには戻れません。

唯一悪い点をあげるとすれば予想外の画面が表示された場合には対応できません。録画のタップの場合、画面の状態を意識しないでタップしつづけるのでたまたまタップがうまくいくことがあります。

それに比べて画像認識の場合、事前に用意した画像とちがう画面が表示された場合は判定がずっとNGになってしまい処理が進みません。

これについては事前準備を充分に行うことで対応できるので問題にはしていません。

事前準備


画像認識の機能を使う為に必要なFRepの設定について説明します。

撮影タイプの変更

画像認識ではFRepが今の画面とスクリーンショットをとって事前に用意した画像と比べて同じか違うかを判断します。

この時にスクリーンショットをとってから読み込む時間が遅いとその分処理の時間が遅くなってしまいます。この設定を行うことで保存するファイルのサイズが軽くなり処理が早くなります。必ずこの設定を行っておいて下さい。

FRepを起動した画面から「オプション」をタップします。

「システム設定」をタップします

「撮影タイプ」をBMP(高速)に変更します

保存場所はSDカードの容量に余裕があるのであれば外部メモリーに変更しても良いです。スクリーンショットの保存先と合わせないと画像を選択する時にフォルダを移動しないといけないので、揃えた方が楽です。

タッチ情報の取得

こちらを設定しておくことで画像認識を行った時にタップなどの動作をすることができます。この設定により画像を見つけた時に保存したタッチ情報を呼び出してタップすることができるようになります。

画面の右上の「…」をタップします

「タッチ情報の取得」をタップします

「タップして開始」をタップします

ここからは画面の指示にしたがって操作して下さい。

画像認識の操作を追加


それでは画像認識を行う処理を追加してみましょう。

「[+]条件」をタップします

「画像認識」をタップします

画像認識を行う画像を選択し「適用」をタップします。

画像認識の種類を選択します

画像認識の種類について説明します
  • 完全一致
    用意している画像と完全に一致している場合に成功と判断されます。
    見た目では完全に一致していてもアプリからするとOKにならない事がありますので使いません。選択している範囲が小さすぎる場合は完全一致しか選択できません。その場合は範囲を大きくしましょう
  • 一致ピクセル率
    用意している画像と同一色の割合が指定の割合より大きい場合に成功と判断されます。
  • 色の類似度
    用意している画像との類似度が指定の割合より大きい場合に成功と判断されます。
    類似度とは色の差から判断して求められているみたいです。
  • 検索:完全一致
    検索する範囲を設定して用意した画像の一部と完全に一致しているか判定を行います。
    完全一致の理由と同じで使いません
  • 検索:類似度
    検索する範囲を設定して用意した画像の一部と一致しているか判定を行います。
ツムツムの自動送信で使う画像認識では色の類似度検索:類似度を使います。

色の類似度
今回の説明しているような画像の場所が変わらないハートボックスやOK、閉じるのタップで使います。

検索:類似度
ハートをタップする時に使います。ハートのタップの場合、表示される場所が変わるので表示される範囲を指定して見つけたハートをタップします。
ハートのタップについてはこちらで詳しく説明しているので参考にして下さい。

指定する割合(%)については60~80位が良いと思います。
これは端末によるので認識できる数値を調整してみてください。

ちなみに私の場合、端末の調子が悪くなってきた時に以前では80%で判定がOKになっていた部分がNGになりました。60%に下げる事で判定がOKになったので、同じような症状になった時には試してみてください。

画像認識を行う部分の設定

それでは画像認識を行う選択範囲を設定してみましょう。

「画像を編集」をタップします

画像認識を行う部分を囲みます。
上で囲んでいる部分の±で微調整できます。
左上のXY座標、右下のXY座標になります。

画像認識の判定を行う範囲について注意しておくことがあります。

画像認識の判定を大きくしない

画像認識の範囲が大きすぎる場合、よけいなものまで判定の対象になってしまいます。

範囲の指定を大きくなりすぎないようにしましょう。

こちらの場合、数字の赤い部分にかかっています。

この画像で判定を行うとメールボックスが0件の場合と10の位が9以外の場合に判定がOKになりません。

状況によって画面が変わるような部分は判定に含めないようにしましょう。それに範囲が大きくなると画像と同じか判断する処理に少しですが負担がかかってしまいます。

画像認識の判定を小さくしすぎない

画像認識を行う範囲が小さすぎる場合、完全一致検索になってしまいます。

範囲の指定を小さくなりすぎないようにしましょう。

この画像の場合、検索の種類が色の類似度を選べずに完全一致のみ選択可能(変更できない)になります。

範囲が小さすぎると完全一致しか選べなくなってしまいますので気をつけましょう。大きめの範囲指定から少しずつ小さくして完全一致になる直前の範囲で設定するようにして下さい

画像認識の種類の他の設定項目について解説します。

画像はこちらになります。制御設定(上部分)

制御設定(下部分)

  • 「スクリーンショットを撮る」
    画像認識の判定は新しくスクリーンショットを撮ったものと比較するのでチェックをつけてください
  • 成功時に認識領域中央をタップ
    判定がOKの場合にタップするような場合はチェックをつけてください。判定を行うだけの場合は不要です。今回の例のように判定とタップが同じような場合にはチェックをつけます。
  • 次の待機を省略
    成功時、失敗時の2つともチェックを外してください。これは設定の意味がわからない時につけてしまうことがありますが、チェックすると次の処理が待機の場合に飛ばされてしまいます。
  • 判定(目安)
    初期値の10.0秒のままですが、変更しなくても短くしても良いです。判定で最大掛かる時間の為、1秒で判定がOKになった場合は1秒で次の処理にうつります。ただし、NGを判定として使う場合は時間を考慮する必要があります。ハートの画像認識では時間を意識する必要があります。
  • 成功したとき
    判定でOKの場合に行う次の処理です。今回は説明を省きます
  • 失敗(時間切れ)
    判定でOKの場合に行う次の処理です。今回は説明を省きます
  • スキップ/延長用パネルを表示
    実行時にパネルを表示するかのチェックの為、どちらでも良いです
  • 「ラベル:」
    わかりやすい名前をつけましょう
「適用」をタップすると画像認識の処理が追加されます

画像認識の範囲指定

ハートのタップでは画像認識でも範囲指定というものを使います。

探し出す画像の範囲を指定し、その中にあった場合にタップするといった使い方をします。ツムツムのハートのタップの為にあるのではないか?と言っても良いくらいぴったりの機能です。

ハートのタップが録画だとなぜうまくいかない?

ハートのタップは冒頭でも書いたとおりタップする場所が変わってしまうのが大きな問題です。

仮にハートの場所が少しずつずれないようにスクロールをきちんと行ったとしても録画では対応出来ない内容があります。

タイミングが合わない事がある

ハートをタップする録画を実行してみるとタイミングがずれてしまって思い通りにいかない事があります。

原因は通信環境やスマホ自体の処理が重くなっててタップするのが遅くなるからです。
タップする時間の間隔を遅くすればタイミングが合わない事については解消されます。

ただし、自分がランキングに表示されている場合に避けられない問題があります。

ハートと違う所がタップされる

自分がいるハートの場所をタップすると自分の点数が表示されます。この場合、次の画面が異なるので動作を変える必要があります。

自分が表示されている時だけの為に処理を入れるのはとても面倒で無駄です。

ランキングの一番下でも同じように紹介をタップしてしまう事があります。

これらの問題はある特定の場所をタップするのではなくハートを見つけてタップすれば解決します。

イメージが浮かんできたでしょうか。

そこで「画像認識の範囲指定」を使います。

画像認識の範囲指定だと何ができる?

画像認識の範囲指定ではタップしたい画像が指定した範囲内にあれば見つけてタップする事ができます。

ハートを見つけてタップするように指示をする事でこのような事は起こりません。
  • 紹介ボタンをタップしてしまう
  • 自分の黄色い丸をタップしてしまう
  • ハートの位置が少しズレてタップできない
ハートの位置が少しズレててもタップはできますが、できるだけズレないようにして下さい。

では早速画像認識の範囲指定を使ってみましょう。

画像認識の範囲指定方法

画像認識の範囲指定での使い方は基本となる画像認識の使い方と少しだけ設定が異なります。

ハートの送信では必要になるので使えるようになりましょう。

範囲指定の設定

まずはハートが表示される範囲を指定してみましょう。

画像認識でランキングが表示されている画像を設定します。

検索の種類は「検索:類似度」を選びます。

「検索」をタップして範囲選択を行う画面を表示します。

こちらの画像を参考にハートが表示される範囲を設定します。

気をつけるポイント

画像の範囲指定を行う上で気をつけるポイントはこちらの2点です。
  • 左右の選択範囲を調整してハートが範囲内に入るようにします。
  • 上下の選択範囲はスクロールした時にハートが表示される範囲を指定します。つまり、上と下の横線と揃えれば良いです。
コツとしてはピンチによる拡大縮小で選択範囲をいい感じの大きさにします。
後で微調整を行うので、イメージしている選択に近いだいたいの場所と大きさを設定します。

続いて微調整を行います。
上の座標の数値を変更する事で細かい調整が可能です。

画像を移動すれば設定しやすいです。

選択する場所が画面のはしっこの方で操作しづらいという場合、画像をドラッグします。

こちらのように画像を移動します。

画面の中央の方がもちろん操作しやすいです。

画像を移動しても設定している場所の座標が変わるといった変更はないので安心してください。

一度保存してから開き直すとわかりますが、設定上での表示位置を変更しているだけです。

これで範囲指定については完了です。

続いて指定された範囲内で探すハートの設定を行いましょう。

認識する画像の設定

ハートが表示される範囲の設定を行いましたので、続いて探し出すハートの画像を設定します。

ハートを認識させるのでハートを四角で囲めば良いのですが、言葉の通りそのまま囲むのはNGです。

ハートの形をそのまま囲うのは駄目

駄目な理由は2つあります。

1つ目の理由はハートが少しでも見切れてしまった場合に認識エラーとなってしまいます。

こちらの画像のような場合です。

もちろんスクロールの精度を上げて極力ズレないようにしないといけませんが、画像認識の範囲指定であればハートが少し欠けてても認識可能という事です。

2つ目の理由は処理が遅くなってしまうからです。

判定する画像が大きければ大きいほど判定する部分が大きくなるので、スマホに負担が掛かります。

時間にすると1回の判定では0.1秒にも満たない短い時間かもしれませんが、積もると大きな時間になるためできる限り負担は減らします。

では認識させる画像の設定を行いましょう。

「画像を編集」をタップして認識させる画像の設定を行う画面を表示します。

こちらのようにハートの真ん中らへんを縦に細長い形で設定します。

ハートを指定するというよりかはハートの一部を指定するという事になります。

まとめ


画像認識は使い方を知らなければ難しそうですが、使い慣れるとこれほど便利なものはないです。

簡単なので使いこなせるようにしておいてください。
これでOKや閉じるのタップミスは絶対に起きません。

それに画像認識の範囲指定はハートをタップする上で必要な方法になります。

やり方を知らなければ難しそうですが、やってみると範囲指定と認識する画像を設定するだけなので簡単です。ハートのタップを録画で対応していた方には目からウロコのやり方だと思います。

私もこの方法を教えて頂いた時には発想にとても驚きました。
これで画面にハートがある場合、ハートのタップ漏れは絶対に起きません。

Pocket

スポンサーリンク


-ツムツム


  1. […] 作り方についてはこちらで詳しく説明しています。 あわせて読みたい →ツムツム自動送信 FRepの画像認識を使ってみましょう。これでタップのミ… […]

  2. […]  基本となる録画機能 ✔ずれないスクロールの作り方 ←次はコレ  画像認識でタップミスゼロ […]

  3. […]  基本となる録画機能  ずれないスクロールの作り方  画像認識でタップミスゼロ […]

comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

スポンサーリンク

プロフィール

【プロフィール】

ファミコン世代で、幼い頃はゲームに明け暮れる日々を過ごしていました。
中身は変わらずそのまま年を取ってしまい今に至ります。
4歳の男の子の双子と2歳の女の子の3児のパパをしています。

ハートの自動送信のやり方まとめ