변신~!!! ~팬티가 되어 킁킁 페로페로~ 한글화 일지 2 - 언팩 및 리팩
▲ 전 편에서 발견한 스크립트 및 CG가 들어있다고 생각되는 패키지 파일이다.
어떤 게임이든간에, 대부분 게임 내에 활용되는 파일(대사나 이벤트 같은 Script서부터 이미지 같은 CG)들을
특정 형식으로 패킹해놓는다.
보통 게임을 한글화하는과정은 크게 놓고 보면 다 비슷비슷하다.
1. 그 패킹된 파일을 풀어낸다. (UnPack)
2. 패킹된 리소스들을 수정(한글화)한다.
3. 원래의 파일 형식으로 다시 패킹한다. (RePack)
의 형식으로 이루어진다.
하지만 저런 패키지 파일을 언팩, 리팩하는 과정은 리버스 엔지니어링에 대한 지식이 있어야 한다.
[파일들 -> (BlaBla) -> 패키지 파일] 이라는 과정에서 결과물인 '패키지 파일'만 가지고 'BlaBla'라는 과정을 도출해내야 하기 때문이다.
그건 나에겐 말도 안되는 삽질이며, 현재로서는 불가능하다.
그렇다고 포기하라는 이야기는 아니다.
▲구글신님 뒀다가 어디에 쓸래?
라고는 해도… 구글링 하는데만 하루 + 반나절이 걸렸다.
그 결과로, 결국 쓸만한 툴을 찾아내었다.
동인계 한글화 문화가 활발해지길 바라며, 찾은 툴은 공유하도록 하겠다.
Cg 전용
Script 전용
CGPack.pak 과, SCPack.pak은 일단 같은 확장자인 것에서 알 수 있는 것처럼,
파일 내부 형식은 같다.
하지만 script 파일의 경우, 또 자체 포맷인 'dat'을 사용하고(파일의 시작, 끝 부분에 헤더같은 게 붙음)
cg파일의경우엔, 32bit bitmap(뭐?) 를 암호화 -> lszz 압축 의 과정을 거쳐 gr이라는 확장자로 만들어 관리한다.
다행이도, 저 두 툴은 그걸 알아서 풀어준다.
다만,
Script파일의 경우엔 저 툴에서 Repack까지 지원을 해 준다.
참 잘 된 일이다.
CG파일의 경우엔 Repack을 지원해주지 않더라.
직접 만들어보려고 했는데, 별로 건질만한 게 없었다.
불행중 다행인 것은, 구글링을 계속하다 보니
"pak, idx로 추출한 파일은 다시 리팩하지 않고 같은 폴더에 쳐넣기만 해도 우선적으로 적용됨"
이라는 양키 형님의 말씀을 접하게 되었다.
그리고 실제로 그러했다.
툴의 사용법은 안쪽에도 설명이 되어있을 테니 생략하도록 하고.
여튼,
먼저 CG파일을 뜯어 보았다.
▲ 이벤트 CG서부터.,
▲ UI 그래픽이 전부 뜯겨나왔다.
근데 정말 bmp라니… bmp에 알파채널 붙여서 32bit bmp를 사용하다니…, 도대체 무슨 생각이야 이 녀석들.
덕분에 이미지 한장에 3메가는 하잖아 ㅁㄴㅇㄹㄴㅁㅇㄹ
일단 여기서 이미지를 한장 한장 봐가며 일본어가 씌여있는 이미지만 추려내보자.
▲ 그랬더니 737개가 나왔습니다.
(다시 찾아보니 지나쳤던 게 50개정도 더 있었던 것 같습니다. 800개 즈음 되는듯.)
…응, 뭐, 언젠가는 끝나겠지.
그 다음으로 Script 파일을 뜯어내봅시다.
여기서 주의할 것이, Script의 경우엔 수많은 삽질이 있었는데….
다른 사람은 이런 삽질 안하도록 중요한 것만 집고 넘어가자면,
스크립트에 사용되는 몇 몇 예약어. ( ) [ ] ' " 는 대사에 사용해서는 안 된다.
필자의 경우엔 내부적으로 Script를 Repack할 시에,
위의 저 문자들을 특수문자로 치환해주는 툴을 만들어서 사용했다.
바로 다시 패킹하고, 게임을 돌려보자.
▲ 외계어다!
적어도 일단 성공적으로 스크립트가 수정되었다는 것을 알 수 있다.
이제 정상적으로 한글 출력이 되도록 해 보자.