0. 서론

준비물에 앞서 생각해야될게 있음


업뎃될 때마다 파일 비교를 하려면 비교 대상 둘이 있어야 함.

당연히 업뎃 이전 파일이랑 업뎃 이후 파일임.

업뎃된걸 확인하려면 처음 한 번은 비교 대상이 없으니 조금 힘듬

그래서 직접 확인할 마음이 있으면 하루라도 빨리 파일 추출해서 비교할 파일을 마련해야

다음 업데이트 때 파일 비교해서 변경된 걸 찾아낼 수가 있다 ㅇㅇ


준비물(필수): 

- 파일을 추출할 휴대폰이나 앱플레이어 (본문은 LD플레이어 기준)

- uTinyRipper (유니티 Asset 파일 분해 프로그램)

- Winmerge (파일 비교 프로그램)


준비물(선택)

- 음원 파일을 추출할 경우: RavioliGameTools (이 게임의 경우 wem과 bnk파일 추출에 활용됨)

- Cubism으로 제작된 라투디를 추출할 경우: UnityLive2DExtractor for ガール・カフェ・ガン ('l2d'나 'update' 폴더의 Live2d 파일 추출)

- Spine으로 제작된 라투디를 추출할 경우: AssetStudio ('2d animation' 폴더의 Live2d 파일 추출)


I. 게임 데이터 추출하기

휴대폰에서 컴퓨터 옮겨오거나 앱플에서 파일을 가져오는 두 가지 방법이 있음.

이건 원하는 걸로 선택하면 되는데 전체적인 작업은 어차피 컴퓨터에서 이루어지니 잘 생각해보고 편한걸로 ㄱㄱ


 ① 휴대폰에서 추출하기

휴대폰에서 파일을 가져와 컴퓨터로 옮길 경우 데이터 파일 낱개로 옮겨오면 이동 속도가 창렬하기 때문에

먼저 압축을 해서 하나의 파일로 만들어줘야 함.

⑴ 폰에서 아무 압축 앱을 이용해서 '/Android/data/com.biligamekr.girlcafegungp/files' 폴더를 압축해주자. (약 3.15GB)

⑵ 폰을 컴퓨터에 연결한 후 '파일 전송(MTP)' 모드로 설정 후 방금 압축한 파일을 컴퓨터로 옮겨주자.

⑶ 적당한 폴더에 압축을 해제해서 다시 원래 상태로 돌려주자.

ⓘ 필자의 경우 바탕화면에 옮겨서 폴더명을 'files_200914' 이런식으로 뒤쪽에 추출날짜를 같이 적어둠. (이렇게하면 파일 비교에 용이함)


② 앱플레이어에서 추출하기(LD플레이어 기준)

이 방법은 굳이 압축을 하지 않아도 됨. 어차피 앱플에서 옮겨오는거라 압축하고 이동할꺼 생각하면 시간상 별 차이가 나지 않음.

⑴ 앱플 실행 후 '시스템 앱 > 파일 관리자' 실행

⑵ '/Android/data/com.biligamekr.girlcafegungp' 로 이동 후 'files' 폴더 왼쪽에 있는 네모 박스를 누르면

 박스 안에는 체크 표시가 뜨고, 아래쪽에 '1개의 폴더가 선택되었습니다.' 문구가 나올 것임.

⑶ 이 상태에서 '.. 상위 폴더'를 3번 눌러 최상위 폴더로 이동한 후, /Pictures/ 폴더로 들어가주자.

⑷ 오른쪽 위에 있는 점 3개를 누르고 '선택 항목 복사'를 눌러주면 복사가 진행된다.

⑸ 다 옮겨지고 나면 앱플 우측 버튼 중에 '폴더 모양 버튼 > PC공유 폴더 열기' 클릭

⑹ 폴더가 하나 열릴텐데 아마 방금 옮긴 'files' 라는 폴더가 보일거임. 적당한 곳을 이동시켜 이름도 보기좋게 바꿔주자.

 ⓘ 필자의 경우 바탕화면에 옮겨서 폴더명을 'files_200914' 이런식으로 뒤쪽에 추출날짜를 같이 적어둠. (이렇게하면 파일 비교에 용이함)


이 과정은 업데이트가 뜰때마다 해주어야 함. 당연히 게임 파일을 가져오는 과정이니 어쩔 수 없는 부분 ㅇㅇ

컴퓨터 저장공간을 상당히 차지하니 유의하기 바람. (작업 공간으로 넉넉잡아 8~10GB 정도)

위에서 말했듯이 파일 추출 두 번 이후부터 파일 비교가 가능해지면서 변경된 파일에 대한 검토가 가능해짐

