FRep

FRepの使い方【画像認識】

FRep最高のシステムである画像認識です!

操作の記録では画面の判定は出来ませんでしたが、この画像認識を使うと画面判定をして、タップもしてくれます。
ハートのタップ、1位の判定、リトライが出た時など様々な場面で活躍します。
是非、画像認識を使いこなしてください。

こちらの記事は画像認識の作り方に特化しました。
実際にプログラムに組み込む際は、そのプログラムの記事を参照してください。

 

スポンサーリンク

画像認識のシステム

あらかじめ撮ったスクリーンショットと、プログラム実行時のスクリーンショットとを比較して成功か失敗かを判定し、次に実行するプログラムを分岐します。

成否判定は自分で一致率や判定範囲を指定する事ができるので、意図した通りの成否判定を導き出すことができます。(これがホントに素晴らしい!)

[完全一致][一致ピクセル率][色の類似度]

いずれも同じ位置同じサイズに対する判定となります。

判定方法は実際にはそれぞれ違いますが、[完全一致]→[一致ピクセル率]→[色の類似度]の順に[厳しい]→[緩い]程度で考えれば良いと思います。

[完全一致]は少しの差異でも失敗になる為、なるべく使わない方が良いでしょう。
※プログラム作成時には成功していても、ツムツムのアップデート後に失敗になる場合があります。

[一致ピクセル率]と[色の類似度]は判定基準を%で指定できます。
どちらでも好みで良いと思いますが、私は[一致ピクセル率]を使う事が多いです。

[20190107]追加
FRep4.5より、画像認識でjpg画像も使用可能(通常はオフ)になっています。
詳しくはこちら → FRepの使い方【画像認識】jpg画像編

但しjpg画像で完全一致や一致ピクセル率を使用するとプログラム実行時に失敗になる可能性が高いです。jpg画像の場合は色の類似度を使用しましょう。筆者も今後は[色の類似度]を使用したいと思います。

FRep画像認識一致ピクセル率

先に認識する範囲を指定しておき、プログラム実行時に同じ位置同じサイズで判定基準%以上の一致(類似)があれば成功、なければ失敗となります。

[検索:完全一致][検索:類似度]

いずれも認識する範囲検索する範囲とを比較して判定します。

何か所かで一致した場合は、そのうちのひとつ(最初に一致又は類似度が高い)を成功位置として使用します。

[検索:完全一致]は少しの差異でも失敗になる為、なるべく使わない方が良いでしょう。

FRep画像認識ー検索類似度

先に認識する範囲検索する範囲を指定しておき、プログラム実行時に検索する範囲内に認識する範囲と判定基準%以上の類似がひとつ以上あれば成功、なければ失敗となります。

認識する範囲のサイズ

[検索:類似度]の認識する範囲の指定では、[横(W)32×縦(H)1or2]~[横(W)1or2×縦(H)32]ピクセル以上がないと「対象画像が小さすぎるため類似度で検索できません」というメッセージと共に[検索:完全一致]に変更されてしまいます。

そこで当サイトでは[W32×H2]ピクセルサイズを画像認識の基本サイズとしてお勧めしたいと思います。認識するサイズと検索範囲が小さい方が判定に掛かる時間が若干速くなるからです。

尚、ピクセルサイズは、端末の画面解像度によって実際の大きさが変わります。解像度の低い端末だと、横(W)32はハートの幅いっぱいになりますが、解像度の高い端末だとその1/4程度になったりします。

画面のピクセル座標は、画面一番左上が横X0・縦Y0 です。
解像度1280×720の端末の場合は画面右下がX720・Y1280 となります。

認識する範囲の色

出来るだけ単色で文字などは入れずに指定することをお勧めします。単色の方が成否がはっきりしやすく、文字が入ると2色以上になるということなので意図しない失敗が発生しやすくなります。

ツムツム更新後に画像認識が失敗しスクショ撮り直しになるのは文字が入っている場合です。更新よって出来たほんの少しの差異が失敗の原因になる様です。同じ場所の指定でも[W32×H2]サイズ単色の場合は失敗になる可能性が少ないです。

※単色にするという意味でも[W32×H2]サイズはお勧めです!

但し、「とじる」と「プレイ」等、単色だと判定が難しい場合は少しだけ文字をいれると良い場合もあります。その場合のサイズは[W32×H2]よりも大きめの方が良い場合が多いです。

 

事前準備

