[ 앱뜯 관련 글 모음 ]
※ [흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기
※ [흥미] 말딸 앱 뜯어보기 중급편 : master.mdb 뜯어보기 ☜
※ [흥미] 말딸 앱 뜯어보기 초급편2 : 사운드 뜯어보기
※ [흥미] 한섭 말딸 클라이언트의 이미지를 뜯어보자!
오래간만에 말딸 앱 뜯어보기 글, 이번엔 중급편으로 돌아왔습니다!
처음 초급편을 쓴 이후로는 7개월, 한섭 클라 뜯어보기 글을 쓴 이후로는 2개월만에 쓰는 글이네요 ㄷㄷ
이전 글들에선 에셋 데이터, 그 중에서 특히 이미지 데이터를 뜯어보는 방법을 다뤘었는데,
이번엔 DB 파일을 뜯어서 그 안의 내용들을 분석하는 방법을 다뤄보고자 합니다!
사실 원래는 기존에 뜯어냈던 에셋 데이터(초급편 내용)에서 다루지 않았던 파일들(텍스트, 사운드 등)을 중급편으로 다뤄보려고 했는데...
이미지나 3D 모델링 쪽이 파일명 구분도 잘 되어있고 뷰어에서 바로 확인할 수도 있고해서 뜯어보는 난이도가 쉬웠던거지,
그 외의 에셋 데이터들은 파일명이 난장판이라 찾기 힘들거나 뷰어에서 확인할 수 없게 암호화되어 있는 등, 뜯어보기가 어렵더군요 -_ㅠ
그러던 와중 최근에 우연히 DB 파일의 존재를 알게되어, 이걸 중급편의 내용으로 준비해봤습니다 ㅇㅇ
다만 DB 파일을 열어보는 자체는 쉬운 편이니, DB의 어디에 어떤 정보가 들어있는지에 대한 내용을 좀 더 중점적으로 다뤄보도록 하겠습니다.
※ 이 글은 작성일(27일) 기준으로 최신 DB 파일(한섭/일섭 모두 26일자로 업데이트 된 파일)을 활용하여 작성했습니다
※ DB 파일을 열어보는 법은 간단한지라, DB 파일을 분석하는 방법과 분석한 내용 등을 중점적으로 다뤘습니다. 그래서 글 내용이 상당히 긴 편이니 감안하고 봐주시면 감사하겠습니다.
※ 모바일로는 가독성이 크게 떨어질 수 있으니, PC로 보시는 것을 추천드립니다.
사족으로, 한섭과 관련된 여러 논란 속에서 여러 앱뜯 정보들이 등장하는데, 대부분이 바로 이 DB 파일에서 나온 것입니다.
당장 이번에 한섭이 불타고 있는 이유들 중 하나인 '추후 가챠 및 이벤트 일정이 당겨지는 것'에 대한 앱뜯 정보도 DB 파일에서 나온거고,
지난 달 키타산 블랙 가챠 바로 전날에 픽업 확률 관련해서 있었던 소동(?)도 발단은 DB 파일 내의 정보 때문이었죠.
(애초에 제가 DB 파일의 존재를 알게된 계기도 키타산 블랙 출시일 전날의 소동 덕분(?)이었습니다 핡...)
아마 이 글을 보시고 나면 그런 정보들이 어디서 어떻게 나온거지?하는 궁금증은 해결되지 않을까 싶습니다 ㅎ
[ 목 차 ]
▶ master.mdb 열어보기
▶ 주요 테이블 소개
▶ 주목할 부분 1 : 텍스트 데이터
▶ 주목할 부분 2 : 미래시 스케줄
▶ 주목할 부분 3 : DB 수정을 통한 클라 변조
▶ 번외 : 각종 대화 지문과 사운드 파일
▶ 마치며
[ master.mdb 열어보기 ]
[ ▲ (좌) 7-Zip으로 찾아낸 Nox 내 master.mdb 파일의 위치 / (우) Window 탐색기로 찾아낸 DMM판 master.mdb 파일의 위치 ]
오늘 소개해보려는 DB 파일은 master.mdb라는 이름으로 저장되어 있습니다.
에셋 데이터와 마찬가지로 우마무스메 설치 폴더에 들어있는데, 경로와 접근법만 알면 찾는 것은 어렵지 않습니다.
게임이 설치된 폴더를 찾는 방법은 기기나 클라이언트에 따라 다소 달라지긴 합니다만,
일단 이 글에선 제 PC에 설치한 2가지 클라이언트의 경우에 대해 다뤄보겠습니다.
① 앱플레이어(Nox, 한섭)의 경우
Nox의 경우엔 일전에 쓴 글에서 내부 데이터를 추출하는 과정을 다룬 바 있는데, 그 방법은 이번에도 동일합니다.
하단 링크된 글의 최하단에 관련 과정을 정리해놨으니, 이를 참고하시면 됩니다.
☞ [흥미] 한섭 말딸 클라이언트의 이미지를 뜯어보자!
딱 하나 달라지는 것은 DB 파일이 위치한 경로인데, 아래 경로로 찾아 들어가시면 됩니다.
nox-disk2.vmdk\2.img\data\com.kakaogames.umamusume\files\master\
에셋 데이터가 저장된 dat 폴더의 바로 옆 폴더라 경로가 마지막을 빼면 사실상 동일합니다만...
어쨌든 찾기 힘드시면 위 스크린샷(좌)을 참고하시면 되겠습니다.
② DMM판(일섭)의 경우
DMM판의 경우엔 별도의 프로그램 설치나 추출 과정이 필요없어서 앱플레이어보다는 많이 편합니다.
그냥 Window 탐색기로 아래 경로에 들어가시면 master.mdb 파일이 떡 하니 있는 것을 보실 수 있습니다.
C:\Users\(사용자 계정명)\AppData\LocalLow\Cygames\umamusume\master
이쪽도 앱플레이어와 마찬가지로 에셋 데이터가 들어있는 dat 폴더 바로 옆 폴더인데, 위 스크린샷(우)을 참고하시면 되겠습니다.
다만 게임 데이터 손상을 방지하기 위해 가급적이면 별도 폴더에 복사본을 만들어 열어보시기를 권합니다.
이렇게 master.mdb 파일을 찾으셨다면, 이를 열어보는 것은 매우 간단합니다!
해당 파일은 SQLite라는 DB 시스템을 사용하는 파일인데, 별도의 전용 브라우저만 구하면 바로 열어볼 수 있습니다.
(메모장으로 master.mdb 파일을 열어보면, 모든 글자가 다 깨져서 나오는 와중에 처음의 'SQLite format'이라는 문자열만은 제대로 출력됩니다.
그걸 단서로 SQLite 파일이라는 것을 확인했고, 덕분에 알맞은 브라우저를 구할 수 있었습니다 핡)
아래 링크로 들어가시면 SQLite 파일을 열어볼 수 있는 브라우저(DB Browser for SQLite)를 다운로드 받으실 수 있습니다.
☞ DB Browser for SQLite / Downloads
어느 쪽을 다운받든 크게 상관은 없겠습니다만, 개인적으론 쉽게 쓸 수 있는 무설치판(Windows PortableApp) 쪽을 추천합니다.
그리고 다운로드 페이지와 설치 파일은 영문으로 되어있습니다만, 설치 후 실행하면 자동으로 아래 스크린샷처럼 한글로 변경되니 언어 걱정은 안하셔도 되겠습니다 ㅎ
[ ▲ SQLite Database Browser를 이용해 master.mdb 파일을 열어본 모습 ]
브라우저 다운로드가 완료되었다면, 이제 그냥 브라우저를 열어 master.mdb 파일을 불러오면 그만입니다.
만약 매번 브라우저를 먼저 열고 파일을 선택해서 불러오는게 귀찮다면, mdb 확장자 파일의 연결 프로그램으로 DB 브라우저를 지정해버리면 됩니다.
일단 연결 프로그램 지정만 해두면 일반적으로 쓰는 파일들 열듯이 master.mdb 파일도 더블 클릭으로 바로 열어볼 수 있게 됩니다 ㅎ
DB 파일을 열어보시면 이제 위 스크린샷처럼 수많은 테이블(데이터를 저장하는 표)이 나올텐데,
(테이블 목록 하단에는 인덱스 목록이 나올텐데, 이건 신경끄셔도 됩니다)
그 중에서 원하는 데이터를 담고 있는 테이블을 찾아서 열어보면 됩니다.
테이블 하나를 선택해 컨텍스트 메뉴(우클릭 메뉴)를 펼치면 나오는 [테이블 보기] 메뉴를 사용하셔도 되고,
화면 상단에 있는 [데이터 보기] 탭으로 넘어가서 테이블 목록이 담긴 드롭다운 박스를 펼쳐 원하는 테이블을 선택하셔도 됩니다.
(안타깝게도 테이블 이름을 더블 클릭하는 경우엔 데이터 보기 화면으로 안넘어가지더군요 ㅠ 옵션에도 관련 설정이 없음...)
[ 주요 테이블 소개 ]
DB 파일과 그 안의 테이블을 열어보는 방법까지는 위에서 설명한게 전부라서 누구나 쉽게 따라오실 수 있습니다.
하지만 "내가 원하는 데이터를 보려면 어느 테이블을 열어서 어느 항목을 봐야하는가?"에 대해선 다들 막막하시겠죠.
사실 테이블 이름이란게 개발 편의를 위해 직관적으로 되어있다보니 웬만하면 이름만 봐도 추측하는게 가능합니다만,
그래도 하나하나 직접 뒤져보는 것 보다는 아래 테이블별 설명을 한 번 보시고 찾아보는게 훨씬 쉽지 않겠나 싶습니다.
다만 테이블 수가 257개(일섭의 경우엔 341개)나 되는 관계로 이걸 죄다 소개할 수도 없는 노릇이고,
일반 유저분들이 관심있어 할만한 데이터들을 담고 있는 테이블 위주로만 소개해드리고자 합니다.
(사실 더 많은 테이블을 소개해보고 싶긴 했으나, 그러려면 본격적인 코드 리뷰 느낌이 되는데다 분량도 너무 길어져서...ㅠ)
▶ 인게임에 등장하는 여러 텍스트들을 보고 싶어요!
텍스트 데이터를 담은 테이블은 확인하기가 제일 쉬운 편인데, 테이블을 열면 텍스트가 바로 딱 보여서 직관적이기 때문입니다.
텍스트 데이터들은 4개의 테이블에 나뉘어 저장돼있는데, 각 테이블별로 들어있는 내용은 아래와 같습니다.
▶ character_system_text
육성 우마무스메들의 각종 인게임 대사(홈 화면 대사, 육성 화면 대사 등)들의 지문이 저장돼있는 테이블입니다.
트레이너 도감에 들어가면 육성 우마무스메의 인게임 보이스 목록이 있는데, 거기 수록된 보이스라면 모두 이 테이블에서 확인할 수 있습니다.
(보이스 지문은 물론, 해당 보이스를 포함하는 사운드 파일명이나 연계되어 있는 캐릭터 모션의 번호 등과 같은 정보도 있습니다)
다만 육성 우마무스메 한 명분의 대사가 150~250개 정도 되기 때문에, 원하는 캐릭터의 지문만 보고 싶다면 해당 우마무스메의 character_id를 파악해두시는 것이 좋습니다.
▶ race_jikkyo_comment / race_jikkyo_message
레이스 중에 나오는 해설/중계 지문, 그리고 레이스 전에 패덕에서 나오는 해설/중계 지문이 저장돼있는 테이블입니다.
comment 쪽이 해설, message 쪽이 중계 지문을 담고 있는데, 열어보시면 평소에 볼 수 있는 온갖 해설/중계 대사가 가득한 것을 보실 수 있습니다ㅋ
거기다 특정 조건을 만족해야 볼 수 있는 고유 아나운스의 지문도 message 테이블에서 찾아볼 수 있고,
일섭에선 클라이맥스 시나리오에서만 볼 수 있는 호소에 준코의 고유 해설 지문도 comment 테이블에서 찾아볼 수 있습니다 ㅇㅇ
▶ text_data
위 3개 테이블에 저장된 텍스트 외의 다른 모든 텍스트(!)는 몽땅 이 테이블에 저장돼있습니다.
여러 종류의 텍스트들을 한 테이블에 몽땅 때려박아 넣어둔 상태인데, 그래서인지 데이터의 수(row의 수)도 모든 테이블들을 통틀어 가장 많죠 ㄷㄷ
(작성일 기준으로 한섭 클라의 경우엔 22445개, 일섭 클라의 경우엔 38841개나 됩니다 ;;;)
우마무스메 이름, 레이스 이름, 트레이너 칭호 이름/조건, 각종 미션의 클리어 조건, 인게임 시스템 메시지, 우마무스메별 프로필 내용, 육성 이벤트 제목, 서포트 카드 명칭, 서포트 카드의 에피소드 텍스트, 스킬 명칭/설명, 타즈나의 어드바이스 내용 등등....
찬찬히 스크롤을 내리며 보시면 정말 온갖가지 종류의 텍스트들이 이 테이블에 다 들어있습니다.
[ ▲ text_data 테이블을 열어본 모습. 데이터에 텍스트가 그대로 들어있어 바로 읽을 수 있다는게 장점입니다. ]
▶ 각종 이벤트들의 일정을 알아보고 싶어요!
요즘 가장 핫한 주제인 챔피언스 미팅을 비롯하여, 각종 가챠나 이벤트들의 스케줄도 DB 파일에 모두 저장돼있습니다.
일섭의 경우엔 당일이 되어야 관련 내용이 DB 파일에 업데이트되니 추후 스케줄을 확인하는 것이 불가능한데,
한섭의 경우엔 반주년까지의 데이터를 미리 끌어다놓은 상태인지라 해당 기간 동안의 미래시 스케줄을 미리 확인해볼 수 있죠.
이벤트 시작/종료 일자는 보통 start_date, end_date라는 이름의 컬럼(column, 열)에 들어있는데,
사실 테이블들을 뒤져보면 별의별 데이터에도 start_date, end_date 컬럼이 붙어있는 경우가 많습니다.
(예를 들어 각종 아이템 정보를 담은 item_data 테이블에도 시작/종료 일자 데이터가 있는데, 기간 한정 아이템 같은 경우를 위한 것으로 보입니다)
그래서 유저분들이 관심을 가질만한 주요 컨텐츠에 대한 스케줄을 담고 있는 테이블들 몇 가지만 소개해보고자 합니다!
▶ champions_schedule
이름에서도 알 수 있듯, 챔피언스 미팅의 스케줄을 담은 테이블입니다.
한섭의 경우엔 반주년까지의 4개 대회(타우러스배~레오배)에 대한 데이터가 들어있고, 각 대회별로 시작 일자(참가리그 선택기간 포함)와 종료 일자 데이터도 있습니다.
(참고로 champions_round_schedule이란 이름의 테이블도 있습니다만, 이쪽은 이름 그대로 라운드별로 스케줄을 세분화하여 저장해둔 테이블일 뿐입니다. 대회 전체의 시작 일자만 알면 굳이 우리가 확인할 필요는 없는 데이터죠)
▶ gacha_data
각종 픽업 가챠와 관련된 데이터들(스케줄, 필요 재화, 보상 피스 개수 등)을 담고 있는 테이블입니다.
한섭의 경우엔 반주년 시점에 해당되는 가챠(초기 픽업 ~ 풀아머 후쿠키타루 등)까지의 데이터가 들어있는데, 이를 통해 픽업 가챠별 스케줄을 확인해볼 수 있습니다.
참고로 한섭 초기엔 일부 서포트 카드 가챠에 대한 데이터가 아예 누락되어있기도 했어서 개인적으론 테이블 내의 데이터를 그닥 신용하지 못하고 있었는데, 며칠 전의 업데이트를 통해 누락됐던 미래시 데이터들도 모두 올라왔더군요.
▶ legend_race
레전드 레이스에 관련된 기본적인 데이터들을 담고 있는 테이블로, 스케줄 데이터도 이 곳에 담겨 있습니다.
한섭의 경우엔 반주년까지의 5개 대회(1~5회차 레전드 레이스)에 대한 데이터가 담겨 있죠.
다만 연속으로 개최되는 레전드 레이스들을 하나의 큰 이벤트로 묶어서 보는 유저들과는 달리,
DB 파일에서는 연속 개최되는 레전드 레이스 각각을 별개의 이벤트로 취급해서 데이터가 따로따로 저장돼있다는 점에만 유의하시면 됩니다.
(그래서 데이터의 수가 5개가 아니고 17개가 등록돼있습니다 : 3+4+3+4+3=17)
▶ main_story_part / story_extra_data
메인/엑스트라 스토리의 일부 정보를 담고 있는 테이블로, 이들은 일단 오픈되면 계속 볼 수 있는 컨텐츠라 그런지 종료 일자 데이터가 없거나 무의미한 데이터로 채워져있는 것이 특징입니다.
한섭의 경우엔 반주년 시점에 해당되는 메인 스토리(1~4장)와 엑스트라 스토리(Half Anniversary) 데이터가 들어있습니다.
▶ story_event_data
스토리 이벤트의 스케줄을 다룬 테이블로, 시작/종료 일자 외에 공지 일자 등의 데이터들도 있습니다.
한섭의 경우엔 반주년 간의 스토리 이벤트(네 꿈을 향해 달려나가라! ~ 우마무스메 여름 이야기) 5개의 데이터가 담겨 있습니다 ㅇㅇ
▶ 기타
이 외에도 자잘자잘한 각종 이벤트들에 대한 테이블이 따로 있기 때문에, 해당 테이블에서 이벤트별 스케줄을 확인할 수 있습니다.
한섭의 경우엔 (아직 공개된 적 없긴 하지만) 특별 이적 이벤트에 대한 스케줄이 transfer_event_data 테이블에 담겨있고,
일섭의 경우엔 레이싱 카니발(challenge_match_data), 팔콘 톱 우마돌 이벤트(fan_raid_data), 노려라! 최강 팀(team_building_data), 트레이너 기능 시험(training_challenge_master) 등 여러 이벤트에 대한 스케줄 데이터들이 각각의 테이블에 담겨있습니다.
(대충 보시면 아시겠지만 테이블 이름만 봐도 어느 이벤트에 대한 테이블인지 감을 잡을 수 있습니다 +_+)
[ ▲ champions_schedule 테이블을 열어본 모습. 텍스트 쪽과는 달리 죄다 숫자들 뿐입니다... ]
참고로 DB 파일에서 날짜 데이터는 대부분 timestamp 형식으로 저장되어 있습니다.
일부 테이블은 사람이 쓰는 날짜 형식으로 된 텍스트 데이터로 시작/종료 일자를 표기해놨긴 하지만, 거의 대부분의 경우엔 컴퓨터가 읽기 편한 timestamp 형식을 사용하고 있죠.
그래서 이를 사람이 읽을 수 있는 형식으로 변환해주는 과정이 필요한데, 제 경우엔 MS Excel의 함수를 활용하여 변환해줬습니다.
아래 수식이 바로 그 함수인데, +0.375의 경우엔 시간값이 안맞길래 제가 임의로 넣은 보정값입니다.
=(((셀번호/60)/60)/24)+DATE(1970,1,1)+0.375
엑셀 외에도 여러 방법이 있는데, timestamp를 변환해주는 인터넷 페이지를 활용하셔도 되고, DB 브라우저에서 SQL을 이용해 환산하는 방법도 있습니다.
개인적으론 많은 timestamp 데이터를 한꺼번에 변환해야하니 엑셀 쪽이 월등하게 편하긴 했는데, 직접 DB 파일 내용을 보고싶다 하시는 분들은 어느 쪽이 되었든 변환하는 방법에 익숙해지시면 좋습니다.
그리고 번외로, 꼭 가챠나 이벤트 관련 테이블이 아니더라도 start_date, end_date 컬럼이 포함된 테이블이 많습니다.
일섭의 경우엔 컨텐츠가 추가되더라도 데이터만 업데이트하지 클라이언트를 업데이트하거나 점검을 하거나 하지는 않는데,
이는 대부분의 컨텐츠에 자체적으로 시작/종료 일자 데이터가 붙어있어서 클라이언트가 그 스케줄에 맞춰 컨텐츠를 노출했다 숨겼다 하는 구조이기 때문으로 보입니다.
그래서 start_date, end_date 컬럼이 포함된 테이블의 목록을 조회해서 구경해보시는 것도 나름(?) 재밌습니다.
DB 브라우저 상단의 [SQL 실행] 탭을 눌러보시면 SQL(DB에 각종 명령을 내리기 위해 사용하는 언어)을 입력하고 실행할 수 있는데, 아래 구문을 입력해 실행하면 start_date 컬럼을 포함하는 모든 테이블의 목록을 조회할 수 있으니 참고하시면 되겠습니다.
(원래는 텍스트로 입력하려 했으나, 에디터의 버그인지 문자열이 깨지는 문제가 있어서 부득이하게 이미지로 대체...)
다만 SQL 쪽은 아직 표준화가 덜 되서 (DB 업계 1위인 오라클이 표준을 안지키는지라 -_ㅠ) DB의 종류마다 SQL의 세부 사양이 미묘하게 다른 경우가 많으므로, 우마무스메 DB 파일을 가지고 공부하실 분들이라면 SQLite용 SQL을 검색해보시는 것이 좋습니다.
▶게임의 스킬 조건이나 효과량도 DB에 있다면서요?
인게임에선 스킬의 발동 조건이나 효과가 텍스트로 된 설명으로만 나오고 끝이지만,
나무위키나 인벤 등을 보시면 실제 스킬의 발동 조건이나 효과에 대해서 매우 상세히 설명되어 있습니다.
그런 정보들을 대체 어디서 가져온 것인지 궁금하실 수 있을텐데, 모두 skill_data 테이블에서 뜯어온 내용입니다.
해당 테이블을 보시면 모든 스킬에 대한 온갖가지 정보들(스킬의 레어도, 육성 완료 시의 평점, 발동 조건, 효과량, 스킬 아이콘 등)이 담겨있습니다.
[ ▲ skill_data 테이블을 열어본 모습. 다른 숫자는 알아먹기 힘들지만, condition_1 컬럼에 들어있는 발동 조건 데이터는 한 눈에 들어옵니다! ]
다만 앞서의 사례들(텍스트, timestamp)과는 달리, skill_data 테이블은 저장된 데이터가 실제로 의미하는 것이 무엇인지 파악하기가 상당히 어렵다는 문제가 있습니다.
그나마 발동 조건의 경우엔 영문 텍스트로 된 조건문을 보고 짐작이라도 해볼 수 있지만, 스킬 효과의 경우엔 어떤 종류의 효과인지 그 타입을 숫자로 적어놔서 그냥 보면 전혀 알 수가 없죠.
심지어 발동 조건 중에서도 조건문만 보고는 작동 매커니즘이 어떻게 된 것인지 파악할 수 없는 경우가 있습니다.
(한섭 DB 파일은 괜찮은 편이지만, 새로운 타입의 발동 조건이 계속 나오는 일섭 DB 파일은 그야말로 혼파망...)
그래서 개인적으론 테이블의 데이터들을 직접 분석하는 쪽 보다는, 그냥 다른 DB 사이트에서 분석해주는 내용을 보시는 쪽을 강력 추천합니다.
제가 많이 애용하는 DB 사이트들이 몇 군데 있는데, 여기 운영자들은 테이블 분석에 도가 텄는지 일섭에서 컨텐츠 업데이트가 되고 얼마 지나지 않아 온갖 데이터를 분석해서 업데이트 해주거든요 ㄷㄷ...
☞ 우마무스메 스킬 효과・발동 조건 정리 (구글 스프레드 시트)
다만 위 사이트들은 해외 사이트인지라 한글 지원이 안되거나 미흡하기 때문에, 보기 불편하시다면 나무위키나 인벤을 보시는 것도 좋습니다.
특히 일섭을 하시는 분들의 경우, 인벤 DB엔 한섭에 나온 스킬만 있으니 일섭 정보도 모두 다루는 나무위키 쪽을 더 추천드립니다.
☞ 나무위키 스킬 문서 (스킬 목록은 하위 문서 참조)
[ 주목할 부분 1 : 텍스트 데이터 ]
위에서 DB 파일을 열어보는 법과 원하는 데이터를 찾기 위해 봐야할 테이블들을 소개해드렸습니다만,
사실 DB 파일 내 데이터들을 수집해서 2차 활용하는, 그러니까 데이터마이닝을 하려는 유저가 아니라면 크게 의미 없는 정보일테죠.
(제 경우엔 나무위키 문서 작성을 할 목적으로 앱뜯을 하는 편인데, 이것도 상당히 특이한 케이스이긴 합니다 ;;;)
그래서 지금부터는 그냥 DB 파일의 데이터 관련해서 흥미롭게 볼만한 내용들을 결과만 빠르고 간략하게 보여드리고자 합니다 ㅇㅁㅇ
우선 첫 번째로는 가장 많은 텍스트 데이터가 들어있는 text_data 테이블부터 시작해보겠습니다!
[ ▲ (좌) 트레이너 칭호의 이름에 대한 데이터들 / (우) 메인 스토리 각 화별 제목에 대한 데이터들 ]
한섭의 경우엔 반주년 간의 미래시 데이터를 미리 다 넣어둔 상태인지라, 아직 공개되지 않은 컨텐츠들에 대한 텍스트 데이터들도 잔뜩 있습니다.
그런데 아직 공개되지 않은 컨텐츠들의 경우엔 뒤져보면 오타나 오역이 꽤 많은 편입니다ㅋㅋ
예컨데 좌측 스크린샷의 경우엔 '플래티나' 칭호들 중 일부에 '블래티나'라고 오타가 나있고, (3140, 3144번 데이터)
우측 스크린샷의 경우엔 '재능의 덩어리(才能の塊)'를 '재능의 혼'으로, '빛바래지 않는 기억(色褪せない記憶)'을 '빛 바래는 기억'으로 오역을 해놓은 모습도 볼 수 있죠. (4430, 4444번 데이터)
'菊花賞'의 경우엔 번역을 하다 말았는지 '국화상' 대신 '킷카상'이라고 되어 있기도 합니다. (4435번 데이터)
여기에 텍스트 데이터와 다른 데이터(주로 이미지 데이터)의 번역이 서로 일치하지 않는 경우도 꽤 많이 보이는 편인데,
좌측 스크린샷의 일부 데이터(3151, 3153, 3155번 데이터)를 보면 실제 트레이너 칭호 이미지와는 다른 번역이 들어가있습니다.
(예컨데 텍스트 데이터는 '기쁜날 러너즈'로 되어있는데 이미지 데이터에선 '경삿날 러너스'라고 되어있는 식)
위에서 언급한 오타/오역 케이스들도, 관련된 트레이너 칭호, 레이스 썸네일 이미지를 찾아보면 거긴 또 오타/오역 없이 제대로 되어있구요 ㄷㄷ
[ ▲ 이해를 돕기 위한 앱뜯 이미지 모음. 텍스트 데이터엔 오타/오역 등이 심한데, 이미지 데이터 쪽엔 그런게 거의 없는 편입니다 ㄷㄷ ]
참고로 DB 파일의 존재를 알게 된 이후부터 업데이트 때마다 master.mdb 파일을 백업해뒀다가 종종 서로 비교해보기도 하는데,
일단 오타, 오역 등이 있었던 더미 데이터 대부분은 정식으로 출시될 땐 웬만하면 고쳐져서 나오는 편이긴 합니다.
하지만 다들 아시다시피 한섭 번역이 전반적인 퀄리티는 괜찮은 편이지만 오타는 꾸준히 나오는 편이죠... (번역팀은 일하는데 QA팀은 일을 안하나?)
더미 데이터일 때부터 번역 상태가 온전치 않은 경우가 꽤 많던데, 그래서 정식 출시 전에 놓치고 안고치는 경우도 많이 나오는건지 원...ㅠ
(당장 이번에 추가된 팔콘의 경우엔 육성 중에 '팬과의 약속'이라는 상태가 발생하는데, 더미 데이터 당시에 있던 오타가 일부는 수정되서 나오고 나머지 일부는 수정이 안된채로 그대로 나오고 난리났더군요 ㄷㄷ...)
[ ▲ 푸시 알림 메시지에 대한 데이터들 : 좌측은 한섭, 우측은 일섭 ]
한편 text_data 테이블의 데이터들 중에는 이번에 한섭이 불타는 이유들 중 하나이기도 한 푸시 알림 메시지에 대한 데이터도 들어있는데,
보시면 한섭(좌)과 일섭(우)이 확연하게 차이나는 것을 보실 수 있습니다 ㄷㄷ
일섭의 경우는 알려진대로 우마무스메별로 고유한 TP/RP 회복 메시지가 존재하는데, 한섭은 그걸 싹 다 밀어버리고 "TP/RP가 가득 찼습니다!"라는 메시지로 통일된 상태죠.
우마무스메별 메시지 데이터가 들어갈 자리 자체는 유지된 채로 안에 들어간 내용만 싹 밀린 상태인데,
저기다 본래 들어가야할 번역된 메시지를 넣기만 하면 굳이 클라이언트를 뜯어고칠 필요 없이 바로 적용됩니다 ㄷㄷ
(서비스 초기엔 푸시 메시지들 중 일부가 번역된 메시지로 남아있었다가 싹 밀린 적이 있었다던데, 제가 말한 방법의 반대로 하면 쉽게 가능합니다)
번역된 푸시 메시지를 사용하려면 단순히 DB 파일의 데이터를 업데이트하는 것만으로도 충분하기 때문에,
'쉽게 고칠수 있음 + 유저들 항의도 계속됨' 상황임에도 아직 안고치고 있는건 뭔가 외적인 이유가 있어서 그런게 아닌가...하는게 제 추측입니다 ㅇㅇ
유게에선 "일본 쪽엔 별의별 사소한 것도 계약으로 제한을 거는 경우가 많다"라고 얘기하는 사람들도 있던데 그게 이유인가 싶기도 하고...
하지만 카카오에서 이런 것에 대한 얘기까지 해줄 리는 만무하니, 결국 어느 의견이든 죄다 뇌피셜이 될 수 밖에 없겠네요 -_ㅠㅋ
[ ▲ (좌) 스킬 설명에 대한 데이터들 / (우) 서포트 카드의 에피소드 텍스트에 대한 데이터들 ]
위에서 본 내용들 외에도 스크롤에 끝이 없나 싶을 정도로 수많은 종류의 텍스트 데이터들이 text_data 테이블에 들어있습니다.
정식 출시된 컨텐츠 관련 텍스트도 많고, 아직 업데이트 예정인 미래시 텍스트도 많죠.
그나마 text_data 테이블을 비롯해 텍스트들을 다룬 테이블들은 보기도 편하기 때문에,
앱뜯을 본격적으로 할 생각이 없는 분들도 한 번 심심풀이로 텍스트 데이터들은 한 번 보시면 좋을 것 같습니다 ㅇㅇ
[ 주목할 부분 2 : 미래시 스케줄 ]
아마 가장 많은 분들이 궁금해하실 듯한 부분, 바로 한섭의 각종 가챠 및 이벤트 등의 스케줄에 대한 내용입니다!
스케줄 데이터를 어떻게 얻어오는지에 대한 설명은 이미 위에서 다뤘으니, 단도직입적으로 제가 정리한 스케줄 표를 보여드리도록 하겠습니다.
(데이터가 워낙 많아서 이미지 파일이 오지게도 커져버렸습니다만... 클릭해서 확대하여 보시던가 다운로드해서 보시길 추천드립니다 -_ㅠㅋ)
[ ▲ 한섭 DB 파일에 들어있는 주요 컨텐츠들에 대한 데이터와 이를 분석한 표 ]
표가 워낙에 커서 보기 난잡하실 수 있긴 한데, 항목별로 뭘 의미하는지 설명해보자면 아래와 같습니다.
▶ 한국 서버 스케줄
이쪽은 그냥 한섭 DB 파일에 들어있던 timestamp 데이터를 환산한 값이니 그냥 보이는 그대로 보시면 됩니다.
▶ 일본 서버 스케줄
이쪽은 요약하자면 "일섭에서 컨텐츠들이 오픈됐던 간격 그대로 한섭에서 오픈됐다고 치면 언제 열릴까?"에 대한 예상을 계산한 결과입니다.
[ 한섭 오픈 일자 + (컨텐츠 오픈 일자 - 일섭 오픈 일자) = 한섭 예상 일자 ]
예컨데 일섭에서 히시 아마존 픽업 가챠는 21. 6. 21.에 시작되었는데, 이는 일섭이 오픈(21. 2. 24.)되고 D+117일에 해당됩니다.
만약 한섭에서도 똑같이 D+117일에 히시 아마존 픽업이 시작된다 치면, 예상 날짜는 한섭 오픈일(22. 6. 20.)에 117일을 더한 22. 10. 16.이 되는 식이죠.
▶ 한섭/일섭 차이
컨텐츠 시작 일자의 차이, 그리고 컨텐츠가 개최된 기간의 차이입니다.
값이 없는 항목은 차이가 없는 경우, 음수 값인 항목은 그만큼 한섭의 시작 일자가 이르거나 개최 기간이 짧은 경우입니다.
반대로 양수 값인 항목은 그만큼 한섭의 시작 일자가 늦거나 개최 기간이 긴 경우죠.
이미 소문이 날대로 난 내용이긴 합니다만, 표를 보시면 일섭에 비해 시작 일자나 개최 간격이 줄어든 경우가 많다는 것을 아실 수 있습니다.
(예외는 시작 일자가 이틀 늦어진 2회차 레전드 레이스와 개최 간격이 이틀 늘어난 세이운 스카이 픽업 가챠 뿐이네요)
초반부 컨텐츠들은 웬만해선 일섭과 동일한 간격과 시작 일자를 유지해왔는데, 한 달 반 정도가 지난 이후의 컨텐츠들부터는 차츰차츰 간격과 시작 일자가 단축되는 모습을 보여주죠.
그나마 이벤트의 경우엔 개최 간격은 일섭과 동일하게 유지되는데, 이벤트 간격을 줄였다간 진짜 폭발할 수 있어서 안 건드린 것 같습니다.
(레오배가 유일하게 1일 줄어드는데, 이건 참가리그 선택기간이 하루 줄어드는 것이지 6일간의 대회 일정 쪽이 줄어드는 것은 아닌 것으로 보입니다)
반대로 가챠의 경우엔 개최 간격과 시작 일자가 모두 줄어드는 경우가 대부분인데, 이에 맞춰 이벤트의 시작 일자가 당겨지는 경우는 많네요.
여하튼 타 사이트나 유게 등지를 보면 이걸 두고 "1년 4개월 미래시를 1년으로 줄이려고 하는거다", "주요 가챠와 이벤트를 올해 안으로 다 땡겨서 털어먹으려는 의도다" 등등, 온갖 추측이 난무하고 있는 것 같습니다만...
그런 것 치고는 결과적으로 반주년 시점에 스케줄 당겨지는게 고작 열흘 남짓이라, 딱히 설명이 안되는 것 같기도 합니다 ㅇㅁㅇ...
어차피 어떻게 추측하든 카카오에서 공식 확인해줄리는 없는 내용이니, 그냥 이 표는 미래시 스케줄을 체크하는 용도로만 봐주시면 되겠습니다.
참고로 이 미래시 데이터는 특별한 일이 없다면 그대로 유지될 가능성이 높다는게 제 의견입니다.
애초에 더미 데이터라 언제든지 바뀔 수 있기 때문에 예전까지는 저도 그다지 믿는 편이 아니었는데,
① 지금까지는 모두 DB 파일의 미래시 스케줄대로 진행되었다는 점,
② 이번에 와장창 불탔음에도 불구하고 타우러스배 일정이 연기된 것을 제외하면 DB 파일 데이터에 변화가 없었다는 점,
③ 그리고 최근(25일, 26일)의 업데이트를 통해 누락돼있던 미래시 데이터(주로 서포트 카드 가챠 관련)도 모두 DB 파일에 올라왔다는 점 등,
현재의 DB 파일에 올라온 미래시는 사실상 최종판이라고 봐도 되지 않겠나 싶습니다.
(물론 결국은 더미 데이터이기 때문에, 뭔가 또 사건이 터져서 타우러스배 같이 일정이 바뀌는 경우가 얼마든지 나올 수 있긴 하지만...)
[ ▲ 상단의 분석 표를 시간 순서로 정렬하여 간추린 표 ]
그리고 상단의 분석 표는 컨텐츠 종류별로 정렬되어 있어 시간 순서를 한눈에 파악하기는 힘들기 때문에,
시간 순서대로 정렬하고 불필요한 항목은 날려버림으로써 최대한 간추린 표도 준비해봤습니다 ㅇㅇ
굳이 원본 데이터 값에 관심없고 가챠와 이벤트가 언제 열리는지에만 관심있다 하시는 분들은, 바로 위의 축소판 표를 저장해두고 보시면 되겠습니다!
[ 주목할 부분 3 : DB 수정을 통한 클라 변조 ]
앞서의 미래시 스케줄 다음으로는 아마 이 부분이 제일 재미있지 않겠나 싶네요.
게임 클라이언트에선 DB 파일을 직접 참조해서 활용하니, "DB 파일의 값을 우리가 임의로 바꾸면 바꾼 값이 게임에 적용되지 않을까?"하는 호기심이 생긴 분들이 분명 계실 겁니다 ㅇㅇ
저 또한 그런 호기심이 들었기에 몇 가지 실험을 해봤는데, 실제로 DB 파일 수정을 통해 클라이언트를 변조하는 것이 가능했습니다!
그래서 제가 실험해본 내용들 중 일부를 소개해보고자 합니다 ㅎ
(참고로 실험은 일섭 클라이언트를 이용했습니다. 그냥 수정한 DB 파일을 복붙해주기만 하면 끝이라 훨씬 간편해서...)
[ ▲ character_system_text 테이블의 특정 데이터를 수정한 모습 ]
제일 먼저 해본 건 character_system_text 테이블에 들어있는 우마무스메별 대사를 뜯어고쳐보는 것이었습니다.
위 스크린샷을 보시면 죄다 일본어 대사인 와중에 제가 선택한 대사 하나만 한국어로 수정되있는 것을 보실 수 있는데...
[ ▲ 엌ㅋㅋㅋㅋ 이게 되넼ㅋㅋㅋㅋ ]
놀랍게도 수정한대로 인게임에 그대로 반영됩니다 ㅋㅋㅋ
Unity 엔진 기반인 게임인지라 다행히도 한글이 지원되는 덕택에, 단순히 DB 파일을 수정하는 것만으로도 저렇게 한국어 대사를 볼 수 있죠!
일섭에는 유저들이 자체 제작한 한글 패치(텍스트만 한글화)가 있는데, 이렇게 DB를 수정하는 방식으로 패치하는 것이 아닌가 합니다 ㅇㅇ
[ ▲ chara_data 테이블의 특정 데이터를 수정한 모습 ]
위 스크린샷에 나오는 chara_data 테이블은 우마무스메 각각에 대한 캐릭터 데이터(생일, 전용 UI 색상, 키, 귀나 꼬리의 동작 주기 등)를 담고 있는데,
그 중에서 전용 UI 색상 하나의 값을 '5FC586'(녹색)에서 'FF80C0'(분홍색)으로 임의 변경해봤습니다.
ui_training_color_1이라는 컬럼명대로 인게임 육성 화면에서 기초 능력치가 적힌 표에 쓰이는 색상을 다룬 데이터인데 이걸 바꾸면...
[ ▲ 엌ㅋㅋㅋㅋ 이게 되넼ㅋㅋㅋㅋ 2 ]
놀랍게도 실제로 색상이 바뀌었습니다 ㅋㅋㅋ
두 스크린샷을 비교해보시면 기초 능력치(스피드, 스태미나, ...)가 적힌 표의 윗부분 색상이 녹색에서 분홍색으로 바뀐 것을 볼 수 있죠!
솔직히 이쪽은 저도 정말로 될까 싶었었는데, 진짜로 되는거 보고 엄청 놀랐습니다 ㅋㅋㅋ
일단 분량 문제도 있고 해서 두 가지 정도의 실험 사례만 소개드렸습니다만...
DB 파일의 어디에 어떤 데이터가 있고 그 데이터가 어떻게 게임에 적용되는지만 정확히 파악하면,
유저가 원하는대로 클라이언트를 변조하는 것이 얼마든지 가능합니다 ㅇㅇ
단순히 텍스트를 수정하는 것부터, 모브 우마무스메의 머리 모델링을 다른 것으로 바꿔본다거나, 레이스에 나오는 BGM을 다른 것으로 교체해본다거나 등등... DB 파일에서 다루는 내용이라면 얼마든지 가능하지 않겠나 싶네요.
다만 스킬의 효과량 데이터를 변경한다거나 가챠에 소모되는 재화의 양을 수정한다거나 하는 등, 게임의 핵심적인 부분을 건드리는 변조 행위는 강력하게 비추천합니다 ㄷㄷ
제가 한 실험의 경우엔 제 클라이언트에서 보이는 시각적인 부분만을 건드린거라 특별히 문제가 안되겠습니다만,
게임의 핵심적인 부분을 건드려 이득을 보는 행위는 부정 행위로 취급되어 제재를 받기에 충분하기 때문입니다.
게다가 제재의 무서움을 떠나서 생각해도, 애초에 그런 핵심적인 부분은 DB 파일 하나만 건드린다고 해서 진짜로 바뀌어 적용될지도 의문이긴 합니다.
대부분의 게임에선 핵심적인 부분에 대한 데이터가 변조되었는지 여부를 체크하는 알고리즘을 넣어두기 때문에,
DB 파일 하나 건드린건 게임 구동시 부정한 변조가 감지되었다며 튕겨버릴 가능성이 높거든요....ㅎ
(직접 실험해보고 싶다는 생각이 들긴 했지만, 전 쫄려서 패스 ㄷㄷ...)
[ 번외 : 각종 대화 지문과 사운드 파일 ]
[ ▲ Asset Studio로 확인한 홈 화면 대사의 지문 1 ]
텍스트 데이터의 경우 웬만하면 DB 파일에서 다 찾아볼 수 있지만, DB 파일이 아니라 에셋 데이터에 포함된 경우도 있습니다.
각종 대화(홈 화면 대화, 육성 이벤트 대화, 메인/개인 스토리 대화 등)에서 사용되는 지문이 이에 해당되는데,
아무래도 캐릭터 모션이나 효과음 등과 연계되어 출력되는데다 선택지도 있고 하다보니 DB 파일에 넣긴 애매했던 것 같습니다.
[ ▲ Asset Studio로 확인한 홈 화면 대사의 지문 2 ]
참고로 반주년 기간 내에 인게임에 추가 될 대화 지문이지만 아직 정식 적용까진 기간이 남은 데이터의 경우,
스크린샷에서 보시듯 아직 번역이 안되어 있는 모습도 보실 수 있습니다 ㄷㄷ (말하는 사람 이름은 번역돼있는데 대화 지문은 일본어 그대로...)
그냥 텍스트 입력만 하면 끝인 DB 파일과는 달리, 에셋 데이터 쪽은 일일이 파일 위치를 확인해서 알맞은 텍스르를 넣어야 하는 등 과정이 번거롭기 때문에 작업이 진행 중이던 더미 데이터 상태 그대로 냅둔 것이 아닐까 싶네요 ㅇㅇ
사실 이런 대화 지문이 에셋 데이터에 들어있는걸 발견했기에, 다른 텍스트 데이터들도 모두 에셋 데이터에 있겠거니 하며 계속 뒤져왔는데...
대화 지문 빼고 나머지 모든 텍스트 데이터는 여태 안봤던 DB 파일에 들어있었으니, 여태 엉뚱한데서 삽질했나 하는 생각도 들긴 합니다 -_ㅠㅋ
참고로 에셋 데이터는 DB 파일과는 다른 방식으로 열어서 확인해야 하니, 아래 링크 글을 참고하시면 되겠습니다.
☞ [흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기
다만 뜯어서 봐야 할 대상이 Texture2D(이미지)가 아니라 MonoBehaviour(데이터 객체)이고, MonoBehaviour는 워낙에 그 수가 많아서 적당한 검색어(스크린샷 참고)로 검색을 돌려서 필터링한 다음 보는 것이 좋다는 차이점이 있습니다.
[ ▲ Asset Studio로 확인한 사운드 파일 ]
그리고 이건 앞으로의 목표(?)에 해당되는 이야기이기도 한데,
별다른 압호화가 돼있지 않아 열면 그냥 볼 수 있는 이미지나 DB 파일과는 달리,
사운드 파일은 무슨 이유에서인지 꼼꼼하게 압호화가 되어있어 뜯어보는 방법을 알아내려면 한참 더 공부를 해야 할 것 같습니다 ㄷㄷ
사운드 파일인데도 TextAsset 타입의 데이터로 등록돼는데다, 원본 데이터를 뜯어보면 저렇게 모든 데이터가 깨져서 나오거든요 ;;;
게다가 우마무스메 보이스 데이터는 위 스크린샷처럼 이름으로 검색해서 찾는게 가능한데,
각종 BGM 데이터는 이름으로 검색해도 안나오는지라 어디 다른 파일 내부에 숨어있나 뒤져봐야 하는 신세입니다 -_ㅠㅋ
서양 쪽 우마무스메 유저 중에는 그 BGM 데이터도 뜯어내서 유튜브에 올려주고 하는 사람도 있는걸 보면 어딘가 파일이 존재하고 뜯어서 암호화를 푸는 것 까지 모두 가능하다는 이야기이긴 한데...
제가 직접 그 정도까지 해보려면 아직은 갈 길이 먼 것 같네요 ㅋㅋ....
[ 마치며 ]
이 글을 통해 DB 파일에 대해 이모저모를 소개해드렸는데,
글 중간중간에도 썼지 싶지만(썼나?), 어쨌든 DB 파일에 있는 내용들 중 더미 데이터(아직 정식 적용되지 않은 예비 데이터)는 흥미 용도로만 보는 것을 권장드립니다 ㅇㅇ
그리고 저처럼 데이터 마이닝을 통해 2차 활용하려는 분이 혹여나 계시더라도, 더미 데이터 말고 정식 적용된 데이터만 활용하시는게 좋습니다.
(애초에 더미 데이터라는게 정식 적용 전에는 언제든지 수정할 수 있다는 것을 전제로 그냥 넣어두는 것이기 때문에...)
그나저나 예전에 썼던 앱뜯 초급편은 실제로 과정도 간단하고 딱히 추가로 설명할 것도 없어서 비교적 간단하게 끝났는데,
DB 파일 분석 같이 좀 본격적인 내용을 다루려니, 내용을 줄이고 주려도 결국 분량 조절에는 실패한 것 같습니다 -_ㅠㅋㅋㅋ
글 쓰려고 내용 정리하고 스샷이나 표 준비하는데도 시간이 엄청 오래 걸리네요 ;;; (대충 3일 정도 걸린 듯)
일하는 시간이랑 한섭 계정 육성하는 시간 빼고 글 쓰는데 다 투자했더니, 정작 일섭엔 신규 육성 시나리오 나왔는데도 아직 육성 완료 한 번을 못함ㄷㄷ
그래도 전공이 애초에 이쪽이어서 그런지, 앱뜯 직접 하는 동안엔 이런저런 데이터 구경도 하고 앱뜯 스킬도 익히고 나름 재밌었습니다 ㅎ
특히나 제가 나무위키 문서 작성하면서 이런저런 데이터를 많이 필요로 하는 편인지라 그거 때문에 앱뜯 공부를 시작한거였는데,
DB 파일 뜯어보는 요령을 익히면서 활용할 수 있는 데이터의 폭이 엄청 넓어져 좋기도 하네요 ㅇㅇ
이제 이번 주의 숙원 사업(?)이었던 앱뜯 글 중급편 작성이 끝났으니,
밀려있던 한섭 계정 육성과 일섭 신규 컨텐츠 즐기기를 해야겠습니다 ㅎ
여하튼 오지게도 긴 글 읽으시느라 고생하셨습니다 ㄷㄷ 읽어주셔서 감사합니다!
[ 요건 썸네일용으로 만든 합성 이미지 ㅎ... ]
(IP보기클릭)39.7.***.***
(IP보기클릭)39.7.***.***
(IP보기클릭)115.95.***.***
(IP보기클릭)211.243.***.***
글에서도 사용한 DB 브라우저의 [도구] 탭에 들어가면 [외래키 검사] 도구가 지원됩니다 ㅇㅇ 근데 확인해보니 외래키를 안쓰는게 맞는 것 같네요 ㄷㄷ (이런 경우는 저도 첨 보는 듯...) 혹시나 해서 테이블 스키마를 직접 검색해보는 쿼리로 한 번 더 체크해봤는데 마찬가지네용 ( select. * FROM sqlite_master WHERE sql LIKE '%FOREIGN KEY%'; ) | 22.12.15 16:52 | |
(IP보기클릭)115.95.***.***
감사합니다! 저도 댓글 달고 여러군데에서 찾아보니 외래키는 실무에서 쓰지않는 경우가 대부분이라는 답을 얻었습니다. 확장 가능성을 열어두고자 99퍼센트의 테이블은 외래키를 사용하지 않고 코드 영역에서 구현해주는 것 같습니다. 지금 인자 계승 쪽 테이블들을 보고 있습니다.(succession ~~ 붙은 애들) 얘네의 경우에는 글에도 써주신 것 처럼 데이터들이 전부다 숫자라서 정확히 어떤 데이터들인지 알아내기가 어렵더라구요 혹시 마이닝 하실때 팁 같은것좀 알려주실수 있나요? | 22.12.15 17:29 | |
(IP보기클릭)211.243.***.***
아무래도 코드를 모르는 상태로 DB 파일만 보고 이런저런 정보를 알아내야 하는 상황이라, 그냥 테이블명이랑 컬럼명 가지고 추측해본 다음 이게 인게임에 실제 적용되는거랑 대조해보는, 말그대로 주먹구구식으로 할 수 밖에 없는 듯 합니다 -_ㅠ...ㅋ (그나마 말딸 경우엔 그런 이름들을 비교적 직관적으로 해놔서 주먹구구로도 꽤 통하는 느낌...?) 계승 관련 테이블들 경우에도 일본 유저들이나 나무위키 사관들이 뜯어놓은거 보면 우마무스메 ID값을 아니까 원본 경주마 히스토리랑 우마무스메 캐릭터 설정 등등 비교해서 주먹구구로 알아낸 것 같더군요 ㅇㅁㅇ 그래서인지 웬만한건 다 알아냈는데 아직 못알아낸 영역도 소수 남아있다고 합니다 ㄷ | 22.12.15 18:01 | |
(IP보기클릭)122.46.***.***
(IP보기클릭)211.243.***.***
일단 제 환경인 Nox 앱플레이어 경우엔 최근(핼러윈 이벤트)까지도 파일 경로에 변경은 없었습니다 ㅇㅇ (다만 최근에 앱을 지우고 재설치한다거나 그런적이 없었던 영향일지도...) 앱플레이어에 말딸만 깔아놨다면 용량이 유독 엄청 큰 폴더 위주로 타고 들어가면서 찾아보시는 방법을 추천드립니다! 제가 맨 처음에 경로 찾을 때 그렇게 찾았거든용 | 23.01.24 15:36 | |
(IP보기클릭)59.12.***.***
(IP보기클릭)211.243.***.***
스킬 Pt 정보만 single_mode_skill_need_point 라고 테이블을 따로 만들어놨더라구요 ㄷㄷ 왜 그거만 따로 테이블을 파놨는지는 모르겠지만... 여튼 해당 테이블을 참조하시면 되겠습니당 ㅇㅇ | 23.07.24 23:06 | |
(IP보기클릭)59.12.***.***
아 single_mode 에 있었군요. 감사합니다! | 23.07.24 23:14 | |