그래서 다음과 같은 파일 관리 팁이 성립 (사실 이건 팁이라 하기도 뭐함)


예를 들어, 추출한 폴더가 다음과 같이 있다고 하자

┌ 2020년 8월 31일에 추출한 데이터: files_200831

│ 2020년 9월 5일에 추출한 데이터: files_200905 

└ 2020년 9월 14일에 추출한 데이터: files_200914 ← 이게 방금전 추출한 파일이라 가정하면

이런 경우 어차피 이 셋 중 가장 오래된 200831은 필요가 없음.

어차피 방금 추출한 파일이랑 그 직전 파일이랑 비교해서 바뀐거 찾아내는거니

그보다 오래된 건 싹 지우면 되는 거임 ㅇㅇ

- 정리: 방금 추출한 폴더랑 바로 직전에 추출했던 폴더만 있으면 됨.


II. 옮겨온 파일 분해하기

게임 데이터 옮겨와서 폴더 살짝 열어본 애들은 알겠지만 뭔가 ㅈ같은 기운을 느낄 수 있을 것임

보도못한 u 확장자 파일이 펼쳐져 있기 때문일듯 한데

이건 유니티 게임에서 쓰는 파일이라 분해 프로그램에 넣고 돌리면 뜯겨져 나와서 속 파일을 볼 수 있게됨


근데 문제가 하나 있는데,

우리가 가져온 파일들이 꼬라지만 살짝 살펴봐도 게임 데이터의 원래 파일은 아니잖음?

이게 게임을 업데이트하고 빌드할 때마다 이미지나 각종 프로그래밍된 소스들, 음향 파일들이 조금씩 다른 파일에 배치가 됨.

그래서 추출한 게임 데이터 그 자체 끼리 변경된 파일을 비교하는 것만으로는 순수한 변경 파일들을 걸러낼 수가 없다;;


예를 들어 파일이 다음과 같이 있다고 치자

【2020년 9월 5일에 추출한 데이터】

gamedata_1.u 를 분해해서 나온 이미지: game_0.png / game_1.png

gamedata_2.u 를 분해해서 나온 이미지: game_2.png / game_3.png

【2020년 9월 14일에 추출한 데이터】

gamedata_1.u 를 분해해서 나온 이미지: game_0.png / game_1.png / game_4.png / game_5.png

gamedata_2.u 를 분해해서 나온 이미지: game_2.png / game_3.png

이 경우에 게임 데이터를 그대로 가져와서 비교를 돌리면 'gamedata_2.u' 내부에 파일은 'game_2.png'와 'game_3.png'의 2개 파일로 동일하기 때문에 알아서 걸러지겠지만, 9월 14일자 추출 데이터에 새로 추가된 'game_4.png'와 'game_5.png'를 추출하는 과정에서 'gamedata_1.u' 내부에 있는 'game_0.png'와 'game_1.png'의 경우 기존에 있던 파일이지만 'gamedata_1.u'라는 덩어리랑 같이 움직이기 때문에 앱플레이어 추출 직후 1차적으로 비교 프로그램을 돌리고, 추출 후에도 비교 프로그램을 돌려야지만 순수 변경된 파일이 추출됨.

- 정리: 1차로 돌리는 건 덩어리 자체가 겹치는 gamedata_2.u 같은 파일을 거르는 과정, 2차로 돌리는 건 덩어리가 달라서 뜯어봤더니 꼽사리껴서 같이 들어온 동일 파일들 걸러내는 과정이라고 보면 됨


그 때문에 처음 게임 데이터 가져온 경우에는 여기서 설명한 2차 비교를 위해서 추출 프로그램을 한번 돌린 게임 데이터를 만들어 내는 과정이 필요함. 필자의 경우 모든 게임 데이터를 추출기 돌려서 정리 후 D드라이브에 넣어두었지만.. 경험 상 모든 파일이 필요한 건 아님.

주로 확인할만한 것은 이벤트 배너 같은 '이미지 파일'임

그래서 내가 가지고 있는 이미지 파일 비교용 추출 파일을 올리도록 하겠음. (이건 업로드도 해야하고 하니 조금 기다려줘)


추출해서 걸러낸 파일들 뜯는 방법은 변경된 파일 걸러내는 거 다음 과정이니 그거 먼저 설명하고 이어갈게.


III. 파일 비교해서 변경된 파일 추려내기: 1차

이제 파일 비교 과정이 2번 필요하다는 걸 이해했으니 업데이트된 파일,

