매크로

2015.10.08 13:23

스샷기능

조회 수 4259 추천 6 댓글 37
가장 핵심 스크립트이죠.
기본적으로 오토핫키를 기준으로 설명하겠습니다.

구글링으로 소스 가져왔습니다.
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
if errorlevel = 0 ; 이미지 서치성공
{
    성공시 실행할 스크립트
}
if eerorlevel = 1 ; 이미지 서치 실패
{
    실패시 실행할 스크립트
}
이미지DB파일과 스샷한 파일을 비교해서 검색된 좌표와 함께, 성공과 실패시 에러레벨로 반환합니다.
ImageSearch (스샷)
OutputVarX, OutputVarY (서치좌표)
X1, Y1, X2, Y2 (서치영역)
ImageFile(이미지DB)
if errorlevel = 0(서치성공)
if errorlevel = 1(서치시패)

카카오토에서 표현하면 아래와 같습니다.
스샷(비교) - 이미지그룹명 - 범위:그룹명 - 서치옵션:체크
LxBD6rE.jpg

하지만  이미지DB 생성영역과 스샷판단할 영역이 동일한 경우 많은데도 불구하고
전체영역에서 이미지DB를 서치하는 건 엄청나게 비효율적입니다.
ImageSearch, OutputVarX, OutputVarY, 450, 100, 550, 160, ImageFile
위 처럼 서칭영역을 최소화시켜 주는게 효율적이지만 엄청 귀찮죠?

오토핫키에서 ImageFile은 단순히 비교할 단일파일이지만
카카오토는 그룹(일반적인 변수)에 이미지와 여러가지 값을 보관합니다.
프로그램상으로 구조체? 클래스? 정도로 생각하시면 됩니다.

1.그룹에 이미지를 보관할수 있다.
2. 이미지 업데이트시 재사용가능토록 좌표 영역도 보관할수 있다.
3. 연산 및 판단결과를 보관할 수 있도록 Value 도 있습니다.
4. 상황에 따라 필요한 좌표영역 XY-X2Y2 를 지정할수 있습니다. 

이를 활용하면(오토핫키에 카카오토 이미지그룹을 짬뽕)
ImageSearch, OutputVarX, OutputVarY, 그룹명.영역X, 그룹명.영역Y, 그룹명.영역W, 그룹명.영역H, 그룹명
단순화해서
ImageSearch, OutputVarX, OutputVarY, 그룹명
더 단순화하면
ImageSearch, 그룹명
로 가능해지죠.

if errorlevel <==이건 어떻게 되나?
카카오토의 스샷명령은 검출여부에 따라 자동으로 분기합니다.
위 샘플이미지처럼 스샷 성공시, 실패시로 분기해서 이후 스크립트를 수행합니다.

분기위치는?
if errorlevel = 0(서치성공) <==첫번째
if errorlevel = 1(서치시패) <==마지막
특이점은 첫번째와 두번째가 아닌 첫번째와 마지막입니다.
차이점이 뭘까요? 분기가 하나밖에 없으면 첫번째와 첫번째가 됩니다. 동일한 곳으로 갑니다.
왜? 
무한 반복 스샷기능이 있거든요. 성공시 무한반복, 실패시 마지막으로 패스...
또한 여러개의 이미지를 한꺼번에 검색하여 검색이미지의 순서로 분기... 실패시 마지막
이런 이유로 실패시는 항상 마지막입니다.

정리하면..
이미지서치 - 그룹명 
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile

스크립트 분기
if errorlevel = 
동일하게 됩니다.


실제 매크로를 제작하다보면 스샷판단 결과에 따라 처리할 명령이 다양합니다만
오토핫키 소스에서 실제 매크로 수행쪽을 보면
ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile
if errorlevel = 0 ; 이미지 서치성공
if eerorlevel = 1 ; 이미지 서치 실패
무한 반복입니다. 어떤 이미지를 검색하고 있으며...없으면 또다시 다른이미지 검색하고.....
비효율적일뿐만 아니라 소스가 복잡해지고, 가독성이 떨어지고 등등..

