UWSC初心者用スレ

1デフォルトの名無しさん2018/09/24(月) 12:13:49.92ID:an35jPjo
UWSC初心者用スレです

わかってる人はこっち
自動化ツールUWSC使いよ集まれ21
http://egg.5ch.net/test/read.cgi/software/1533818531/

降臨される神々においては相手を人と思わず猿と思し召されるよう
何卒お願い申し上げます

8デフォルトの名無しさん2018/09/24(月) 14:22:22.29ID:+VppQ0pu
改めて

nox(最新)でゲームを自動化しようとしてるのですが、マウスクリックなどの操作を受け付けてくれないですし、記録する時も記録出来ません。
何かやり方あるのでしょうか

あとchromeで裏マクロ作ろうとしてますが画像認識してくれません
試しにsaveimgでid クロームのハンドル webglのハンドルでそれぞれ確認したら
webglハンドルはブラウザフレームだけ取得して中身の画面は真っ黒 他はそもそも現在の画面しか取り込んでくれてないです。
よろしくお願いします

9デフォルトの名無しさん2018/09/24(月) 16:37:22.58ID:d+NkHGTT
ん〜プログラム板がよかったのかソフトウェア板がよかったのか微妙

10デフォルトの名無しさん2018/09/24(月) 17:38:14.77ID:ZwyUHgZx
>>8
noxは直接クリックはできないのでadb使う
向こうのスレに参考スクリプトはあるしググれば出てくる
記録はできないが、単純操作ならnoxのスクリプトレコード使うか、座標系の元値としてだけ使ってもいいかも?
やろうと思えば変換も出来そうだけどね

Chromeはウインドウ指定で使うにはかなり難しい
過去スレを頑張って読むか諦めた方がいい

11デフォルトの名無しさん2018/09/24(月) 20:50:55.47ID:lHcMF3Ar
>>8
自分で考えろ
聞いて解決するな
死ね
殺す

12デフォルトの名無しさん2018/09/24(月) 21:04:24.34ID:DtR7Krcw
早速スレつぶしに来ててワロタ
とにかく罵倒したくて仕方ないんだな

13デフォルトの名無しさん2018/09/24(月) 23:18:39.85ID:an35jPjo
神の啓示には感謝しなきゃダメだよ

14デフォルトの名無しさん2018/09/25(火) 11:04:29.32ID:J1FBTwPW
初心者スレとか嘘つかずに素直にゲームマクロスレとかにすりゃいいのに

15デフォルトの名無しさん2018/09/25(火) 11:20:22.77ID:HpChLXGF
気になって仕方なくて覗きに来たのかw

16デフォルトの名無しさん2018/09/25(火) 11:32:00.41ID:KxeqxPCQ
僕はもう追いかけはしない

17デフォルトの名無しさん2018/09/25(火) 19:02:27.87ID:qc/hnwWX
ありがとうございます
とりあえずfirefox系列ならバックグラウンドで画像確認とか出来たのでこちらをベースにします

18デフォルトの名無しさん2018/09/25(火) 19:16:03.81ID:GnoTTlW7
>>1
>UWSC初心者用スレ

ここはプログラム板なんだから
初心者用スレがソフト板で
スクリプトを書きまくるスレが
こっちにある方が自然な住み分けだと思う

まあ住民視線だと
隔離で他板に飛ばす方が良いんだろうけど

なおスクリプトを書く方が偉いみたいな
思想で言っている訳ではない
利便性で言っているだけ

19デフォルトの名無しさん2018/09/25(火) 22:41:38.51ID:tvEhsayp
>>18
全く仰る通りで。板の住人には誠に申し訳ない。

20デフォルトの名無しさん2018/09/26(水) 00:29:25.56ID:Mnfitxfv
まあ細かいことはええやろ
向こうはUWSCというソフト全般の話する所
こっちはUWSC初心者がプログラムの話する所
とか適当に建前言っとけば問題ない

