gamebot-app-sk2
세븐나이츠2
2020-12-27
인식률 낮은것들
홈.
일반.
고급.
인식할것. 시나리오진행
카테고리
-
시나리오진행
스마트키가 동작하지 않는다면 클릭해준다. 스킵이 나오면 스킵해주고 스킵팝업창도 확인눌러준다. 한번하고 안하는 튜토리얼이라던지 도움팝업창같은 경우는 제외한다. 튜토리얼이 나오면 취소를 누른다. -
방치형 필드
방치토벌쾌에서는 가방이 가득차면 정지하는데 가방이 어느정도 차면 일반템을 분해시켜주어 진행시킨다. 방치토벌진행은 절전모드에서 가방의 수가 n퍼센트가 넘어가면 빨강텍스트로 효과가 주어지고 인식이 동작하는데 이전 화면의 상태값을 저장하고 있다. 무슨 상태냐면 내가 정의한 이전화면이다. 방치토벌쾌진행을 설정에서 선택하였다면? 한 화면의 여러가지 객체가 인식되는데 이 객체중 여러화면에 포함되어 있는 객체가 있다면 이전 화면으로 현재화면상태를 정의한다. 예로 가방의 분해기능이 활성화 되어있는 화면이 있는데 이 화면이 분해를 시작할때와 분해가 종료되었을때 화면이 같은경우에 홈버튼객체를 멀티화면을 갖는 객체로 미리 정의해놨고 이전 화면상태값을 저장해놓고 홈버튼이 인식되면 이전 내역에서 3초이내의 분해결과화면이 있으면 홈버튼을 다른 인색객체보다 우선순위를 높여 클릭되게 한다.
+부가기능으로 방치토벌쾌 진행중 사망. ==> 메일발송. 펫 엑티브스킬 사용
화면정의
MODE_BASIC 기본화면
MODE_POWER_SAVE 절전화면
BAG_BASIC 가방화면
BAG_DISSASSEMBLE_ACTIVE 가방화면.분해활성화
BAG_DISSASSEMBLE_SELECT 가방화면.분해선택
BAG_DISSASSEMBLE_POPUP 가방화면.분해팝업
BAG_DISSASSEMBLE_RESULT 가방화면.분해결과
+부가기능
안드설정화면에-비움카운트 노출
그런데 인식 쓰레드에서 반환된 값으로
frame배열에 채워 넣는데 ..
아무래도 연속으로 채움이 인식되었다고 온다. 채움 인식될 떄마 틀배열을 생성한다면 망한다.
그러면 채움인식 되면 물이 켜지면 어떤가? 3분간 활성화가 된다. 첫번째 채움이 온다음 3분간 활성화 되고
채움인식 올때마다 3분간 채움프로세스가 활성화된다.
첫 채움이 도착시각 +3분 간 유치되고 유지기간에 들어오 채움인식은 무시된다. 분해결과인식이 오면 채움활성시간은 0으로 된다.
인식번호가 전체채움,절전채움잉 오면 도착시간이 채움동작시각 변수에 저장되고 그 다음 채움이 오면 채움도착시각과 채움동작시각 비교하여 3분이 넘어가면 무시한다.
+예외상황
전체채움이면 전체채움좌표로 클릭이벤트 발생시켜 가방화면으롤 이동한다.
분해버튼이 인식되면 클릭하고
사용자가 선택한 일반, 고급에 따라
일반이 인식되면 일반클릭하고 일반클릭변수에 현재 시각 넣고 고급이 인식되면 고급활성화변수에 현재시각넣고 클릭하고 일반과 고급이 인식이 들어오면 활성화변수의 값이 있으니 무시한다.
그리고 분해이 인식되면 분해버튼을 누른다.
분해팝업창이 나오고 분해팝업창의 확인이 인식되면 클릭이벤트를 발생시키고 정말분해시각 변수에 저장한다음 10 초안에 분해결과가 인식안되면 분해를 다시 전해한다. 이유는 새 아이템이 들어오면 분해결과로 안넘어간다.
분해버튼-우가 여전히 인식된다면 정말분해시각이랑도 비교해 봐야한다. 이유는 새아이템 등장으로 분해결과로 안넘어가니깐
분해.우가 인식된다면 분해.우의 인식시각과 변수중 정말분해시각과 비교해봐서
분해결과이후 분해활성상태로 넘어간다. 분해활성상태란 분해.좌를 클릭한 상태인데 이때는 일반,고급이 인식되는 상태이다.
그러므로 일반,고급,분해.우가 인식되어 들어온다면 분해결과시각 변수의 값과 비교해봐야한다. 이유는 처음 인식된것과 분해결과후에 인식된것과 차이를 모르기 때문에
분해진행상태를 인식여부에서는 모르기 때문이다.
분해진행상태롤 변수로 저장하고 있어야 한다.
첫 채움인식후 - 분해.좌 - 분해대상(사용자변수) - 분해.우 - 정말분해 - 분해결과 - 홈 - 메뉴 - 절전모드
클릭 클릭 클릭 클릭 클릭 클릭 클릭 클릭 클릭
정말분해중 뉴아이템 등장시 분해대상 부터 다시선택
인식 번호에 따라 전체화면의 채움이나 아니면 절전모드의 채움 (가방의 채움은 빨강색이 안나오므로 인식안됨)이 결정나고 절전모드의 채움이면 스와이프-가방클릭-가방화면.분해-가방화면.분해.일반-가방화면.분해-팝업창.정말분해-분해결과-홈-메뉴-메뉴.절전모드 전체화면의 채움이면 가방클릭-가방화면.분해-가방화면.분해.일반-가방화면.분해-팝업창.정말분해-분해결과-홈-메뉴-메뉴.절전모드
한개의 화면에서 클릭객체찾기
인식목록중 클릭객체를 찾는 방법은 한 화면에 여러 인식객체가 인식되어야 하나의 화면이 구성될때
여러 인식객체중 어떤것을 클릭할 객체로 선정하는 방법이다.
정규식 이용
모든 객체를 순서대로 출력하는데 인식목록에 포함되어 있으면 -를 붙여 나열후 미리 정의한 정규식을 통해 클릭할 객체를 선정한다.
한개의 화면에서 클릭객체찾기 + 이전화면
이전 화면에 따라 같은 화면에 다른것을 클릭해야 될떄는 이전 화면들을 저장하는 history 변수를 만들고
다중화면을 가지는 객체가 인식되면 history 변수의 3초 이내의 화면과 비교하여 클릭객체를 찾는다.
인식객체정의
json형태로 아이디,이름,개별 객체의 퍼센트,속한 화면
yolo_분류_이미지폴더
폴더명 분류내용
11
10 스마트키.off
9 스킵팝업
8 스킵
7_1 분해결과_3가지+금화
7 분해결과_2가지+금화
6 분해팝업
5_1 분해우+ 선택된장비의 분해결과(2가지_금화) + 홈
5 분해우+ 선택된장비의 분해결과(3가지_금화) + 홈
4 일반고급 + 홈
3 분해좌 + 홈
2 전체가방풀
1 절전각방풀
yolo_라벨
{
"regex":[
"11=,10,11,",
"9=,8,9,",
"6=,6,7,"
],
"labels": [
{
"id": 0,
"name": "홈",
"min": 2,
"screens": [
"BAG_BASIC",
"BAG_DISSASSEMBLE_ACTIVE",
"BAG_DISSASSEMBLE_SELECT"
]
},
{
"id": 1,
"name": "절전풀",
"min": 90,
"screens": [
"MODE_POWER_SAVE"
]
},
{
"id": 2,
"name": "기본풀",
"min": 90,
"screens": [
"MODE_BASIC"
]
},
{
"id": 3,
"name": "분해.시작",
"min": 90,
"screens": [
"BAG_BASIC"
]
},
{
"id": 4,
"name": "분해.일반",
"min": 90,
"screens": [
"BAG_DISSASSEMBLE_ACTIVE"
]
},
{
"id": 5,
"name": "분해.고급",
"min": 90,
"screens": [
"BAG_DISSASSEMBLE_ACTIVE"
]
},
{
"id": 6,
"name": "분해.선택",
"min": 90,
"screens": [
"BAG_DISSASSEMBLE_SELECT"
]
},
{
"id": 7,
"name": "분해.선택.금화",
"min": 90,
"screens": [
"BAG_DISSASSEMBLE_SELECT"
]
},
{
"id": 8,
"name": "분해.팝업창",
"min": 98,
"screens": [
"BAG_DISSASSEMBLE_POPUP"
]
},
{
"id": 9,
"name": "분해.팝업창.확인",
"min": 90,
"screens": [
"BAG_DISSASSEMBLE_POPUP"
]
},
{
"id": 10,
"name": "분해.결과창.금화",
"min": 90,
"screens": [
"BAG_DISSASSEMBLE_RESULT"
]
},
{
"id": 11,
"name": "분해.결과.텍스트",
"min": 90,
"screens": [
"BAG_DISSASSEMBLE_RESULT"
]
},
{
"id": 12,
"name": "스킵",
"min": 90,
"screens": [
"MODE_BASIC"
]
},
{
"id": 13,
"name": "스킵팝업.확인",
"min": 90,
"screens": [
"MODE_BASIC"
]
},
{
"id": 14,
"name": "스킵팝업.취소",
"min": 90,
"screens": [
"MODE_BASIC"
]
},
{
"id": 16,
"name": "스마트키.off",
"min": 90,
"screens": [
"MODE_BASIC"
]
},
{
"id": 17,
"name": "스마트키.on",
"min": 90,
"screens": [
"MODE_BASIC"
]
}
]
}
인식대상(튜토리얼 전)
=============기본기능=============
전체화면.SKIP
전체화면.SKIP-팝업창.확인
전체화면.NEXT
홈.NEW.가방버튼
(가방화면.기본케릭의 장비화면)
(가방화면.맨왼쪽부터 케릭터 클릭하여 캐릭장비화면 노출 필요함.)
가방.<캐릭>.활성아이템표시
가방.<캐릭>.활성아이템표시.자동장착버튼
가방.<캐릭>.활성아이템표시.자동장착버튼.팝업창.적용O.확인버튼
가방.<캐릭>.활성아이템표시.자동장착버튼.팝업창.적용X.확인버튼
가방.홈버튼
<이동,사냥,대화,수집,튜토리얼,시나리오>
홈.스마트키<>.비활성
홈.스마트키<>.활성
홈.스마트키<튜토리얼>.활성-팝업.진행버튼
홈.스마트키<시나리오>.활성-팝업.다음장 이동
홈.스마트키<시나리오>.활성-팝업.방치형 필드이동
전체화면.팻액티브스킬
=============부가기능=============
홈.NEW.우편
우편.탭.NEW
우편.탭.NEW-받기
우편.탭.NEW-받기.케릭수령권 이면 캐릭선택창 이동됨.......우편 NEW 는 취소로..
전체화면.피업음(빨강 테두리) VS 공격범위
전체화면.귀환
죽으면.팝업창.귀환버튼
=============튜토기능=============
튜토리얼-미니대화창(우선순위1)
튜토리얼-미니클릭(우선순위0,원형모양클릭(라벨링 난이도 최상))
홈.팝업창<팀변경>.진행
홈.팝업창<정보>.닫기
홈.팝업창<광고>.닫기
=============일일도전=============
<골드,영혼석,엘릭서,룬,경험치>
싱글던전.스와이프
싱글던전.홈버튼
싱글던전.입장가능
싱글던전-<>화면.싱글도전
무한의탑.완료.화면터치 시 다음화면으로 넘어갑니다.
무한의탑.완료.화면터치 시 다음화면으로 넘어갑니다.무한의탑화면.홈버튼
프로그램
화면의 인식대상 클릭
화면 1개 안에 인식목록 중 인식대상이 1개인 경우에?
==> 그 하나를 바로 클릭시키면된다.
화면 1개 안에 n개의 인식대상중 하나만 클릭할 경우?
==> n개의 인식목록 중 하나만 클릭하기위해 n 개 중 클릭할 1개를 선택하기 위해서는
정규식을 통해 n개중 1개를 선택한다.
화면 1개 안에 n개의 인식대상중 하나만 클릭하고 이전 화면에 따라 다른걸 클릭할 경우?
예) 화면A에는 2가지 클릭대상(홈으로,분해시작)이 있는데
분해를 완료한 후에는 화면A의 홈버튼을 클릭해야되고
분해를 시작할 때에는 화면A의 분해시작을 클릭해야된다.
==> 이럴때는 이전 화면을 알아야 클릭대상을 선택할수 있음.
+ LSTM 같이 변수 하나 생성하여 이전 값 저장
값저장변수는 history
지속적인 인식목록이 발생할 경우?
==> 지속적으로 n개의 인식목록에서 1개를 선택하여 클릭하면됨.
하지만 눈으로 바로보는 화면과 인식을 처리하고 인식목록이 나온 화면과 다름
input_size가
640인 경우에는 인식목록을 만드는데 약 0.6~1초 걸리고
416인 경우에는 인식목록을 만드는데 더 빠르지만 작은 인식객체를 인식하지 못함.
화면 n개 안에 인식목록 중 인식대상이 n개이고 인식대상중 하나만 클릭해야될 경우에는?