즉 변경된 파일만을 순수하게 추려내기 위한 '첫번째 과정'을 설명하도록 하겠음.


이건 바로 위에서 설명한 추출기 돌리기 이전에 필요한 과정.

(글 맨 처음에서 말한것 처럼 파일 비교를 위해서는 2개의 비교 대상이 필요하기땜에

이거 처음하는 애들은 추출해놓고 다음 업뎃을 한번 기다리고 비교 대상 마련한 후에 다시 이글 따라하면 됨)


여기서 준비물에서 소개한 'Winmerge'라는 파일 비교 프로그램이 사용됨.

설명을 위해 각각 9월 5일(files_200905), 9월 14일(files_200914)에 추출했다고 가정할게

⑴ Winmerge를 실행하고 좌측 상단에 '파일 > 열기'를 눌러주자.

'왼쪽'에는 먼저 추출한 폴더(9월 5일자)의 경로를 세팅해주고,

 '오른쪽'에는 방금 추출한 폴더(9월 14일자)의 경로를 세팅해줘.

 그리고 '필터'에는 '*.*'이라고 되어있을텐데 손대지 말고, 아래쪽에 하위 디렉토리 포함에 체크 해주자.

⑶ '확인' 눌러주면 프로그램이 알아서 바뀐 파일이랑 동일한 파일 구분시켜줌.

⑷ 비교 결과 순으로 정렬시킨 후에 'files_200914에 한쪽만 존재'하는 파일과 '동일하지 않은 파일'을 선택해주자.

 ⓘ 드래그로 다중 선택이 안되므로 클릭 후 키보드의 컨트롤 키를 눌러서 다중 선택해야함.

 ⓘ '먼저 추출한 폴더(files_200905)에 한쪽만 존재'하는 파일은 업데이트하면서 없어진 파일이니깐 선택하면 안돼.

⑸ 바탕화면에 변경된 파일만 골라내서 뽑아줄 적당한 이름의 폴더 하나만 만들어주자.

 ⓘ 필자의 경우 'changed'라는 이름으로 해줌.

⑹ 선택 후에 오른쪽 마우스를 클릭하고, '복사 > 오른쪽 파일 위치지정 복사'를 눌러주고 방금 만든 폴더를 선택해.

 ⓘ 이동하면 안되는 이유: 나중에 업뎃되면 파일 비교를 또 해야하는데, 이동은 비교대상에서 파일이 아예 빠져버리는거니깐 절대하면 안됨

⑺ 정말 복사하겠냐고 물어보겠는데 ㅇㅅㅇ 해주면 됨


이렇게 하면 1차적인 변경 파일 추출이 끝남.

여기까지가 바뀌지도 않은 파일까지 매번 뜯어볼 수는 없으니깐 뜯기전에 바뀐것만 한번 골라내줄려고 한거..


이제 아까 설명하기로 한 '걸러낸 파일들 뜯는 방법'임.


준비물에서 말한 uTinyRipper를 실행하면 Drag & Drop files/folder here이라고 나올텐데

폴더째로 드래그하면 제대로 인식 안되니깐 폴더별로 파일만 선택을 해서 드래그해주자.

드래그하면 'Export'라는 버튼이 있을건데 클릭하면 경로 설정하는 창이 뜰거임.

적당한 폴더를 바탕화면에 하나 만들어서 거기로 해주자.

 ⓘ 필자의 경우 'extracted'라는 이름으로 해줌.

이거 할때 폴더 섞여 들어가면 그 안에 있는 파일은 추출 안해주니깐

각 폴더에 매번 들어가서 파일들 모두 선택해서 '드래그 > 추출(Export)'

이거 몇 번 해줘야한다

(근데 변경된 파일이 무지 많고 그렇지는 않아서 별로 걸리지는 않음)


추출이 끝나면 뜯기긴 했는데 좀 지저분하게 흩어져있을거임.

2차 비교를 돌리기 전에 규칙 있게 좀 정리를 해줘야만 해.. (개귀찮누 ㄹㅇ)


III-2. 뜯은 파일 정리하기

바탕화면에 'output'이라는 폴더 하나를 만들고

그 안에 추출 날짜로 폴더 하나를 더 만들어 주자.

(이 글에서 이때까지 든 예시로 따지자면 폴더 이름은 '200914')


다시 뜯은 파일들 들어있는 폴더(extracted)로 돌아와서

오른쪽 위 검색창에 '*.*'이라고 입력해줘.

(따옴표는 넣으면 안된다 *.* 임)

