Introduction
안녕하세요, codedbyjst입니다!
지난 돈복사닷컴 이후로 정말 오랜만에 뵙는 것 같습니다.
아무래도 학교를 다니다보니 개발할 시간적 여유가 부족해서 소홀해진 것 같습니다...ㅠㅠ
기존의 돈복사닷컴도 작동이 제대로 되지 않았던 것을 확인하고, 미작동하던 부분은 고쳐놓았습니다! 괜찮으시다면 한 번 확인해주세요!
이번에 개발한 것은 최근 가장 인기 게임인 우마무스메의 리세마라 매크로입니다.
마침 방학을 한 시점에 우마무스메가 한국에 정발하게 되어 플레이해보았는데, 정말 재밌더라고요.
그런데 몇 주 뒤에 사기 서포트카드인 '블랙 키타산'이라는 캐릭터가 출시하니 리세마라를 준비하라고 하더군요.
그래서 다른 분들이 만들어주신 매크로로 한 번 테스트해봤는데, 각자 약간씩 단점이 있어 마음에 들지 않았습니다.
어느 것은 안정적이긴 한데 속도가 느리고, 어떤 것은 속도는 빠른데 너무 자주 터지고요.
앱플 상성을 극심하게 타기도 하고, 이래저래 뭔가 좀 아쉽다는 느낌을 지울수가 없었습니다.
꼬우면 뭐다? 직접 만들어라!
그래서 방학 기간 반절인 1달을 소요하여 개발하였습니다(...)
우선 작동부터 확인하시죠!
1. 기본 작동
작동 영상을 보시면 아시겠지만, [우마무스메 리세마라 codedby.jst]는 아래와 같은 장점들을 갖고 있습니다.
1. ✈️빠른 속도✈️
우선, 빠릅니다!
가장 인기 많은 매크로가 약 3분정도가 소요되는것에 반해, 위 매크로는 약 2분(조건 미달성)~2분 30초(조건 달성) 정도의 빠른 실행 시간을 보여줍니다!
여러 가지 방식을 이용하여 시간 단축을 이뤄냈고, 빠르다고 잘 터지지도 않습니다!
2. 💥안 터져요!💥
사실 프로그램 프로토타입은 2주만에 개발이 완료되었지만, 정말 수많은 예외를 처리하는데 또 2주를 써버렸습니다...만,
덕분에 안 터지는 매크로를 개발하였습니다!
날짜 변경시 멈추는 문제, 네트워크 오류시 멈추는 문제, 앱이 중간에 꺼져버리는 경우, 4080 에러 등등 현존하는 모든 경우의 수가 해결되도록 하고, 혹시나 예측할 수 없는 문제여도 자동으로 막힌 상태에서 빠져나오도록 개발하였습니다!
실제로 약 2주간 실사용했는데, 재기동 필요 없이 잘 돌아갔습니다!
2. 작동 원리(이미지 인식)
각 기능 및 구현 방식에 대해선 추가적으로 포스팅할 예정입니다만,
우선 기본 작동 원리인 이미지 인식 방식에 대해 조금만 설명하려 합니다.
본 프로그램은 1초마다 앱플레이어 창의 스크린샷을 촬영하여, TEMP 폴더 내에 screen.png로 저장합니다.
해당 이미지와 template 이미지들을 비교하여, 동일한 이미지가 나타난 부분이 존재하면 해당 부분에 빨간 상자를 칠해 result.png로 저장합니다!
또, 어떤 이미지를 발견한건지, 정확도는 얼마였는지는 콘솔창을 통해 확인할 수 있습니다.
위와 같은 구조를 갖춰 디버깅하기 매우 편하도록 설계되었습니다.
혹시나 의도된 이미지가 아닌 이미지가 인식되었다던가, 인식이 되지 않는다면 정확도를 적절히 조정하여 이용하면 됩니다!
3. 4080 에러 해결(VULTR 이용)
개발 중에 가장 괴롭혔던 4080 에러 역시 해결되었습니다!
일정 횟수 이상 게스트계정을 생성하면 아이피 소프트밴을 하는 에러였는데,
VPS를 이용한 OPENVPN 서버 생성 방식으로 추가적으로 공인 IP를 수급하여 문제를 해결하였습니다.
VPS를 다루는데 익숙하지도 않고, OPENVPN은 아예 처음 다뤄서 개발은 힘들었지만.. 그래도 성공적으로 우회하였습니다!
Conclusion
이번 포스트는 대략 어떤식으로 동작하는지 보여드리기 위해 간단히 동영상들로 구성하였습니다!
사실 작성자는 지금 대학교 3학년 여름방학중인데, 매크로 개발에 1달 이상 써먹었다는 걸 생각하면 좀 현타가 오긴 합니다만(...),
개발 중에 vps 사용법이라던가, openvpn 서버 구축을 간단히 자동화하는 방법이라던가, GUI 프로그래밍하는 방법 등을 알게 되어 큰 손해는 아닌... 것 같습니다!
이번 우마무스메 리세마라 매크로는 법적 문제가 발생할 여지가 있을 수 있어 배포는 우선 하지 않을 예정입니다만,
문제를 해결하는데에 들어간 방법들은 기술적으로 충분히 가치가 있다고 생각합니다!
혹시나 개인적으로 개발하실 분들은 참조해주시면 좋을 듯 합니다!
'리세마라 매크로 > 개발일지' 카테고리의 다른 글
[4080 에러] VPN, 직접 만들고 말지! (0) | 2022.08.07 |
---|---|
[스크린샷] 더, 더 빠르게! (0) | 2022.08.07 |