FRepを使う端末で、スクリーンショットを撮っておきます。他の機種で撮った画像は使えません。
スクリーンショットがjpg保存の端末の場合(d-tab、P10lite等)は、別アプリでbmp又はpngに変換した画像を使ってください。 こちらをご覧ください。 → FRepの使い方【画像認識】jpg画像の場合 [20190111]追加

設定終了後は画像は不要になりますが、修正したい時には必要になります。
撮りためた画像をまとめて別のフォルダに入れておくと分かりやすいと思います。

用意しておきたい画像

FRep画像認識に使える画像

Tap To Start

■起動プログラムに

 

 

 

 

FRep画像認識に使える画像

インフォメーション

■各種「とじる」

 

 

 

 

FRep画像認識に使える画像

ハートが回復して1位表示されているランキング画像

■ランキング判定

■ハートタップ

■1位判定

 

 

他にもあると思いますので、必要時にスクリーンショットを撮ってください。

リトライの撮り方

ランキング画面を出してから端末のWi-Fi(及びモバイル)をOFFにします。その後ハイスコアが出るような位置をタップするとリトライが出ます。メールボックスを開くのでもいいです。どちらも同じリトライのポップアップです。

又は、端末を持って外に出て、Wi-Fiが届かなくなる場所まできてから、ハイスコアやメールボックスをタップするとリトライが出ます。モバイル回線が無い端末ならばこちらも手軽です。

FRep画像認識リトライ3種

この3枚は同じリトライ画像として使用できます。

 

スポンサーリンク

ランキング画像認識

それでは、一致ピクセル率80→90%の「ランキング画像認識」を作ってみましょう。
※当初80%で作成しましたが90%を推奨します!

「ランキング」というのは、「ランキング画面にいることがわかる」画像認識という意味です。

効果的な認識する範囲は…

■メールボックス…単色で指定出来て判定時間が速いが、80%だとイベントポップアップで成功してしまった事がある→90%推奨
■歯車のマーク…単色で指定するのが難しい場合もある
■「週間ランキング」の文字の白いところ…「Tap To Start」と混同する可能性がある
■「週間ランキング」の文字部分…色が2色以上になり誤認識の可能性が高くなる
■周りの青い部分…メールボックス画面と混同する可能性がある
■横並びハート…イベントによってハートの色が変わる場合がある

ということで、私はメールボックスを使っています。但し、これはプレイをタップした後のアイテム選択画面との区別がつきませんので、「週間ランキング」の文字部分の方が良い可能性もあります。

認識する範囲を設定

【記録の管理】-【プログラム作成】または【プログラム編集】-【条件・制御の設定】-【画像認識】

【認識する画像を選択】で【画像ファイルから】該当画像を選択し【適用】をタップします。

FRep画像認識設定

この様な画面になったら、中央に薄い青の枠が表示されているはずです。この枠で「認識する範囲」を指定します。

画面をドラッグして自分の使いやすい位置に移動してから、二本の指で青い枠を移動やピンチインでメールボックスの茶色の部分のみ指定します。

上の数字と+-はピクセル座標で、青い枠を動かすとこの数値も変わります。

左から始点X(横)・始点Y(縦)・終点X(横)・終点Y(縦)です。微調整にはこちらの数値を+-すると簡単だと思います。

この画像では890.344.910.346なので、次の計算が出来ます。

終点X(910)-始点X(890)=横幅(W)20
終点Y(346)-始点Y(344)=縦幅(H)2

これでW20×H2の「認識する範囲」が指定されているという事になります。

W32×H2にする場合も、自分で計算すると簡単に指定できます。

FRepランキング画像認識の作り方

※音量にご注意ください

マスクについて

マスクとは「認識する範囲」の中で認識には使用されない部分を作るというものです。

[20181227]修正
FRep4.9の更新でマスクが使いやすくなりました。

画像解像度の低い端末の場合は使えるかもしれませんが、解像度[1920×1080]以上の一般的な端末の場合はマスク無しで構わないと思います。

興味がある方は、こちらをご覧ください。

制御設定

「認識する範囲」で適用をタップすると【制御設定】画面になります。

もし設定値がわからない場合は、プログラム記事を参照して同じ様にしておくのが良いでしょう。
※ランキング画像認識は当初80%で作成しましたが90%を推奨します!

FRep画像認識制御設定

座標

上の方のX.Y.W.H.で座標と大きさが確認できます。

一致ピクセル率

好みで色の類似度→一致ピクセル率に変更できます。(色の類似度のままでも可)

%(判定基準)