21デフォルトの名無しさん2018/09/30(日) 21:33:27.14ID:C+d3VFtL
すみません
上に書いてあるadbって何の事ですか

22デフォルトの名無しさん2018/10/01(月) 05:32:35.05ID:2PPz6CoJ
「android adb」で検索!

23デフォルトの名無しさん2018/10/01(月) 14:21:00.29ID:cVCKaASP
検索促すだけじゃあっちと変わらんやん(笑)
調べりゃわかることでも懇切丁寧に教えてやるためにスレ建てたんじゃなかったの?(笑)

24デフォルトの名無しさん2018/10/01(月) 15:03:21.02ID:k8diFUao
わざわざこっちもチエックして煽りに来てんのか
重症やな

25デフォルトの名無しさん2018/10/01(月) 15:04:35.85ID:BPii8/gs
向こうにもリンク貼っておいて何言ってんだこの馬鹿は

26デフォルトの名無しさん2018/10/01(月) 15:08:39.88ID:Gm5J3aUY
いや真面目な話、検索しろじゃあっちと変わらなくね?
このスレなんのために立てたの?

27デフォルトの名無しさん2018/10/01(月) 19:14:57.65ID:dpHWHOw9
真面目な話、adbは板違いなので

28デフォルトの名無しさん2018/10/01(月) 19:50:08.00ID:Fhb8wAZ6
ウィンドウ上の定点を監視するために、saveimg(,gid) で
クリップボードにキャプチャした画像の PeekColor(x, y,,TRUE) を取ってるんですが、時々 -1 が返ってくる。
うまく判定できていないのだろうと思って、PeekColor(x, y,COL_R,TRUE) もとってみたけど、こちらは時々 0 が返ってくる。

定点の仕様として、R が 0 にはならないのだけれど、何らかの例外がある場合、-1 や 0 を返す仕様でしょうか?

切り分けとして、-1 や 0 が返ってきたときのキャプチャを保存して確認してみたけど、色がついている(R も存在)しているので
対応指針が決まりません。

どのような時に、-1 や特殊な(?)0 が返ってくるのかどなたかご存知でしょうか?

29デフォルトの名無しさん2018/10/01(月) 20:13:15.44ID:AvNlBg/g
>>28
その異常値が返ってきたときのキャプチャをPeekColorかけるとやはり異常値返ってくるので?

返ってくる場合は画像よく見て分析するしかないかも
返ってこない場合は非同期でグローバル領域共有しておかしなことになってないか確認する

懸念として異常発生時のキャプチャが取れてるのかは疑問だけど…(描画乱れがランダムに起こってるんだとしたら判定後に撮っても遅い)
後は異常時にタイムスタンプ付きでログ出して周期的なものか、そのタイミング何か重い処理してないかなどを分析する

30デフォルトの名無しさん2018/10/01(月) 20:26:28.02ID:Fhb8wAZ6
>>29
キャプチャした内容(クリップボードに取り込んでた内容)を peekColor かけても、問題ないんですよねぇ。
グローバル領域かぁ。。。分からんw

> 懸念として異常発生時のキャプチャが取れてるのかは疑問だけど…
この辺の切り分けができるように、クリップボード使用してたんですけど、分からんねぇ。困った^^;

もうちょっと調べてみます。ありがと。

31デフォルトの名無しさん2018/10/01(月) 21:06:45.73ID:k8diFUao
>>26
検索しろでも懇切丁寧に教えてあげるのでも好きにすりゃいいんじゃねぇの
そういう所に変にこだわって肝心のuwscの話から脱線するのがウザくて離れたんだから

32デフォルトの名無しさん2018/10/01(月) 21:54:24.74ID:SSJgbJ3B
>>29
そもそもクリップボードから取得って確実性あんの?
他で使ってる可能性は?入っているデータ型は都度確認してる?
あんま賢いやり方とは思えないが