ImageSearch, OutputVarX, OutputVarY, X1, Y1, X2, Y2, ImageFile0 ~ ImageFile10
if errorlevel = 0 ; ImageFile0 서치성공
if errorlevel = 1 ; ImageFile1 서치성공
if errorlevel = 2 ; ImageFile2 서치성공
if errorlevel = 3 ; ImageFile3 서치성공
if errorlevel = -99 ; 서치실패시
위와같은 방법을 사용했습니다. (실제 오핫에서는 안되요^^)

DFySxEb.jpg
스샷(분기) - 이미지그룹명 - 그룹전체 

등록한 모든 이미지DB를 검색할 순 없으니
그룹명으로 구분하여 해당 그룹명의 하위항목들을 한꺼번에 검색합니다.
(스샷 - 이미지그룹 = 항목1~4까지 한꺼번에 검색, 세부옵션에 따라 분기위치가 달라집니다.)


위에서 실제 매크로를 제작하다보면 스샷판단 결과에 따라 처리할 명령이 다양하다고했는데요.
그중 대표적인 경우를 보면
1. 스샷후 참,거짓으로 분기 (가장 보편적인)
2. 스샷후 참이면 클릭하고 다시 반복(메세지창 닫기)
3. 다중 서치로 서치이미지에 따른 각자 분기
4. 옵션 선택에 따른 클릭(버프 체크,해제 등)
5. 해당이미지가 서치될때까지 게임화면변경(맵선택 등)
또한 각 경우별로 해당 이미지가 서치될때까지 무한반복(로딩타임) 도 필요합니다.

스샷(ImageSearch) 기능으로 모두 구현되지만 스크립트가 복잡해지므로 
카카오토에서는 스샷기능을 세분화 하였습니다.
스샷 옵션별로 분기위치와, 사옹되는 이미지항목, 마우스클릭좌표 등이 달라져요

어떤 옵션을 선택하더라도 가장 기본적인 개념만 생각하시면 됩니다.
1. 이미지그룹으로 등록된 이미지를 사용한다.
2. 참 또는 검색된 순서로 분기한다. 
3. 검색실패시는 항상 마지막으로 분기한다.
4. 그룹범위옵션에 따라 단일 또는 전체 이미지를 검색한다.
5. 서치옵션 체크시 오토핫키와 동일하게 작동된다.(해제시 등록영역에서 서치)
6. 클릭좌표는 XY-X2Y2이다.
   (서치사용시 검색된 좌표에 XY-X2Y2(상대좌표로 인식)를 더하여 클릭한다.)