この値で成否が違ってきます。また、判定スピードも若干違ってきます。確実に成功でき、他の画面との誤認識がない値に調整しますが、通常は80~90%程度で大丈夫だと思います。

テストで思った結果にならなかった場合にはリトライで%を変更できます。

スクリーンショットを撮る

通常はチェックをつけておきます。

プログラム実行時にFRepが自動的にスクリーンショットを撮り(端末への保存はありません)、その画像と「認識する範囲」の画像とを比較します。

プログラムの中で画像認識が複数回あり、更に直前のショットを利用可能の場合にはOFF(チェックを外す)にもできますが、プログラム次第ですのでOFFにする場合はよく考えましょう。

成功時に認識領域中央をタップ

ここにチェックがあると、認識に成功した中央位置をタップしてくれます。

ハートタップ、メールボックスを開く、とじるタップ等で活躍します。ランキング画像認識ではランキングにいることを確認するだけなのでタップは不要です。

次の待機を省略(成功時/失敗時)

必ずチェック(青いバー)を外しておきましょう!
[20181213]追加
FRep4.9の更新より、[次の待機を省略]は標準OFF(チェックなし)に仕様変更されました。

[次の待機を省略]をONにすると、次のプログラムが待機の場合にその待機が0になります。
プログラムが複雑になりますので、よく考えて使いましょう。

判定(目安)

ここで指定した秒数の間、成功するまで何回もスクリーンショット撮ります。
スクリーンショットを撮るにチェックがない場合は自動的に判定時間は0になります。

例えば「ハートをプレゼントしました」画面は通信状況によって遅れる場合があります。ここで3.0秒を指定すると、その間成功するまでスクリーンショットと画像認識を繰返します。3.0秒の猶予ができるうえ、成功したらすぐに次の動作に移りますので時間短縮にも繋がります。

しかし、ランキング画像認識の場合は、その時にランキング画面にいなかったら直ぐに失敗と判断して次の動作に移りたいので、判定(目安)は0秒の方が良いでしょう。

この様に、プログラムのどこで何を判定したいかによって、最適な判定時間は変わってきます。

尚、この判定時間が長くなると端末への負担が大きくなる為、メモリの少ない端末の場合はなるべく短くすることをお勧めします。何度も長い判定時間を使用した場合はアプリ落ち(FRepツムツム共)に繋がりますのでご注意ください。

成功したとき/失敗(時間切れ)

成功/失敗時のプログラムの行き先を指定します。実際のプログラムによって変わります。

スキップ/延長用パネルを表示

プログラム実行時にFRepパネルにスキップ表示を出すかどうかです。どちらでも好みで大丈夫です。

ラベル

わかりやすいラベル名をつけておきましょう。

テスト

【制御設定】ができたら、必ず右上の【テスト】ボタンからテストをして、成功になることを確認しましょう。元画像はもちろんですが、他の画像でどの様な結果になるのか調べておいても良いでしょう。

もし成功して欲しい画面で失敗する様ならば、リトライで%指定を変えてみてください。そして失敗して欲しい画面で成功するのならば、%を高く設定し直してみてください。

ランキング画像認識の場合は、メールボックスの指定ならば元画像の成功に加えて、端末ホーム画面で失敗になればだいたい大丈夫だと思います。※逆にいうと端末のホーム画面には赤茶色を使わない方がいいです。

 

スポンサーリンク

ハート画像認識

ランキング画面にあるハートをタップする画像認識を作ります。

[検索:類似度] 80%、サイズは[W32×H2]にすると、ハート5つのタップが可能になります。

認識する範囲を設定

【記録の管理】-【プログラム作成】または【プログラム編集】-【条件・制御の設定】-【画像認識】

【認識する画像を選択】で【画像ファイルから】該当画像を選択し【適用】をタップします。

FRep画像認識ハート

ランキング画像認識と同じ様にして、ピンク色の部分のみ指定します。

サイズは[W32×H2]にしてください。これよりも小さいと自動的に[検索:完全一致]に変更されてしまうし、これよりも大きいとハート5つのタップが出来ないです。

制御設定

詳細はランキング画像認識の制御設定を参考にしてください。

設定値がわからない場合は、プログラム記事を参照して同じ様にしてください。

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

検索範囲

検索する範囲を設定します。

FRep画像認識検索範囲

【現在のリストから選択】をタップします。

FRep画像認識検索範囲

