ラスクラマクロが上手く動かない場合

ラスクラのマクロで上手く動かない場合はここに書いてある内容を確認してみて下さい。基本的な設定等は下の記事で確認してください。確認する時はログを出すマクロを使用すると原因が分かりやすいです。色がついているコードはそのままコピペできますが貼り付けた時に""が全角「””」になっている場合があるので必ず半角の""に修正してください

ラスクラマクロの説明
ラスクラの裏マクロの簡単な説明をしますが、基本的な使い方は普通のラスクラ周回用のマクロと同じなのでNoxやuwscで分からない場合は「この記事」で確認してください。こちらのマクロに追加している機能は、裏で操作させているのと定点クリックを...

chkimgxでエラーが発生しました

「chkimgxでエラーが発生しました」が出て「スタックトレースの取得に失敗」がでる場合は立ち上げるエミュの名前にNoxなら「NoxPlayer」がBlueStacksなら「BlueStacks」が含まれているか確認してみて下さい。含まれていないエミュの場合は該当する文字を含んだ名前にするか使用するマクロファイルを開いて2行目か3行目にある「wid = getid("NoxPlayer") 」の""の中の文字を自分が使用するエミュの名前に変えて下さい

エラーについて

例として

1.NoxPlayer OK

2.NoxPlayerゲーム用 OK

3.ゲーム用 NG

こんな感じです

上記以外が原因の場合は別途連絡ください

画像認識できない

登録した画像がアプリ内にあるのに画像認識ができず「ループ再開・・・画像監視中」がずっと出る場合は、一度「画像認識確認用」で確認してみて下さい。そこで画像の認識率が%で表示されるのであまりにも低いようなら画像を撮りなおしてください

スクショを取る時はマクロを使用する状態で撮ってください。フルスクリーンで使用するならフルスクリーンに変えてから画像を撮る、ウィンドウモードならウィンドウモードで撮るようにしてください

撮りなおしても認識できない場合は、使用するマクロの21行目くらいにある「Threshold_delta = 15」の数字の部分を大きくしてもう一度認識させてみて下さい。そこでも「○○認識しました」とログが出ずに「ループ再開・・・画像監視中」が出る場合は下記を試してください

ループ再開しか出ない場合

エラー1

ちょっとごちゃごちゃしてますが、まずコマンドプロンプトを開いて「adb devices」と打って出てくるデバイスが1つか確認してみて下さい。この時のデバイス名もメモっておいてください。2つ以上出る場合は他にエミュが起動していると思うのでNoxマルチインスタンスマネージャーを立ち上げて確認してみて下さい。1つしか起動していないのにデバイス名が2つ以上出ている場合はNox以外のエミュが立ち上がっているか確認してみて下さい

次に下の6行をコピーして「○○.uws」で保存してください。○○は適当な名前でいいです

  1. wid = GETID("NoxPlayer")
  2. cls = STATUS(wid, ST_class)
  3. title = STATUS(wid, ST_title)
  4. print "ウィンドウ名は" + title + "です"
  5. print "ウィンドウIDは" + wid + "です"
  6. print "ウィンドウクラス名は" + cls + "です"

保存できたらそのファイルをuwscに登録して起動してみて下さい。上の画像の上の方にあるようにウィンドウ名、ウィンドウID、ウィンドウクラスが表示されると思います。ウィンドウIDが-1の場合はウィンドが取得できていないです。下記のウィンドウ名とウィンドウクラス名を設定してからもう一度調べてみてください

次に使用するマクロファイルを開き1~3行目くらいにあるwid = getid("Noxplayer1")の部分を下に書いてあるコードのように変更します。ウィンドウIDは下のコードの”Noxplayer1”の部分、ウィンドウクラス名は"Qt5QWindowIcon"の部分にそれぞれ先程調べて出て来たものに修正します

  1. wid = getid("Noxplayer1","Qt5QWindowIcon",0)

マクロファイルを修正したら一度動かしてみて下さい

駄目な場合はエミュの名前を”ゲーム用”とか"NoxPlayer"を含まない文字に変えて、マクロファイルのの1~3行目くらいにあるwid=をwid = getid("ゲーム用")とかに変えてマクロを動かしてみて下さい

駄目な場合はマクロファイルの1~3行目くらいにあるwid=をwid = 0に変えて使用するマクロファイルと同じフォルダにあるタップ~、タップ~広範囲を開いて5行目くらいにあるCMD=の部分を書きのコードに変えてここにデバイスを貼り付けの部分を最初に調べたデバイス名に変えてから動かしてみてください

  1. CMD = "nox_adb -s ここにデバイス番号を貼り付け shell input tap shell input tap " + g_imgx_x + " " + g_imgx_y

