게임 이미지 서치 - geim imiji seochi

원문 보기

ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech&wr_id=327

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

안녕하세요. 엔지엠소프트웨어입니다. 게임 또는 업무를 자동화할 때 가장 기본이 되는 기능이 뭘까요? 마우스와 키보드~ 그리고, 오늘 알아볼 이미지 서치입니다. 단순히 마우스와 키보드를 조합해서 순차적으로 업무를 처리할 수 있지만, 이는 완벽하게 업무 로직을 구현하는데 한계가 발생합니다. 복잡한 자동화를 구현해야 한다면 이미지 서치는 필수 기능이죠^^; 엔지엠 에디터는 이미지 체크, 이미지 서치와 이미지 매치가 있습니다. 이외에도 멀티 서치나 전체 서치등등 다양한 기능들이 포함되어 있는데요. 이런것들은 다음에 자세히 알아보도록 하고 오늘은 이미지 서치를 테스트해봅시다. 에디터를 실행하고 스크립트를 추가(Ctrl+N)하세요. 도구 상자의 조건에 있는 "이미지 서치" 액션도 추가하세요.

[ 이미지 서치 메뉴얼 보기 ]

아래 동영상을 참고해서 찾을 이미지(휴지통)를 하나 캡쳐 해줍니다. 순차적으로 설명하면 속성창의 캡쳐를 클릭한 후 마우스 드래그로 이미지를 선택합니다. 그리고, F1을 누르면 드래그로 선택한 이미지를 저장할 수 있습니다. 캡쳐한 이미지는 엔지엠 기본 이미지 폴더에 저장됩니다. 물론, 다른 위치에 저장해도 됩니다.

실행(Ctrl+Alt+F8)해보면 "휴지통"을 찾았다고 메시지를 표시해줍니다. 메시지는 하단 아웃풋 창에 표시됩니다.

휴지통을 그림판이나 메모장으로 가려놓고 다시 실행 해보세요. 이번에는 이미지를 못찾았다고 메시지가 표시됩니다.

사실 중요한 부분은 이런 단순한 이미지보다 반투명 이미지를 찾아내는 것입니다. 요즘 3D 게임들은 대부분 반투명 이미지로 아이콘들이 만들어져 있습니다. 배경에 따라서 이미지의 색상이 바뀌는거죠. 이런 이미지들은 캡쳐 당시의 아이콘과 비교하면 전부 다르다고 결과를 표시합니다. 당연한 결과겠지만요^^; 아무튼, 이런 경우라도 이미지를 판단해서 특징을 비교해서 찾을 수 있어야 합니다.

이미지 서치에는 색상이 좀 다르더라도 같은 이미지로 판단할 수 있는 옵션이 있습니다. 아래 그림에서 "공차"가 그 역할을 하는데요. 기본값인 0은 이미지가 완전 일치해야 한다는 뜻입니다. 이미지 색상이 다르더라도 같은 이미지로 판단하려면 이 값을 증가시키면 됩니다. 최대 255까지 입력할 수 있습니다. 컴퓨터의 모든 이미지는 ARGB로 나타냅니다. Alpha는 투명도를 나타내고 나머지 RGB(Red, Green, Blue)는 빛의 3원색으로 모두 합치면 흰색이 됩니다. 각각 0~255까지의 범위를 가집니다. 그래서, 흰색을 숫자로 표현하면 255 255 255 255가 됩니다. 검은색은 255 0 0 0입니다.

이미지를 찾으면 해당 이미지가 어디에 있는지와 마우스가 클릭하게 될 좌표를 알려줍니다. 아직 변수에 대해 학습하지 않아서 자세하게 설명할수는 없으나, 일반적으로는 이 정보를 변수에 저장한 후 마우스 클릭에서 사용해야 합니다. 하지만, 간단하게 이미지를 찾아서 클릭하는 로직을 복잡하게 만듭니다. 그래서 조건 액션들에는 기본적으로 마우스 동작이 확장 속성으로 포함되어 있습니다.

아래 그림과 같이 "마우스 동작"을 "LeftClick"으로 변경하세요.

다시 실행 해볼까요? 마우스가 휴지통을 클릭하는걸 확인할 수 있습니다.

오토핫키중에서 이미지 서치로 이용하여, 단순 게임 매크로를 많이 사용하시는 분들이 많습니다. 간편하게 이미지를 찾는 기능으론 오토핫키가 쉬운 편이라고 생각합니다.

오토핫키 ImageSearch 는 특정 픽셀의 X좌표 Y좌표 사이에서 이미지가 발견되면 실행되는 함수입니다.

이미지서치

ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile

ImageSearch - 이미지서치 명령어입니다.

OutputVarX - 이미지를 찾은 후 그 위치를 저장할 X좌표값

OutputVarY - 이미지를 찾은 후 그 위치를 저장할 Y좌표값

X1 - X좌표를 말합니다.

Y1 - Y좌표를 말합니다.

예제

제가 위와 같은 이미지를 서치해보겠습니다. 천천히 차례대로 따라오시면 쉽습니다. 

우선 맨아래에 있는 툴팁 마우스좌표를 다운받으셔서 실행해주세요. 오토핫키 파일입니다. 실행하셔서 F1 을 눌러주세요. 그럼 스크린 절대적인 위치 좌표값이 나옵니다. 그리고 이미지서치를 할 사진을 실행합니다. 

    이미지서치를 할 범위값을 구해야 합니다.    X값은 726에서부터 

X값은 939까지 X좌표에 대한 범위를 서치합니다. X좌표만 구하면 되는게 아니라 Y좌표도 구해야 되겠죠?

Y좌표는 318부터 

Y좌표 384까지 이미지서치를 합니다.

마찬가지로 X좌표는 오른쪽 939으로 설정했습니다. 그럼 소스를 어떻게 짜는지 볼까요?

소스

ImageSearch, x1, y1, 726,318,939,384, *50 C:\Users\song\Desktop\송토핫키.png

If ErrorLevel = 0  ;  


msgbox,msgbox,0,쏭토핫키,이미지를 찾았습니다,1
}

If ErrorLevel = 0  ;  이미지를 찾으면 실행하는 소스입니다. 만약 에러가 없으면 '이미지를 찾았습니다' 메세지박스를 실행해라. 라는 뜻입니다.

*50   정확도를 의미합니다. 낮을수록 보다 꼼꼼하게 정밀하게 이미지서치를 합니다. 이미지서치를 하는 이미지 크기나 모양에 따라서 50 이란 숫자를 높여보고, 줄이면서 제대로 실행하는지 확인하는 것이 중요합니다.

기본값은 50입니다.

이미지 서치가 성공하면 메세지박스가 뜨면서 이미지를 찾았습니다. 라고 나옵니다. 복잡하지 않죠?

툴팁 마우스좌표.ahk

0.00MB

Toplist

최신 우편물

태그