명작 퍼즐 게임인 더 룸(The Room)이란 게임이 있습니다. 모바일로 먼저 나왔고 총 3까지 나왔으며 2까진 한글화 되었습니다. 사실 3는 너무 어렵고 배배 꼬아놔서 다들 별로라고 합니다.
더룸의 한글패치는
https://drive.google.com/file/d/1gM8FAqFu7cIO_XiouyepDvEAN6s70X-m/view?usp=sharing
https://drive.google.com/file/d/1AQwSpj3zAB6GNSeiXyjwBYa1VofXGxh9/view?usp=sharing
이것을 다운로드 받아서 (The Room이 설치된 곳)/TheRoom_Data에 덮어 씌우시면 됩니다.
그리고 언어 설정을 German(독일어)로 바꿔 주세요.
===여기서 부터는 작업내용 ====================
어쨌건 이 더 룸이란 게임이 PC판으로도 나왔습니다. PC인 만큼 화질도 좋아지고 선명해 졌습니다.
단! PC판은 한글이 없습니다...
https://store.steampowered.com/app/288160/The_Room/
하지만 분명 모바일버전에서는 한국어가 있었습니다. 아마도 아시아 판권이 없어서 PC판에서는 한국어를 제외한 것 같은데 한국어가 있다 없으니 짜증나지요.
그런데 어차피 모바일이나 PC나 게임 내용은 동일합니다. 게임엔진도 Unity3D로 동일하기 때문에 다른 것이 하나도 없습니다. 그러면 모바일에 있는 문장을 빼다가 PC판에다 이식하면 되지 않을까요?
그래서 직접 해봤습니다.
우선 한국어판 더 룸의 APK를 구합니다. 저는 https://apkpure.com/the-room-asia/com.chorusworldwide.theroom
여기서 직접 다운로드 받았습니다. 플레이스토어를 사용하지 못하는 곳을 위해 만들어진 APK미러 사이트로 웹에서 직접 APK를 받을 수 있습니다.
아시아판이니까 당연히 한국어가 있겠죠?
파일은 xapk란 이상한 것인데 사실 그냥 Zip형태입니다. 그냥 일반 압축프로그램으로 풀립니다. 그리고 그 안에는 우리에게 익숙한 apk파일과 obb파일이 있는 형태입니다.
물론 다들 알다시피 apk파일과 obb파일도 그냥 zip입니다. 그냥 압축해제가 됩니다. 우리는 여기서 /Android/obb/com.chorusworldwide.theroom 까지 들어가서 main.15.com.chorusworldwide.theroom.obb 파일까지 압축을 해제해버립니다.
obb파일도 그냥 일반 압축파일로 인식된다.
그리고 /assets/bin/Data 까지 들어가면... 이제 Unity3D 에셋 파일들이 등장합니다!
이건 이미 만들어진 수많은 Unity3D 해제툴을 이용해서 뜯을 수 있습니다.
저는 Unity3D에셋을 해체할 때 두가지 툴을 이용합니다.
AssetsBundleExtractor(https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor)
UnityEx(
UnityEX.7z
)
우선 모바일 더 룸에서 sharedassets1.assets.split0 안에 번역된 텍스트가 들어있습니다.
이것을 얻으려면 AssetsBundleExtractor를 사용합니다. UnityEx로도 되기는 하는데 불안정한 UTF-16으로 내보내기 때문에 AssetsBundleExtractor를 써서 UTF-8로 뽑아내는 겁니다.
AssetsBundleExtractor에서 sharedassets1.assets.split0파일을 열고 Korean을 찾은 다음 Plugins 클릭 그리고 export to txt를 누르면 한국어로 번역된 문장을 뽑아낼 수 있습니다.
이런 식으로 뽑아낸 텍스트 파일을 PC판의 English에 그냥 이식을 해버리면 모바일에서 번역된 문장을 PC판에서도 쓸 수 있겠지요!
이번에는 PC판 더 룸을 뜯어봅시다.
PC판에서는 (더 룸이 설치된 곳)/TheRoom_Data 에 assets파일들이 들어있습니다. 여기서 필요한 것은 resources.assets입니다. 이 안에 English.txt가 있더군요. 이걸 뽑아내고 비교해서 한국어로 바꾼다음 다시 이식을 하는 것입니다.
PC판의 에셋을 열자
English를 열어서 덤프하고...
모바일버전의 한국어를 PC판 English.txt파일에 새로 적자!
다만 PC판에 일부 문장이 추가되어 있어서 무작정 파일 바꿔치기는 어렵습니다. 따라서 English.txt파일을 번역한다고 생각하고 English.txt파일을 한국어로 바꿔주시면 됩니다. 어차피 상당부분은 겹칠겁니다.
저는 Python 스크립트를 만들어서 해결했는데 공개하기는 좀 더럽네요.
#-*- coding: utf-8 -*- import csv
eng = open("English.txt", 'r') kor = open("Korean.txt", 'r') moded = open("EngKor.txt",'w')
engrdr = csv.reader(eng, delimiter = '=', quotechar='|') korrdr = csv.reader(kor, delimiter = '=', quotechar='|') #modedwr= csv.writer(moded, delimiter = '=')
korlist = list(korrdr)
for engline in engrdr: print(engline) line = engline[0] + '=' + engline[1]+'\n' for korline in korlist: if engline[0] == korline[0]: print (engline[0] + '=' + korline[1]) line = engline[0] + '=' + korline[1]+'\n' #moded.write(engline[0] + '=' + korline[1]+'\n') """ else: print (engline[0] + '=' + engline[1]) line =engline[0] + '=' + engline[1]+'\n' #moded.write(engline[0] + '=' + engline[1]+'\n') """ moded.write(line)
eng.close() kor.close() moded.close()
|
이것을 이용하면 Engkor.txt 라는 파일이 나오는데 이것을 다시 AssetsBundleExtractor로 English.txt를 대체합니다.
이번에는 English를 누른다음 Plugins를 누르고 import from .txt를 선택해서 번역된 txt파일을 선택합니다.
이제 OK를 누르면 저장할 거냐고 물어봅니다. 기존에 열어버린 resources.assets파일을 덮을 수는 없으니 다른이름으로 저장하고 바꿔주시면됩니다.
이제 PC판 더 룸을 실행하면... 여전히 한글이 안 뜹니다... 이건 폰트 문제인데 UnityEX를 써서 TTF파일을 한글이 나오는 놈으로 바꿔주시면 됩니다. 이건
https://moordev.tistory.com/224
여기서 설명했습니다.
이것은 UnityEX를 이용합니다. AssetsBundleExtractor로 하면 오류가 나더군요.
UnityEX를 실행하고 Open archive Unity를 누른다음 PC판 더 룸의 sharedassets0.assets 파일을 선택합니다.
그 다음 Type에 Font라고 되어있는 항목을 찾습니다. 더 룸은 2개가 그러합니다.
OldTimAme
TheRoom
이 두가지 항목을 선택하고 오른쪽 버튼을 눌러 Export selected를 누릅니다.
그러면 Unity_Assets_Files이란 폴더가 생기고 그 안에 TTF파일 두개가 덩그러니 놓입니다.
이 두 파일을 원하는 한글 TTF로 바꾸시면 됩니다. 저는 서울한강체와 서울남산체를 사용했습니다. 가독성이 정말 좋더군요. 물론 파일명만 바꿔서 덮어버리면 됩니다.
그리고 UnityEX에서 import all files를 누르면 sharedassets0.assets 파일에 덮어버립니다. 만약을 위해서 해당 파일을 미리 백업하는 지혜가 필요하지요.
이제 기존 resources.assets를 지우고 아까 번역본을 English.와 바꿔치기한 resources.assets로 이름을 바꾼 다음 실행하면...
짜잔!!! PC판에서도 한글을 쓸 수 있게 되었습니다!
이후 텍스쳐 작업을 마무리 지었습니다. 역시 텍스쳐는 UnityEx를 이용했고 DDS포맷을 Gimp로 수정한 후 작업했습니다.