[ 앱뜯 관련 글 모음 ]
※ [흥미] 말딸 앱 뜯어보기 초급편 : 이미지 뜯어보기
※ [흥미] 말딸 앱 뜯어보기 중급편 : master.mdb 뜯어보기
※ [흥미] 말딸 앱 뜯어보기 초급편2 : 사운드 뜯어보기 ☜
※ [흥미] 한섭 말딸 클라이언트의 이미지를 뜯어보자!
잊을만하면 돌아오는 말딸 앱 뜯어보기 글, 이번엔 사운드 뜯어보기 편으로 돌아왔습니당!
앱뜯 공부하면서 시행착오를 좀 많이 겪었던데다 본업도 신경써야해서 좀 많이 늦어졌습니다만,
(반주년 기념 한섭 클라 뜯어보는 글 이후로는 4개월, 그리고 DB 파일 뜯어보기를 다뤘던 이전 중급편 이후로는 무려 8개월 ㄷㄷ)
더 이상 미루면 나중엔 완전히 까먹겠다 싶어서 열심히 정리해봤습니당 ㅇㅇ
참고로 사운드 관련해선 여태까지 워낙 삽질을 많이 했던 탓에 난이도가 좀 있을거라고 생각했었는데,
막상 방법을 알아보니 관련 툴이 잘 마련돼있는 덕택에 난이도가 꽤 쉬운 편이더군요 ㄷㄷ
(일전에 사운드 추출 관련해서 알짜배기 정보를 쪽지로 알려주신 고마운 분이 계셨는데, 그 분 덕분에 삽질을 상당히 덜었습니다 ㅠㅋ)
그래서 원래는 '고급편'으로 쓰려고 했던 제목을 '초급편2'로 잡아봤습니다 ㅋ...
[ 1단계 : UmaMusumeToolbox 다운로드 ]
초급편에선 게임 내 리소스들(에셋)을 추출하는 프로그램으로 Asset Studio GUI 를 소개해드렸고, 저도 여태까지 그걸 애용해왔습니다만...
사운드 추출을 할 때는 그거와는 다른 툴을 이용해서 리소스 추출을 해야 합니다 ㅇㅁㅇ
새롭게 소개드릴 툴은 Uma Musume Toolbox 라는 프로그램인데, 이름 그대로 말딸 앱뜯을 위한 목적으로 만들어진 툴입니다.
Asset Studio GUI 쪽이 유니티 엔진으로 만들어진 모든 게임에 써먹을 수 있는 툴이라면,
이쪽은 말딸 앱에 대해서만 동작하게 만들어진 툴이죠 ㄷㄷ
추출 툴은 아래 링크로 들어가셔서 받으시면 되는데,
☞ Releases · SimpleSandman/UmaMusumeToolbox · GitHub
프로그램 자체가 무설치 프로그램이라 편하게 쓰실 수 있습니다 ㅇㅇ
다만 프로그램 구동을 위해선 닷넷(.NET)이라는 프레임워크를 깔아줘야 하는데,
위 링크로 들어가서 OS에 맞는 설치 파일(앱 빌드 - SDK)을 받아 깔아주시면 됩니다.
다만 이전에 소개드린 Asset Studio GUI 경우에도 동일하게 닷넷 기반으로 돌아가기 때문에,
초급편을 따라해보신 분이라면 새로 설치하지 않아도 툴이 돌아갈 수도 있습니다 ㅎ
다만 해당 툴은 DMM판 우마무스메 게임에 대해서만 쓸 수 있다는 점에 주의하셔야 합니다 -_ㅠㅋ
혹시나해서 앱플레이어(Nox)에 설치된 한섭 데이터를 외부로 꺼낸 다음 이 툴을 사용해봤는데,
DMM판과는 내부적으로 뭔가 차이가 있는지 파일 추출은 안되고 오류만 미친듯이 내뱉더라는....;;;
그래서 한섭만 하시는 분이 사운드 추출을 하시려면 일본판을 추가로 까셔야합니다 ㅇㅁㅇ
[ 2단계 : UmaMusumeToolbox 설정 ]
그냥 바로 실행하면 됐던 Asset Studio GUI 와는 달리, Uma Musume Toolbox 는 초기 설정값을 수정해줘야 합니다.
툴을 다운받아 압축을 풀어보면 그 안에 appsettings.json 이라는 파일이 있는데, 이걸 메모장으로 열어보시면 위 스샷과 같이 뜹니다.
해당 파일에서 아래 설명된 세 가지 항목을 고쳐주시면 됩니다.
"MasterDbFilepath" : DB 파일(master.mdb)이 위치한 경로
▷ 파일 경로 중간의 사용자명이 툴 제작자의 것인 "kento"로 되어있는데, 이걸 각자의 사용자 계정명으로 변경해주시면 됩니다.
▷ 테스트를 따로 안해보긴 했는데, 사용자 계정명이 한글인 경우엔 툴이 동작하지 않을 가능성도 있습니다. 혹시 툴이 돌아가질 않는다면 사용자 계정명을 영어로 변경해보시는 것을 권장합니다 ㅇㅇ
"MetaDbFilepath" : 메타 파일(meta)이 위치한 경로
▷ 이쪽도 위와 마찬가지로 "kento" 부분을 각자의 사용자 계정명으로 변경해주시면 됩니다.
"UserSavedLocation" : 추출한 파일을 저장할 경로
▷ 아무 폴더나 원하는 경로를 넣어주시면 됩니다. 가급적 영문명으로만 된 경로를 쓰시는 것을 추천드립니다.
▷ 다만 Windows를 사용하시는 분들의 경우엔 폴더를 구분할 때 \ 대신 \\를 사용해야 합니다. (iOS의 경우엔 README 문서에 별다른 얘기가 없네요...)
위 스샷은 제 PC 환경에 맞게 설정값을 바꿔준 예시니 참고하시면 되겠습니다 ㅇㅇ
나머지 설정값을 건드릴 일은 딱히 없긴 합니다만, 관심있으시다면 GitHub의 README 문서를 참조하시면 되겠습니다 ㅎ
[ 3단계 : UmaMusumeToolbox 실행 ]
설정값 변경이 완료됐다면 이제 툴을 실행하여 추출 작업을 진행하시면 됩니다.
UmaMusumeToolbox.DataDownload.exe 이란 이름의 파일을 실행하시면 위 스샷과 같이 추출 작업이 시작되는데,
아쉽게도 이 툴이 파일 종류 가리지 않고 싸그리 다 추출해버리는 기능 뿐이라 시간이 좀 많이 걸립니다 -_ㅠㅋㅋ
말딸도 2주년을 넘기며 이제 20GB를 넘기는 초대용량 게임(...)이 되었는데, 그래서 그런지 추출할 파일이 무려 17만 개나 나오네요 ㄷㄷ
참고로 추출을 진행하다보면 추출에 실패해서 오류 메시지가 뜨는 경우가 종종 생기는데,
오류가 떴다고 굳이 작업을 중단하실 필요는 없습니다.
추출 작업을 하면서 이전에 추출에 성공한 파일들은 자동으로 건너뛰는 기능이 있기 때문에,
툴을 재실행해주면 추출에 실패했던 파일들만을 대상으로 작업을 진행하거든요 ㅇㅇ
(오류 없이 모든 파일을 다 추출할 때까지 툴을 그냥 반복 실행해주시면 됩니다 ㅋ)
추출이 완료되면 위 스샷처럼 지정해둔 폴더에 온갖 게임 내 리소스들이 저장되어 있을텐데,
(용량이 많긴 합니다... 20GB 정도 게임 파일의 리소스를 다 추출하니 26GB가 되어버림 ;;;)
그 중에서 sound 폴더에 들어가면 위와 같이 온갖 사운드 파일이 추출된 모습을 보실 수 있습니다.
다만 압축된 형태(ACB/AWB 형식)로 추출되기 때문에 이를 바로 들어볼 수는 없고,
압축을 풀어주는 별도의 변환 과정을 또 거쳐줘야만 합니다 ㅇㅇ
[ 4단계 : foobar2000 설치 ]
여기서 등장하는 것이 foobar2000 이라는 오디오 플레이어 프로그램인데요...
이 오디오 플레이어에 vgmstream 이라는 플러그인을 설치해주면 우리가 추출했던 파일의 압축을 풀 수 있습니다!
우선 foobar2000 프로그램은 아래 링크로 들어가 다운받으시면 되는데...
☞ Download foobar2000 (portable)
제 경우엔 무설치 프로그램(portable)을 선호하는 편이라 그쪽을 받아서 쓰고 있습니다만,
위에 걸어둔 portable 링크는 공식 링크가 아니고 출처 불명 링크라 언제까지 유지될런지는 모르겠네요 ㅇㅁㅇ
그리고 vgmstream 플러그인은 아래 링크에서 받으시면 됩니다.
해당 페이지에서 "foobar2000 component" 항목의 파일을 받아주시면 되겠습니다.
foobar2000 을 실행해보시면 하단에 MENU 버튼이 있는데, (스샷의 붉은 화살표 참조)
해당 메뉴를 열어 [File] - [Preferences] 항목으로 들어가시면 스샷에서처럼 설정 창이 뜹니다.
설정 창 최상단의 [Components] 항목을 보시면 플러그인을 설치하는 [Install...] 버튼이 있는데,
이를 클릭해 앞서 다운받은 vgmstream 플러그인 파일(foo_input_vgmstream.fb2k-component)을 선택해주시면 됩니다.
그리고 플러그인이 적용되려면 프로그램을 재시작해야 하니, 안내에 따라 foobar2000을 재실행해주시면 되겠습니다 ㅇㅇ
(위 스샷은 재시작을 통해 "vgmstream plugin"이라고 제대로 인식된 뒤의 스샷입니다)
[ 5단계 : 사운드 압축 풀기 ]
플러그인 설치가 완료됐다면 이제 압축을 풀려는 사운드 파일을 foobar2000 에서 열어주도록 합시다.
.acb 파일과 .awb 파일이 한 세트이긴 한데, 그 중에서 .awb 파일이 실제 사운드에 해당되니 그 쪽을 열어주시면 됩니다.
(메뉴에서 [File] - [Open...] 항목으로 열어도 되긴 하지만, 그냥 .awb 파일을 드래그해서 여는 쪽이 더 편했던 것 같습니다 ㅋ...)
파일을 열어보면 스샷의 우측 상단에서처럼 파일에 포함되는 사운드의 목록이 뜨는데,
(.awb 파일 하나에 사운드가 한 개 들어있는 경우가 대부분이지만, 스샷처럼 파일 하나에 사운드가 여러 개 들어있는 경우도 있습니다)
우클릭 메뉴에서 [Convert] - [Quick convert] 항목을 선택해 원하는 확장자의 사운드 파일로 변환해주시면 됩니다.
여러 형식이 있긴 한데 제 경우엔 그냥 기본값인 .wav 파일로 변환했습니다 ㅇㅇ
이제 사운드 추출 및 변환이라는 모든 과정이 끝났습니다!
이후부터는 일반적인 사운드 파일처럼 활용해주시면 됩니다 ㅇㅇ
제 경우엔 인게임 BGM을 얻는 게 목적이었기 때문에, BGM에 해당되는 사운드를 싹 다 추출해서 변환해줬습니다 ㅇㅇ
눈여겨 보고 있었지만 기존에 브금을 추출해주던 유튜버들이 올려주지 않아서 아쉬웠던 브금들이 몇 개 있었는데,
요번에 사운드 추출하는 법을 정리하면서 그 브금들도 뽑아봤네요 ㅎㅎ (그게 위의 영상 둘)
[ 번외 1 : 사운드 추출 관련 팁 ]
이미지, 텍스트, 3D 모델링 파일 등은 미리보기가 가능하니 어느 게 내가 필요로 하는 리소스인지 금방 찾기 쉽지만,
사운드는 보셨다시피 추출 및 변환 과정을 모두 거치기 전까진 파일명 말고는 그 내용을 추측할 방법이 전혀 없습니다.
근데 막상 사운드 파일들을 추출해보면 파일명이 "snd_bgm_gm175 [1]", "snd_voi_chara_cmt_03_1046" 이딴 식으로 되어있어서,
이름만 보고는 당최 무슨 사운드 파일인지 알기가 힘듭니다 ㅇㅁㅇ;;;
(그나마 일부 파일은 우마무스메의 ID값이 파일명에 포함되있다든가 해서 약간의 유추는 가능하지만...)
그래서 예상되는 파일들을 하나씩 변환시켜 들어보는 방식보다는,
차라리 모든 사운드 파일을 싹 다 변환시켜놓고 차례대로 들어보며 사운드를 찾아보는 쪽이 오히려 더 빠릅니다 ㄷㄷ
(제 경우엔 브금 파일이 목적이라 "snd_bgm_..." 계열의 파일명을 가진 사운드 파일만 변환했는데, 의외로 10분도 안걸렸네요)
그리고 처음 한 번만 시간을 들여서 전체 리소스를 추출해두면, 나중에 게임이 업데이트될 때만 주기적으로 추출 프로그램을 돌려주면 됩니다.
추출 프로그램을 새로 돌리면 업데이트 된 분량 만큼만 새로 추출하니 시간도 얼마 안걸릴테고,
새로 업데이트 된 브금이나 보이스는 탐색기에서 수정된 날짜 기준으로 검색하면 금방 검색되니 신규 사운드 찾기도 수월하죠 ㅋ
[ 번외 2 : 사운드 활용 관련 팁 ]
사운드 파일을 뜯어보면 날것 그대로 활용할 수 있는 경우도 있지만 어느 정도 가공을 해줘야 하는 경우도 있습니다 ㄷㄷ
당장 위에 제가 예시로 넣어둔 영상 중에서 GIRLS' LEGEND U 브금의 경우엔 같은 음악이 한 파일 내에서 두 번 반복 재생되는 구조여서,
6분 가량의 브금 중 절반인 뒤쪽 3분 가량을 제가 임의로 잘라내고 앞부분으로만 영상으로 만들었거든요 ㅇㅇ
그 외에 사운드 파일의 음량을 조절할 필요가 있다거나, 여러 사운드 파일을 이어서 활용하거나 하는 등의 편집이 필요할 때가 있습니다.
그래서 제가 활용하는 적절한 사운드 관련 툴들의 링크를 마련해봤습니다 ㅎ
☞ 온라인으로 노래 병합 (무료) : 사운드 파일을 자르거나 다른 파일과 붙여야 할 때 활용하기 좋은 사이트입니다.
☞ wxMP3gain Portable Download : 사운드 파일의 음량을 조절해주는 프로그램입니다. 여러 사운드 파일의 음량이 제각각일 때 하나로 맞춰줄 수 있어서 개인적으로 애용하는 프로그램이기도 합니다 ㅎ
☞ 온라인으로 WAV MP3 변환 (무료) : foobar2000 에서 사운드 파일을 바로 mp3로 변환하려니 은근 과정이 번거롭더군요. 그래서 그냥 기본값인 wav 파일로 변환한 다음, 그 중에서 딱 필요한 파일만 이 사이트에서 mp3 파일로 또 변환하는 식으로 진행했습니다.
한편 추출한 사운드를 유튜브 등에 올릴 때, 캐릭터 보이스, 그리고 보이스가 포함된 노래의 경우엔 주의가 필요할 것으로 보입니다.
2년간 쭉 봐왔는데 그런 사운드 파일을 게시할 경우엔 나중에 다시 찾아보면 칼같이 다 지워져있더라구요....
반대로 보이스 없는 단순 BGM 같은 경우엔 딱히 신경쓰질 않는 것 같습니다 ㅇㅇ
이쪽은 2년 내내 추출한 사운드 파일을 유튜브에 그대로 올려놔도 멀쩡히 잘만 살아있으니 ㄷㄷ
[ 번외 3 : 왜 굳이 새로운 추출 툴을 썼는가? ]
기존에 잘 쓰던 추출용 프로그램(Asset Studio GUI)을 냅두고 왜 굳이 새로운 추출용 프로그램(Uma Musume Toolbox)을 썼나 싶으실텐데,
에셋 스튜디오와 툴박스를 서로 비교해보면 서로 장단점이 분명해서 둘 다 쓰는 수밖에 없었습니다 ㅇㅁㅇ...
[ 에셋 스튜디오 ]
장점 : 이미지나 텍스트 등의 리소스는 에셋 스튜디오 쪽이 미리보기도 가능하고 해서 쓰기 편합니다. 딱 필요한 파일만 찾아서 그거만 추출하는 것이 가능하고, 애초에 검색할 파일의 범위도 상대적으로 자유롭게 설정할 수 있으니까요. (초급편 3단계 참조)
단점 : 사운드 추출엔 굉장히 부적합한데, 검색되지 않고 누락되는 사운드 파일이 많은 편이고, 뭣보다 위 스샷처럼 사운드 파일이 암호화 된 상태 그대로 나오는지라 이걸로 뭘 어떻게 해볼 수가 없습니다.
[ 툴박스 ]
장점 : 에셋 스튜디오는 못하는 사운드 파일 추출을 이쪽은 다 해줍니다. 누락되는 파일도 없고, 자체적으로 암호화를 풀어서 ACB/AWB 형식으로 제공해주니까요.
단점 : 이미지나 텍스트 등의 리소스를 에셋 스튜디오에선 '미리보기 제공 + 자체 변환' 해주지만, 툴박스는 원본 그대로 추출해버리니 별도의 변환을 따로 해줘야 합니다. 거기다 무조건 모든 리소스를 다 추출하는 무식한 툴인지라, 내가 원하는 리소스만(특정 기간에 업데이트 된 리소스, 특정 유형의 리소스 등) 추출하는게 안된다는 것도 단점이죠.
앞서 사운드 뜯어보기 글을 준비하면서 삽질을 꽤 했다고 말씀드렸었는데,
어떻게든 에셋 스튜디오로 사운드 파일 추출 및 변환을 해보려고 이것저것 공부해보다 다 실패해서 그 사달이 난 것이었습니다 ㅋㅋ....
개인적으로 개발환경을 최대한 통합하는 것을 선호하는 편인지라 에셋 스튜디오를 최대한 써먹어보려고 했는데,
저 암호화 된 사운드 파일을 풀어보려고 이 방법 저 방법 몽땅 공부해보다가 시간만 날린....
반대로 그냥 포기하고 시간이 좀 더 걸리더라도 남들이 잘 개발해둔 툴을 쓰니까 훨씬 편하긴 하네요 흙.....
그래도 1이제 처음에 앱뜯 공부 시작하면서 목표했던 내용들(이미지 뜯어보기, DB 파일 뜯어보기, 사운드 뜯어보기)은 얼추 다 달성했네요!
3D 모델링 쪽이나 인게임 알고리즘 뜯어보기 쪽도 생각은 해보고 있는데,
이쪽은 진짜 공부하는데 들이는 시간이 장난아닐 것 같아서 엄두가 안납니다 ㅋㅋ.....
만약에 어느 정도 지식이 쌓이고 앱뜯 분석에 성공한다면 그 땐 '고급편'을 쓸 수 있으려나요 ㅎ;;;
여하튼 긴 글 봐주셔서 감사하고, 관심있는 분들은 이 글 보시고 앱뜯 한 번 도전해보시면 좋을 것 같습니다!
[ 요건 썸네일 이미지! ]
(IP보기클릭)121.130.***.***
(IP보기클릭)211.243.***.***
제 경우엔 댓글 보고 툴박스 돌려보니 잘 돌아가서, 툴박스 자체 문제는 아닐 것으로 보입니다 ㅇㅇ appsettings.json 파일에 기록한 폴더 경로에 문제가 있는지 확인해보시고, (한글명 폴더가 껴있다거나?) 실행 자체는 되는데 오류 메시지가 많이 뜨는 경우라면 그냥 무시하고 진행하시면 되겠습니다... (무시하고 일단 진행해서 완료한 다음에 다시 툴박스를 실행시키시면 추출 못한 파일들만 재추출 시도를 하니, 모두 추출될 때까지 계속 반복 실행하다보면 결국 다 추출하긴 합니다) [쪽지로도 답장 보내드린 부분이긴 합니다만, 혹여나 나중에 이 글 찾아보실 다른 분들을 위해 대댓글로도 남겨둡니다 ㅎ] | 24.04.17 01:26 | |
(IP보기클릭)175.125.***.***
(IP보기클릭)211.243.***.***
재작년 7월이었나 카겜에서 앱뜯/변조 관련 추가 공지한 이후론 관련 글은 안 쓰고 있습니다 ㅎ... 저 같이 단순 앱뜯 정도는 이미 썼던 글까진 문제삼진 않는 거 같긴 한데, 그래도 혹시 몰라서 가급적이면 추가 글은 안 쓰고 있습니다 -_ㅠㅋㅋㅋ | 25.03.20 11:04 | |