7. 어려우면 스샷후 참,거짓으로 분기 (가장 보편적인) ... 이것만 사용해도 다 만들 수 있다.

  • 하하호호안 2015.10.08 14:01

    오토핫키를 대입해서 설명하니까 오핫키 문외한인 저는 더 어려워 보이네요 ㅎㅎ

    오토핫키 쓰셨던 분들은 이해가 빠르실테지만요 ㅎㅎ

  • profile
    팟팟팟 2015.10.08 14:44
    오핫 쓰시는분 아니면 엄청 어려워보임 ㅎㅎ

    역시 샘플보고 따라하는게 쉬운거같아요~

    저같이 프로그래밍 까막눈에겐 카카오토 최고!!
  • 금작화 2015.10.08 14:51

    이렇게 보니 더 어렵게 느껴지네요 ㅠ.ㅠ

  • 금작화 2015.10.08 14:52

    질문 ..


    오핫키 기준 X100  Y100  안에 A라는 이미지가잇을경우 실행


    이런거를  카카오토에서 할려면 서치부분만 클릭해주면 되는건가요??


    서치기능을 쓰지 않고있어서 잘모르겟네요 ㅋㅋ



  • 프리헌터스 2015.10.08 15:41

    넵 서치기능은 넓은 영역에서 현재 이미지를 찾을때 켜주면 됩니다.

  • 백룡신화 2015.12.11 00:50
    이미지 클릭을 할순 없나요?
  • 프리헌터스 2015.12.11 09:46
    스샷(클릭,서치) 옵션사용하면 이미지검색하여 해당위치를 클릭합니다.
  • Pinic 2016.02.25 11:38

    스샷기능 설명 잘 보았습니다 ㅎㅎ
    질문드릴게 있는데요,

    스샷 클릭을 사용할때 해당 그림을 찾아서 클릭하는것 같은데,

    같은 그림이 여러개일경우 하나의 그림만 이미지그룹목록에 저장하여서

    저장한 이미지 여러개를 순차적으로 클릭하게 하려면 어떻게 해야하나요? ㅠㅠ

    XW            XX2

    YH  와        YY2 는 이해가 가는데 적용을 어떤식으로 해야할지 잘 모르겠습니다..

     

    그리고 또있어요!!

    이미지그룹에 그림들 저장할때 지정한 그림보다 대부분 작게 저장하는것 같은데요..

    지정한 크기와 똑같이는 저장할수없나요??

     

    앞으로도 좋은 강좌 잘 부탁드립니다!!

  • 봉이구봉 2016.04.29 23:15

    카카오토 공부공부!!! 잘보고갑니당~

  • rring 2016.12.24 17:49

    강좌 잘보고있습니다~

  • 동생코코 2017.01.11 18:00

    프로그래밍을 공부하지만.. 안외워 지고 머리가 복잡복잡(결국 메크로는 카카오토를 쓰게됬다는..)


  • 토렝이 2017.01.23 14:59

    감사합니다. 정독중입니다. 이미지서치부분부터 벌써 어렵네요 ㅜㅜ

  • 노인 2017.03.27 13:57

    감사합니다.

  • 케이그로우 2017.04.13 21:11

    스크립트 소스 입력부가 어디 있나요 ㅎㅎ 처음이라...;; 

  • 뻥쟁이 2017.04.15 10:10

    어렵네요..ㅠㅠ

  • 마른펭귄 2017.07.04 12:08

    스샷비교시 10개 이상은 비교가 안되는거 같은데

    혹시 그이상도 검색이 가능한가요..

  • 프리헌터스 2017.07.04 12:25
    갯수 제한 없습니다.
  • 마른펭귄 2017.07.04 22:13
    네 감사합니다..
    다시 사용법 숙지 후 도전하겠습니다..
  • 나름해 2017.10.23 21:21

    좋은정보감사드립니다

  • 루이1242 2017.12.04 13:57

    정보 감사합니다.

  • 헤르레인 2017.12.11 12:02

    감사합니다

  • 아버님은짬뽕 2017.12.15 21:40

    감사합니다~

  • profile
    매일신선 2018.01.13 22:14

    감사합니다

  • 나비뉴츠 2018.09.18 17:54

    쉽게 설명해주셧네요 감사합니다

  • 용맹 2018.12.22 22:58

    열심히 따라해보겠습니다..어리둥절

  • 백억 2019.11.17 21:08

    프로그램 짜는것 보다 글로 설명해주시는게 더 힘드실듯 감사합니다

  • 인생한방 2019.11.29 21:29

    동영상 강좌는 좌표가 없나요?

  • 쌍스크래치 2019.12.12 13:27

    감사합니다... 열심히 배워야겠네요

  • 아나나나낭 2020.01.30 23:46

    감사합니다. 카카오토 입문이라 모든 항목 세목세목 다봐야할것같네요..ㄷㄷ

  • ss7221 2020.07.24 19:46

    좋은 정보 감사드립니다

  • KKcoy 2020.08.10 07:02

    잘보고 갑니다. 감사해요

  • 지옥09 2020.10.13 13:47

    좋은 강좌 감사합니다

  • 마이코루 2020.11.08 23:10

    어렵네유 ㅠㅠ 변수 개념 먼저 익혀야 할 것 같아요

  • 오벨 2021.01.01 14:13

    좋은 정보 감사합니다!!

  • 봉스 2021.01.20 06:09
    감사합니다 제가원하던 내용이었어요!
  • 봉스 2021.01.23 08:33
    감사합니다 제가원하던 내용이었어요
  • 봉스 2021.04.23 06:10
    좋은 강좌 감사합니다