33デフォルトの名無しさん2018/10/01(月) 22:25:15.19ID:fZlkxeb/
chkimgxをAutoItなどに移植って可能ですかね?

34デフォルトの名無しさん2018/10/02(火) 00:28:05.04ID:me1+gMvb
>>33
元々C++で作ってるらしいからそっちに明るいならいけるんじゃないか

35デフォルトの名無しさん2018/10/02(火) 01:10:43.02ID:HAR2y5TT
元々OpenCVの関数叩いてるだけだし

36デフォルトの名無しさん2018/10/03(水) 19:21:37.26ID:srylDUsH
すみません
While !chkimg("gazou",0,,,,,,IMG_MSK_BGR4)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
ifb SLEEP(10) then
break
endif
WEND

と書いて10秒待っても画像が無かったらループを脱出させようとしたのですが脱出できません

サンプルでは

while true
fukidasi ("ENDキーで終了",100,100)
ifb getkeystate(vk_end) then
break
endif
wend
とエンドキー押せば止まるのでこれを真似てみたのですが
よかったら分かるかたいませんでしょうか?
よろしくお願いします。

37デフォルトの名無しさん2018/10/03(水) 19:57:21.83ID:yx3nQSMn
start = gettime()
While gettime() - start < 10
if chkimg("gazou",0,,,,,,IMG_MSK_BGR4)
BTN(LEFT,CLICK,G_IMG_X,G_IMG_Y)
break
endif
WEND

38デフォルトの名無しさん2018/10/03(水) 20:00:22.12ID:KtepAYQT
if/ifbの次には真偽値を置く
今のコードだとタイマーが置かれてて意味がわからないので無視されている

39デフォルトの名無しさん2018/10/03(水) 20:08:02.96ID:eg7MKqyj
UWSC × Noxでゲームマクロの入門編の記事を作成しました。
nox_adbについてサンプルコード付きで書いている記事は今までなかったと思うので、初心者さんが来た時にでも使ってください。
https://qiita.com/macro_no_deshi/items/dd3b3405123bad0cfe4a

40デフォルトの名無しさん2018/10/03(水) 20:35:01.96ID:srylDUsH
>>37
>>38
神様助かりました!一日中試してたのにおかげで無事できました!ありがとうございます!

41デフォルトの名無しさん2018/10/09(火) 08:09:46.16ID:dgVIN+8N
保守s

42デフォルトの名無しさん2018/10/13(土) 16:29:34.71ID:0Iqx+GXq
友人のために作成したスクリプトで、おかしな挙動が出ています。
ACW(gid,0,0,,)
として、左上隅にウィンドウを移動させ、そこを基点に特定座標の色を拾うスクリプトを書きました。
が、時々拾えなくなると言われ、切り分けのために色を拾うタイミングで、キャプチャを実施しました。
キャプチャ結果を見ると、時々、ウィンドウが移動しているように見受けられます。

友人の操作を疑っているのですが、触っていないと言われ、原因を探っています。

ACW 以外に、ウィンドウを動かす事に注意しなければならない関数は存在しますか?

昼飯で引き受けたのですが、ずいぶん高くついてしまっています。
ヒントでもあれば教えてください。

43デフォルトの名無しさん2018/10/13(土) 20:36:39.68ID:M9OwAK6A
>>42
情報が少なすぎて何とも言えないが…まず、どう動くの? 
その場所からいなくなるという意味ではCTRLWINでもBTNでも犯人になり得るがそういう話し?

対策は面倒ならしつこくACWするか、根本対応としてMOUSEORG使うかってところが今のところ浮かぶけど
もうちょっと差し支えない範囲でコードの中身見ないと分からんことが多すぎるよ

44デフォルトの名無しさん2018/10/13(土) 20:38:31.06ID:zXFRfhuI
念のため前後も確認したい

