ブラウザゲームで画像認識が出来ない時に試したい色判定のマクロ

LifeHack

ブラウザゲームでマクロを使いたい。そんな時に一番分かりやすい方法は画像認識を使ったマクロです。ですが、実はもう一つ簡単に作れる方法があります。

それは色判定です。特定座標の場所の色が規定値であればアクションを起こせという感じですね。

このマクロは所謂、裏マクロではありませんので、基本的にはご飯を食べる時とかお風呂に入る時、寝る時とかにつけておく感じです。単純なマクロではありますが、その分、簡単に作れますし、単純な画像認識よりも判定に強いというメリットがあります。(uwscのデフォルトの画像認識は少しでも違いがあると認識してくれない為)

上級者向けに、chkimgxという拡張機能があります。これはuwscに拡張機能を持たせて、画像がある程度曖昧でも条件を満たせば(誤差20%以内とか)アクションを起こしてくれるというものですが、少し難しいツールなので、使う場合はグーグル先生に聞いてみよう

画像認識と比べた時のメリット

  • 指定座標のみをチェックするので軽い
  • 色判定に幅を持たせることで、少しのズレでも動かなくなる画像認識とは違い、安定して動く

画像認識と比べた時のデメリット

  • マウス操作が奪われるので、裏マクロではない
  • 色を調べる方法などが面倒くさい(色・座標取得の方法や、16進数→10進数への変換など)

それでは作っていく!

  1. piggyをダウンロード。中身は座標と色.UWSという.uwsファイルで、マウス下の絶対座標と色を取得してくれる。
  2. 中身をuwscフォルダの中に入れる
  3. ゲーム画面の自動で押したい場面を開く
  4. 座標と色.UWSを実行
  5. 自動で押したい場所にマウスを持っていく
  6. キーボードのctrlを押すと、絶対座標と色がprintされる

色に関しては場所によって点滅しているとかで、かなりバラつきが発生する場合がある。その際の対処法としては、難しい場所を避けて別の場所で判定をする。色の判定に大きく幅を持たせる。などの対処法がある

座標と色を入力していく

  1. 新しく.uwsファイルを作って開いてみよう。何も記述されてない真っ新なファイルが準備できた
  2. まるまるコピーして、真っ白なファイルに貼り付け
  3. 入力が必要になるのは、2行目、3行目、14行目の●の部分
  4. 2行目のx1=の右辺にxの座標を入れ、3行目のy1=の右辺にyの座標を入力
  5. 14行目は色に幅を持たせている。Rは赤、Gは緑、Bは青を表す。

(R>=● AND R<=●) AND (G>=● AND G<=●) AND (B>=● AND B<=●))をもう少し詳しく解説しよう。このままでは分かり難いので●を変更してみる。

仮に、座標と色.uwsで得られた色の結果が120,220,80だったとして書いてみる。

各々のRGBの下限上限に+-20の幅を持たせてみよう……指定場所に特殊なフィルタがかかっていて安定しないのであれば、+-30,40と幅を広げていってもいい。

(R>=100 AND R<=140) AND (G>=200 AND G<=240) AND (B>=60 AND B<=100))

赤が100以上で140以下 なおかつ 緑が200以上で240以下 なおかつ 青が60以上100以下
という条件になる。

色を表す数字モニター上の色は赤、緑、青で全てを表しています。例えば白なら255,255,255ですし、黒なら0,0,0な訳です。なので+-20の幅を持たせると言っても指定する下限の数値に-がつくことはありませんし、上限に256以上を指定することもありえません。ご注意を

もっと多くの場所の判定がしたいのだが?

変数を増やしましょう。

5行目、6行目に新たにx2、y2というのが記述されてますね。変数名は何でも良いのですが、分かりやすい名前にしておくといいですよ。変数を追加するに伴って、注意すべきことがあります。コピペで作業をしていると、変数名の変更をし忘れる人が多いです。座標2に関連する記述内の変数名はちゃんと変更されていますか?

コードの中では、絶対座標1の為に使った変数はx1,y1,RGB,R,G,Bの6つ。絶対座標2ではx2,y2,RGB2,R2,G2,B2です。

変数とは、自分で好きな名前をつけることが出来、任意の数字を格納しておける便利な箱と考えましょう。

完成!

以上で色判定のマクロが出来上がりました。画像認識のマクロが難しいゲームだと思ったら、色判定のマクロを使ってみるのも手ですよ。

コメント

タイトルとURLをコピーしました