List of Articles
제목 글쓴이 최근변경 추천
카카오토 PRO 2.30B AND, WIN 연동안동 42 프리헌터스 2023.07.17 23/0
카카오토 1.8(지금 2.0) 테스트버전 연동 및 간단 기능... 260 팟팟팟 2023.05.29 28/0
카카오토PRO그룹선택 컨트롤 101 프리헌터스 2023.06.12 10/0
카카오토 PRO.. 이건 알고 가자....^^; 234 프리헌터스 2023.07.21 19/0
카카오토 1.76 관리자설정 사용방법 78 프리헌터스 2023.05.29 5/-2
카카오토1.75 매니저 신규제어판 사용법 58 팟팟팟 2022.09.27 15/0
카카오토 이미지효과 : 색상교체 31 프리헌터스 2021.08.13 1/0
카카오토 이미지 효과 : 레벨 48 프리헌터스 2023.05.23 1/0
카카오토 이미지 효과 : 색상모드 48 프리헌터스 2023.01.16 5/0
카카오토에서 한글/영문 입력방법. 81 프리헌터스 2023.01.16 9/0
카카오토Pro 튜토리얼 #8 맵을 찾고 스테이지를 클릭해... 87 매운뽀글이 2021.04.18 9/0
[수정]카카오토Pro 튜토리얼 #4 멀티스샷 / B5업데이트... 50 매운뽀글이 2021.01.27 9/0
[각종 스크립트 자료공유] 카카오토 1.0 ~ 1.762 버전... 41 팟팟팟 2021.01.29 9/0
카카오토 매크로 제작방법 중급 3단계-[재부팅서브를 ... 44 팟팟팟 2023.05.07 9/0
카카오토 매니저 제작 및 플레이어 사용시 주의사항과 ... 44 팟팟팟 2021.01.25 9/0
[사용자가이드] 카카오토 앱플레이어 연동 가이드 35 탱구리 2023.08.23 8/0
카톡연동 카카오톡연동 66 허간지 2021.11.15 8/0
카카오토 매크로 제작방법 중급 7단계-[옵션클릭] 56 팟팟팟 2023.05.07 8/0
프로버전 멀티스샷 응용 및 원리 강좌 40 탱구리 2020.10.28 7/0
카카오토Pro 튜토리얼 #5 스샷을 정밀하게 - 알파채널&... 59 매운뽀글이 2021.02.04 7/0
카카오토 매크로에서 재부팅기능 사용안하기 방법 53 팟팟팟 2022.07.06 7/0
아무도 모르는 카카오토 기능 96 프리헌터스 2021.07.20 7/0
스샷기능 37 프리헌터스 2021.04.23 6/0
[중급] 카카오토 가이드 #3 (재부팅) 43 탱구리 2023.02.18 6/0
최신 엘디플레이어 일반 연동 관련 참고 23 벤클리프 2023.11.15 5/0
ocr기능을 대체할 수 있는 자체 ocr 함수만들기 팁 (어... 52 닷장군 2022.05.09 5/0
[중급] 카카오토 가이드 #6 (시간제어1) 47 탱구리 2023.06.01 5/0
[기초 실전편] 카카오토 가이드 #3 82 탱구리 2022.03.14 5/0
[기초] 카카오토 가이드 #7 (함수와 리턴&이동) 40 탱구리 2023.09.12 5/0
Board Pagination Prev 1 234 5 Next
/ 5

전체 최신 인기글

전체 주간 인기글