?
며칠간 GDIP와 ADB에 대해 틈나는데로 보게 됐습니다.
?
관심도 없었는데 , 모 어플을 본게 계기가 되버렸군요.
블루스택에서 화면을 가린상태에서나, 모니터 밖으로 보내버린 상태(투명상태?)에서도 이미지서칭이 자유롭게
가능한 것을 보고 테일스타 둘러보니 마침 GDIP에 대해 말씀하신 글을 보게되어 하나만 해보자식이었네요
?
제 선에서 해본 바 가장 이상적인것은 GDIP를 이용해서 블루스택에서 작업하는것이고,
지니모션에서 할경우는 ADB + GDIP를 써야한다는것이네요.
지니모션에서 GDI 스크린 캡쳐(HWND)가 됐다면 한방에 해결될것을 검은스크린 품어대는 바람에 ADB로 갈수밖에없었네요.
?
ADB에 와서는 , GDIP의 Gdip_BitmapFromHWND를 이용한 클립보드저장보다?속도가 현저히 떨어지는 문제가 있는데
그래도 그럭저럭 쓸만은 하다는 것 때문에 해보려했으나,
게임플레이시 가로 화면인데 캡쳐를 해도 세로로 찍히는 문제땜에 좀 꺼려졌네요
그렇다고 , 거기다 추가로?이미지툴로?다시 가로로 90도 회전시키는 걸 넣을수도 있겠지만 가뜩이나 느려서 ...
hangoon님께서?말씀하신데로 계산해서 할수도 있는데, 이미지를 여럿 작업할 경우 찾을이미지를 별도로?
90회전시켜야하고 이래저래 능률이 떨어지는것 같아서 중지했네요.
?
원래 게임매크로에는 관심이 없고 , 단지 어떤건가 궁금하여 작동하는거만 보자는 식으로 해본건데요
결국에는 겉만 핥다가 말았네요.
?
시간이라도 많으면 좀 더 생각하면서 해보겠는데 , 시간을 많이 투자할수가 없어서 이게 큰 문제네요
이 부분은 나중에 좀 시간이 나면 천천히 보도록 해야겠습니다. ㅠ
adb를 이용해서 캡쳐한것을 PC로 땡겨오고 그것을 바탕으로 이미지를 찾고 좌표를 추출한다.......... 말씀하신것처럼 느리다는게 단점인데, 느리긴 느립니다. 특히 adb pull로 땡겨오는 과정이 많이 느려요.
그런데, 실제 매크로에 적용해보시면 그럭저럭 쓸만하다 정도가 아니라 그정도 속도면 게임 매크로제작에는 차고 넘치는 수준이 됩니다. 실제 모 유료매크로에서도 이 방식을 이용해 완전 비활성 모드를 구현해내고 있고요. 그것으로 장사를 할 정도라면 어느 크게 불편한 수준이 아니라는건 아마 간접적으로 나마 이해하실수 있으실겁니다.
왜냐, 이미지써치 사이사이에 보통 sleep주시잖아요. 또 터치와 다음 이미지써치 사이에도 sleep 충분하게 주시잖아요.
그것은 이미지 써치 후 다음 써치가 안정적으로 동작하기 위함, 또 터치 후 화면 전환등에 충분한 시간을 주기 위함일테죠 아무래도... 매크로 작업은 한번 실패하면 그 다음 동작에도 영향을 주어 작동자체가 안되어버리는 경우가 생길수있을테고, 즉 실패하면 안되니까 속도보다 정확성이 더 우선되기 때문입니다.
말씀드렸다시피 0.1초 단위의 세밀한 써칭이 필요한게 아니라면, adb로 캡쳐해서 땡겨오는 속도가 느리다고해서 매크로 제작이 안될건 없습니다. 제가 똑같은 작업을 오핫 기본 명령어만 가지고 만든 후, 그것을 adb로 이식해본 경험이 있는데, 매크로 동작 속도는 체감 상 아무런 차이가 없었습니다. (말씀드린대로 중간중간 Sleep때문에요.)
아마 게임 매크로에 큰 관심이 없으셨다고 하니 매크로제작이라는 목표보다는 평소 궁금하던 기술에 대한 접근이라는 측면에서 진행하셨기에, 마음에 드는 수준의 써치 속도가 나오지 않으니 그정도에서 그만두셨을 것이라 생각됩니다.
혹여라도 나중에 진짜 매크로 제작을 타겟으로 adb를 활용하게 되면, 써치속도에 연연하지 마시고 그냥 제작해보시기 바랍니다. 제 경험상, 제가 몬길,레이븐 등에 적용해봤는데, 전혀 문제될 것이 없었습니다.