上から順に試していってそれでもおかしい場合はご迷惑おかけしますが再度連絡お願いします。

タップ・クリックができない・ずれる

画像もきちんと認識されているのにタップ・クリックができない・ずれる場合で一番多い原因はNoxの解像度関係です。フルスクリーンだと上手くタップできないことが多いです。修正できるか不明なのでウィンドウモードで使用して下さい。ウインドウモードでもNox側の解像度がPCモニターより高い場合は下げて下さい。自分でNoxのウインドウサイズを変更している場合はNoxの設定にあるウインドウサイズの復元するを選んで元に戻してください。大体がこれで直ります。

下記の画像で説明すると、真ん中がデフォルトで左が手動で大きくしている、右が手動で小さくしています。解像度や縮尺が関係しているので詳細な説明は省きますが、結果から言うとデフォルト以外は画像認識が問題ない場合でもタップする位置がずれます。特に元のサイズから小さくするほど誤タップすることが多くなります

エラー確認1

上記の原因以外の場合は詳しく原因をひとつづつ調べていきます。まずはログを出すファイルでアプリ内のどこを押そうとしているのか確認して下さい

エラー確認

上の画像にもある「nox_adb shell input tap 293 355」がここを押しますで、押せた場合は「〇〇.bmp」を認識しましたと出ます。もし「〇〇.bmp」を認識しましたと出ない場合はアプリに命令が行っていないのでadbまでのパスが通っているか確認してください。「nox adb 環境パス」とかで検索するとパスの通し方が出てきます

問題はタップしているのにアプリ上では押せていない場合です。まずマクロのフォルダにある「座標取得.uwsc」をマクロ使う要領でuwscに登録して起動してください。左上に黄色い吹き出しでマウスカーソルがある場所の座標が出てきます。絶対座標、相対座標とありますが絶対座標はモニター全体の座標なのでこちらは気にしなくていいです。見る必要があるのは相対座標です。マウスをアプリに持って行き、押したい画像がある場所近くまで持っていってください。そこからログで出て来た数字に近づけていきます。上の例で言うと相対座標がx:293 y:355までマウスを動かしてください

この時にちゃんと認識したい画像がない場合は画像の認識が上手く行っていない可能性があるので画像を撮りなおすか、上の画像を認識できないでも説明しているマクロファイルの21行目くらいにある「Threshold_delta = 15」の数字を下げて下さい

上記項目も問題ない場合、マクロを起動してどこをタップしているか確認してください。座標があっているのにタップ位置が大きくずれている場合は先にも書いたように解像度の問題の場合が多いので、Noxのサイズを手動で変更している場合は元に戻してみて下さい。それでも駄目な場合はエミュレータ側の解像度を下げて下さい(Noxの場合は携帯540×960)。座標があっているのにタップが大きくずれる場合はこれで大体直ります。

タップする位置が微妙にずれている場合ですが、これは定点クリックしないようにタップする位置を微妙に毎回変えているのが原因でおそらく縦方向にずれている場合がほとんだだと思います。その場合はNoxの場合は「タップ.uwsc」と「タップログ用.uwsc」を開いて2行目にある

「CMD = "nox_adb shell input tap " + (G_IMGX_X + RANDOM(35)) + " " + (G_IMGX_Y + RANDOM(5))」

の (G_IMGX_Y + RANDOM(5))の部分 「+ RANDOM(5)」の部分を「 - 20 + RANDOM(20)」とかにしてみて下さい。これは見つけた画像の座標(G_IMGX_Y)から上方向に0~20の間でランダムな場所を上方向にタップしてねと言う意味です。よく分からなければ下のコードをそのままコピペしてください

Noxの場合は「タップ.uwsc」と「タップログ用.uwsc」に以下のコードをコピペで上書き

  1. CMD = "nox_adb shell input tap " + (G_IMGX_X + RANDOM(35)) + " " + (G_IMGX_Y -20 + RANDOM(20))

BlueStacksの場合は「Bクリック.uwsc」と「Bクリックログ用.uwsc」に以下のコードをコピペで上書き(3行目です)

  1. btn(left,click,g_imgx_x + RANDOM(40),g_imgx_y -20 + RANDOM(20),RANDOM(10))

これでも誤タップが収まらないようなら-20のところを-30~-50の間の数字に変えてみて下さい。何をやっても解決しない場合は別途連絡下さい

コメント

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