45422018/10/13(土) 21:50:49.06ID:0Iqx+GXq
定点観測して、ログを吐き出すスクリプトなんで、ざっくりというと以下な感じ。
・ウィンドウを左上に移動
・特定座標の色を変数として記憶
・記憶した色のパターンが特定の条件に合致すれば、ログに出力

キーボード操作も、マウス操作も無くて、処理としては色の監視とその条件用の演算と出力です。

元のスクリプトを簡潔にして画面キャプチャのために作成した切り分けのためのスクリプトから
更に演算処理を全部抜くと

OPTION EXPLICIT, TOPSTOPFORM
OPTION LOGFILE = 3
OPTION LOGPATH = ".\"
logprint(TRUE)
dim gid = getid("hoge")
ACW(gid,0,0,WINDOW_SIZEx,WINDOW_SIZEy)
for id = 0 to 11
FUKIDASI(x+","+y x, y)
saveimg("debug_"+ (id) + ".bmp",gid,,,,,,,IMG_FORE)
print x+","+y
sleep(2)
next

こんな感じ。saveimg してるところで、本来は色の識別してます。
この FUKIDASI の位置が、キャプチャ画面上でずれるんです。。。

手元の PC だと再現しないんですよねぇ^^;
なにか怪しい箇所があれば、ぜひ教えてください。

46デフォルトの名無しさん2018/10/13(土) 23:52:53.09ID:4mi4Ve5O
再現しないならその友人が怪しいだろ
本当に友人なんですかね

47デフォルトの名無しさん2018/10/13(土) 23:55:44.28ID:M9OwAK6A
>>45
で、結局どう動くの?

ワープしてデスクトップから消え失せるの? 超高速で縦横無尽に動き回るの?

48デフォルトの名無しさん2018/10/14(日) 00:39:58.87ID:TOccAP8t
>>45
昨日もうひとつのUWSCスレでふきだしの話してた人?

FUKIDASIのxとyってどうやって算出してるの?
元のスクリプトのほうでループのなかでxとyの値が更新されて
FUKIDASIの位置が変わってるんじゃないの?
それ以外吹き出しが動く要素がなさそうにおもうんだけど
それとUWSC以外を疑うなら画面全体を動画キャプチャしたら?

49452018/10/14(日) 07:47:15.28ID:pryZUL3Y
もう一つの方の人とは別です。くちばしの形状は気にしてないんでw

FUKIDASI の xy は色識別の座標です。
画面にタイル状に並んだ画像の位置情報を算出してます。
イメージとしては、ブラウザ上に同じフォーマットの画像が12個並んでいて、その特定座標の色を抜き出している感じです。
12箇所の基点座標の割り出しと、それに追加する相対座標を追加する計算をしています。
で、ぞの位置がずれていないか、FUKIDASI 出してざっくり位置確認をしたんですが、
ループの中で撮った12枚の画像で、FUKIDASI が本来の位置に無いものがある。
何度か取り直してもらったんですが、都度少しづつズレるんです。
ズレは、ちゃんと計測してないけど、xy それぞれの方向に 1 から 5 px 程度。
ループ中全部ズレるんではなくて、途中でズレるとか、最初にズレてそのままとか。
今の所、ループ内で複数回ズレた事は観測できてません(まぁ試行回数もそれほど多くないですけど)

IMG_FORE なんで、「stop ボタン」も写り込んでるんですが、そっちもズレるんでウィンドウが動いてるって判断してます。
まぁ、何が起きてるか全然分からんので、次の切り分けでは、画面全体のキャプチャ撮ろうとは思っていますが。。。
UWSC 以外は今の所疑ってませんでした。ちょっと方法を考えてみます。

50デフォルトの名無しさん2018/10/14(日) 07:48:36.02ID:pryZUL3Y
>>46
怪しいよねぇ^^;
リモートで接続させろって言ってるんだけど、見られたくないそうで。。。
めんどいwww