アップデート等での画像の変化を考慮して[横幅]をプラス1しておきます。元の「認識する範囲」が[890-922]だったので、[889-923]にしました。ここであまり大きく指定すると判定時間が長く掛かりますので、ぎりぎりプラス1程度が最適だと思います。

[縦幅]はランキングのハートが見える最大位置までしっかりカバーして下さい。

認識する範囲の変更に伴って検索する範囲を変更したい場合は、一旦【画面全体から検索】を選択して保存してプログラム編集を終了します。その後、再び制御設定-検索する範囲-【現在のリストから選択】にすると、認識する範囲と同じ範囲になっています。横幅プラス1の指定はこの方が修正しやすいかもしれませんね。
FRepハート画像認識の作り方

※音量にご注意ください

ハート5つのタップ

サイズを[W32×H2]にすると、ランキングのスクロールがずれた場合にハート5つのタップが可能になります。

※画像解像度の低い端末の一部では不可能な場合もあります。

FRep画像認識ハート5つ

FRep画像認識ハート5つ

この画像の様な場合にハート5つのタップが可能です。

これが出来ると、スクロールのずれが短い場合はハートの送信漏れが起こらなくなります。ですから、ピッタリが4人分スワイプよりも若干短い3.9人分スワイプを作れば、スクロールがずれながらもハートは全ての人に送信できるという訳です!

 

画像解像度[1280×720]未満の端末で、どうしてもハート5つのタップが出来ない場合は、マスクを使用することで出来る可能性があります。詳しくはこちらをご覧ください。

スポンサーリンク

1位画像認識

FRep画像認識一位

1位の画像認識は難しいです。スワイプによって若干位置がずれますので、検索:類似度(90~95%)を使います。認識する範囲は出来るだけ1色で文字を入れない様にしましょう。画面解像度が低い端末だと、この指定が本当に難しいです。縦長に範囲指定すると色のグラデーションがある為失敗しやすいです。どうしても出来ない場合は、マスクを使用してもよいかもしれません。マスクの使い方はこちらをご覧ください。

検索する範囲はピンクの枠で囲った位に少し広めに設定しましょう。

 

FRep画像認識一位

3位でテスト→

■89%で成功

■90%では失敗

これでは実行時に90%で成功になる可能性も有。

 

 

FRep画像認識一位

95%に設定→

これなら余裕をもって

■3位では失敗

が可能。

 

 

FRep画像認識一位

95%の設定→

■2位では失敗

を確認しました。

 

 

 

もう一度1位で95%のテストをして、良さそうだったのでこのまま95%にすることにしました。

この様に2位3位でもテストしてみることが大切です。テスト結果はお使いの端末によって違いますので、それぞれ確認してみてください。

 

各種とじる画像認識

とじるの画像認識も難しいです。一番大切なのは「とじる」で成功して「プレイ」では失敗することです!検索:類似度(80~85%)を使います。認識が成功したい画面と失敗したい画面が沢山あるので、しっかり確認しておきましょう。思ったように成否判定が出ない場合は認識する範囲を変更しながら調整してみてください。

FRep画像認識とじる

認識する範囲はHくんに教えて貰った「じ」の濁点が一番良さそうです。濁点だけが入り、ほかの文字が入らない場所で指定してみてください。できるだけ横長で縦幅を狭くすると良さそうです。

検索する範囲は、横幅は認識する範囲プラス1程度、縦幅は下にプラス1、そして上方向は別の画像を見て指定します。

FRep画像認識とじる

この位置の「とじる」まで成功にしたいので、画像を見て範囲指定します。

FRep画像認識とじるはプレイ失敗のこと

必ず「プレイ」で

失敗することを

確認して下さい。

 

 

 

FRep画像認識とじるの失敗例

Tap To Start でも

失敗することを

確認して下さい。

 

 

 

FRep画像認識とじる成功

成功させます。

 

 

 

 

 

FRep画像認識とじる成功

成功させます。

テストできなくても

おそらく大丈夫です。

 

 

 

FRep画像認識とじる成功

成功させます。

 

 

 

 

 

FRep画像認識とじる成功

成功させます。

 

 

 

 

 

FRep画像認識週間ランキング

週間ランキング報酬の画面でも「とじる画像認識」を使います。もしテストをできなくても、他の画像で一番高い位置と低い位置が成功していればおそらく大丈夫だと思います。

FRep画像認識とじる

もし、「じ」の濁点でうまく成否判定が出ない場合は、認識する範囲を「とじる」の下半分の指定で試してみてください。すこしずつ範囲を変えて調整するとうまくいくかもしれません。