그러면 그 안에 있는 파일들이 폴더구분없이 한자리에 뜨게 될거임

 ⓘ 파일이 너무 많은 경우 제대로 다 안뜨거나 검색이 오래걸리는 경우가 있음.

     이 경우에는 좀 더 안쪽 폴더로 들어가서 검색 대상을 줄여서 몇 번을 반복해주면 됨

     (말만 보면 조금 귀찮아 보이지만 이것도 파일 그렇게 까지 많지는 않아서 나쁘지 않을거임)


이 상태에서 이 폴더 창 허공에다 '오른쪽 마우스 클릭 > 정렬 기준 > 유형' 선택

PNG 파일 탭을 보면 이미지 파일만 모여있을건데,

그중에서 맨위에 있는 파일에 대고 '오른쪽 마우스 클릭 > 파일 위치 열기'

그러면 어딘가가 열릴텐데, 거기서 PNG 파일만 방금 만든 바탕화면의 날짜이름 폴더로 옮겨주자.

 ⓘ 여기서 png 파일이랑 meta 파일이 반반이 있을텐데, meta 파일은 필요없으니 png만 옮기면 됨.

     근데 번갈아가면서 나와있어서 좀 빡칠텐데 정렬 기준 한 번 클릭해주면 png 파일끼리 모이니깐 참고


옮기고 나서 뒤로가기 한 번 눌러주면 다시 방금의 그 검색 결과창이 나오는데

아직 남아있는 png 파일들이 있을거임

여기에 png 파일이 하나도 안남을 때까지 이동 과정을 반복해주자.

(이게 파일이 조금 흩어져 있어서 그런데 엄청 심하지는 않으니깐 몇 번만 해주면 끝남)


IV. 파일 비교해서 변경된 파일 추려내기: 2차

내가 아까 올려준다고 했던 '이미지 파일 비교용 추출 파일'을 다운받아서 적당한 곳에 옮겨주고,

다시 Winmerge 파일 비교용 프로그램을 실행해주자..

 ⓘ 필자의 경우 이 폴더를 'compare'라고 해줌


똑같이 '파일 > 열기'를 눌러서 이번에는

'왼쪽'에 방금 다운받은 그 폴더(compare)의 경로를,

'오른쪽'에 방금의 III-2에서 정리한 그 날짜이름의 경로(여기서는 '200914'로 설명)를 설정해주자.

(나머지 필터랑 그런 것들은 아까 과정에서 세팅한 그대로 되어있을테니 손대지 말자)


확인 눌러주면 ㄹㅇ 찐으로 변경된 파일을 골라내줌

'200914에 한쪽만 존재'하는 파일과 '동일하지 않은 파일'을 선택해주고

'오른쪽 마우스 클릭 > 복사 > 오른쪽 파일 위치지정 복사' 클릭해주자

또 경로 선택 창이 나올텐데

바탕화면에 '업데이트된 파일'이라는 이름의 폴더를 만들고 거기로 해주자.

 ⓘ 이 폴더 안에 추출 날짜를 이름으로 하는 폴더를 하나 더 만들어서 거기로 해준다면 다음에 정리가 편함 (추천)


이제 바탕화면에 가서 '업데이트된 파일' 폴더를 열고

살펴보면 최근 업뎃으로 바뀐 파일들이랑 새로 추가된 파일들을 확인할 수 있음


이제 changed 폴더, extracted 폴더는 지워도 됨.

바뀐 파일이랑 그걸 추출한 파일은 업뎃된 파일 추려내는 과정에서 나온 찌꺼기이기 때문.


※ 에필로그

글 다쓰고 몇가지 떠오르는게 있어서 추가함.

- 음향 파일은 업뎃된거 확인하는거에는 별로 적절하지 않으니 추출할 필요자체가 없음.

(즉 앱플에서 설치할 때 음향 팩을 빼고 설치하면 용량을 줄이고 이동 시간을 줄이는데 효과적일 수 있다)

- 맨처음에 선택 준비물에 라투디 추출하는 툴이랑 음원 추출하는거 말했는데 그건 추후 강좌에 올릴 예정.

(미리 정보 하나만 주자면 Spine 기반 라투디는 2d animaion 폴더에, Cubism Live2d 기반 라투디는 l2d 폴더에 있음

각각 추출 툴이랑 실행기가 다르므로 추후 글 참고해랑)


컴퓨터에서 작성한 글이라 폰에서 어떻게 보일지는 잘 모르겠음.

작업 대부분이 컴퓨터에서 하는거니 상관없을거라고 본다 ㅇㅇ

이상...

(다쓰고 보니 글자수 6958 이네..;; 힘들었따)


추가) https://arca.live/b/girlcafe/7340382