51デフォルトの名無しさん2018/10/14(日) 10:17:34.99ID:TOccAP8t
>>49
>>45では FUKIDASI の位置が、キャプチャ画面上でずれるんです。。。と言ってるのに
>>49ではウィンドウが動いてるって判断してますと言ってるし結局何がずれてんの?

ずれが1〜5pxなら人間が動かしてるとは考えづらい
そうするとスクリプトの座標部分が変化してるんじゃないかと疑うんだけど
肝心の座標を算出するスクリプトが書かれてないからなんとも言えない

なので要領を得ないから提案としては
fukidasiなりpeekcolorに使うxとyを定数で定義
ウィンドウとfukidasiの座標を監視して変化を検知したらログに残して
ACWで元の位置に戻してからpeekcolorを実行するようにしてはどうだろう

52492018/10/14(日) 11:26:33.14ID:pryZUL3Y
ウィンドウが動いてるんで、座標指定して表示している FUKIDASI がキャプチャ上でズレているって事です。
FUKIDASI には座標を表示しているので、FUKIDASI の座標と計算は正しいと思う。

移動を監視するのが良さそうですね。
ありがとう!

53デフォルトの名無しさん2018/10/14(日) 15:51:35.35ID:flalwaHT
>>49
えーと、fukidasiもデバッグ用ということ?

>>43でも書いたけどウインドウ基準で相対位置決められるならMOUSEORG使えばって感じなんだけどなんかダメな要件があるので?

54デフォルトの名無しさん2018/10/14(日) 16:45:43.47ID:pryZUL3Y
FUKIDASI はデバッグ用途ですね。
元々原因不明な色の抽出がうまくいかないことがあったんで、切り分けの一環として採用しています。
そのおかげで、ウィンドウが少し移動していることが判明しました。

MOUSEORG はあまり使用したくないって程度の理由で採用してません。
今回みたいに原因不明の時に人を疑いたくなるんで、できるだけ人の操作から切り離して実行しようかと。

55デフォルトの名無しさん2018/10/14(日) 21:22:37.96ID:flalwaHT
>>54
よく分からないけど使う側を信用できないなら、なおさら動かされてもリカバリできるようにするものでは?

てかウインドウが動く原因は実のところ色々ある(UWSC外)
・画面の解像度変更、最大化以外の手段でフルスクリーン、パワポのプレビュー
・タブレットなら縦横動かした時
・デスクトップのウインドウテーマ変更
・グラボのドライバアップデート
これをやってないか、やったらいかんとか再起動せよと友人に言い含めるのとスクリプトで対策するのはどっちが楽?
(まぁ一部は再起動した方がいいと思うが)
まぁやりたくないならどうぞご自由に、自分からは特に強制するつもりはないのでね

56デフォルトの名無しさん2018/10/14(日) 23:41:27.00ID:bd+C6J+S
質問です

(1)画像1を認識したらスタートして画像4をクリックするマクロA
(2)画像2を認識したらスタートして画像2をクリックするマクロB
(3)画像3を認識したらスタートする画像3をクリックするマクロC
(画像1〜3が同時に表示されることはなく、全てのマクロを常に起動しておきたい)
このようなプログラムを作成したいのですが、お知恵を貸してください

ttps://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11135040611
ここを参考に作成してみたのですが、(1)のマクロしか動作してくれません
https://i.imgur.com/0G5273Y.jpg

57デフォルトの名無しさん2018/10/14(日) 23:52:58.88ID:flalwaHT
>>56
IFBの括りが悪い
すべてが最初のIFBの中なのでその画像がある時以外は何も動かない

58デフォルトの名無しさん2018/10/15(月) 02:43:39.99ID:9JA9/qag
たしかに1.bmpの1行とENDIFの1つを消したら2と3(4の画像が出たら4も)が動作しました

あとは添付の画像のように修正してみました
一見無事に動作しているのですがループが早すぎて気づいていないだけ…?
https://i.imgur.com/mnpJfXM.jpg

新着レスの表示
レスを投稿する