それでもうまく出来ない場合は、オプション-システム設定-【全ビットを画像認識に使用】をONにしてみると結果が違うかもしれません。※私はOFFにしています。

 

スポンサーリンク

OKリトライ画像認識

OKとリトライ両方成功に出来る画像認識です。検索:類似度93%(80~85%)を使います。
※当初80%で作成しましたが90~95%を推奨します!

FRep画像認識OKリトライ

OKの左上の黄色の部分を認識する範囲にします。検索する範囲はそれよりも左上寄りに若干大きめにします。

FRep画像認識OKリトライ

ハートをプレゼントの「OK」、「リトライ」そしてイベントインフォメーション(=いわゆる強制ポップアップ)の「OK」も成功する様にテストしながら調整しましょう。イベントインフォメーションのスクリーンショットがない場合は、上記の位置で「OK」と「リトライ」が成功すれば大丈夫だと思います。

[2019.8.6]修正
イベント強制ポップアップをOKした次のインフォメーション画面で予期せぬ「成功」になってしまった為、検索:類似度90~95%を推奨します。

FRep・OKリトライ画像認識で予期せぬ成功

80%では成功になってしまいました。成功しない様に90%以上にします。

Tap To Start画像認識

Tap To Startの画像認識です。一致ピクセル率80%にしました。

FRep画像認識TapToStart

 

キャンセル画像認識

強制ポップアップ(期間限定イベントインフォメーション)をキャンセルする画像認識です。

【追加ダウンロード】と混同しない様に、認識する範囲に文字を入れ一致ピクセル率80%にしました。

FRepキャンセル画像認識

「キャン」の文字全てを囲む必要はなく、少し文字を切ってなるべく上下の高さを少なくした方が良いかもしれません。

ツムツム追加ダウンロードポップアップ

 

■追加ダウンロード

では失敗すること。

 

 

 

【強制ポップアップ】は新しいイベントが始まった際に出てきます。その際にスクショを取り逃した場合は、イベント開始をせずにツムツムをアンインストールするともう一度【強制ポップアップ】が出てきます。

 

追加ダウンロード画像認識

追加ダウンロードのポップアップでOKをタップする画像認識です。【強制ポップアップ】と混同しない様に、認識する範囲に文字の一部を入れて一致ピクセル率80%にしました。

【強制ポップアップ】では失敗するように設定してください。

FRep追加ダウンロード画像認識

【追加ダウンロード】のスクショが無い場合は、一度ツムツムをアンインストールすると【追加ダウンロード】が出てくるかと思いますので、そこでスクショを撮って下さい。

 

ホーム画像認識

Tap To Start画面と端末ホーム画面で成功する画像認識を一致ピクセル率80%で作ります。

これは、ダブルログイン等のエラーでTap To Start画面に戻った場合や、ツムツムアプリ落ちで端末ホーム画面に戻った場合を想定しています。

FRep画像認識ホーム

認識する範囲は[Tap To Start]の左辺りにすると、季節によって画像が変わっても対応出来そうです。又は[Tap To Start]真下の文字が掛からない辺りでも大丈夫でしょう。

FRep画像認識ホーム

FRep画像認識ホーム

ツムツム画面では失敗すること。
右側だとツムツム画面ではツム選択アイコンやストアマークに被ることもありますので、左側の方が良さそうです。

FRep画像認識ホーム

ホームでも成功
すること。

ホームの画像は
認識する範囲
同じ位置を
同じ白に変更
しておきます。

 

まとめと修正情報

これ以降は、プログラム作成の記事で使用の都度追加していきたいと思います。

【ランキング】や【とじる】の画像認識はいろいろなプログラムで使えますので、一度作ったら【条件・制御の設定】-【記録を追加】で呼び出してコピーすると便利ですね。
[20181130]修正
キャンセル画像認識の認識範囲に文字の一部を入れました。
[20181213]修正
FRep4.9の更新より、[次の待機を省略]は標準OFFに(チェックなし)に仕様変更されました。
[20181227]追加
FRep4.9の更新でマスクが使いやすくなりました。
詳しくはこちら → FRepの使い方【画像認識】マスク編
[20190107]追加
FRep4.5より、画像認識でjpg画像も使用可能(通常はオフ)になっています。
詳しくはこちら → FRepの使い方【画像認識】jpg画像編
[20190225]修正
ランキング画像認識の判定を80%→90%に変更しました。

コメント

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