그냥 흥미를 가지고 글을 읽으시는 분들은 2편부터 읽으셔도 됩니다.

 

하지만 혹시라도 여기서 무언가 쓸모 있는 내용을 찾고 계신다면,  1편을 보고 오시는 것을 추천드립니다. 별 내용은 없지만, 앞으로 다루는 거의 모든 프로그램들에 대한 설명이 적혀 있고, 특히 이 내용들을 전부 어디서 배웠는지 적혀 있습니다. 

 

이미 보고 오셨다면 감사드립니다. 시작하기 전에, 주의사항을 하나 말씀드리겠습니다. 이 글은 아무 것도 모르는 제가 어떻게 시행착오를 거치며 한글화에 성공했는지에 대한 기록 같은 것이지, 한글화를 하는 방법에 대한 강좌가 아닙니다. 제가 한 방법이 무조건 맞는 것이 아니며, 어떤 측면에서는 엄청나게 멍청한 방법일 수도 있습니다. 저는 단지 기록을 남기기 위함으로 이 글을 적고 있음을 다시 한번 알려드리는 바입니다. 저는 한글화나 유니티 게임의 전문가가 아니며, 제가 한 모든 것은 검색을 통해 배운 것입니다!

 


 

우선, 저는 유니티 우리말화 도구를 이용해서 한글패치를 해 보려고 시도했습니다. 그러나 제 경우에는 제대로 작동하지 않았고, 해당 프로그램을 사용할 수 없었습니다. 그래서, 직접 한글화를 하기로 했습니다. 

 

일단 저는 대사 내용을 바꿔치기 할 수 있는지부터 조사하기 시작했습니다. 여러 강좌를 통해, 제가 열어봐야 하는 건 asset 파일들이라는 걸 알 수 있었습니다.

 

사실, 나중에 돌이켜 생각해 보니 유니티 우리말화 도구를 통해 파일을 열었을 때 대사 파일을 볼 수 있었습니다만, 그 때는 툴이 동작하지 않는다는 것 때문에 절망한 상태라 보지 못했습니다...

 

여하튼, 저는 게임의 data 폴더 안에 있는 sharedassets0 파일과 sharedassets2 파일을 열어봤고, 몇 번 뒤져 본 끝에, sharedassets2 파일 안에서 dialog.txt 라는 파일을 발견할 수 있었습니다. 

 

 

누가 봐도 대사파일이다! 라고 생각할 수 있었기 때문에, UnityEX를 이용해서 해당 파일을 추출했습니다. 사실 UABE를 쓰면 더 쉽게 해당 파일만 추출할 수 있었지만, 그 때는 몰랐기 때문에 그냥 마우스 우클릭 - select all - Export with convert 해서 sharedassets2 파일 전체를 뜯었습니다. 어쨌든, 그렇게 해서 dialog.txt 파일에 접근할 수 있었습니다. 

 

적힌 것들이 전부 대사입니다.

그 결과, 예상대로 대사 파일이 맞았습니다. 저는 이미 게임을 플레이 해 본 상태였기 때문에, 가장 처음에 나오는 대사가 뭔지 알고 있었습니다. 그 대사는 정말 운이 좋게도, Entry1 이라고 분류되어 있었습니다. 저는 Entry1 대사의 내용을 바꾼 뒤, 다시 게임 안에 집어넣었습니다. UnityEX를 사용하실 경우, 파일을 Export 하면 원본 게임의 data 폴더 안에, Unity_Assets_Files 라는 폴더가 생기게 되고, 그 안에 export된 파일들이 있습니다. 그 중에서 dialog.txt를 찾아서 내용을 바꾼 뒤, UnityEX에서 Import files를 누르면 조금의 시간이 걸린 뒤, sharedassets2이 교체되는 방식입니다. 다시 한 번 말씀드리지만, UABE를 쓰는 게 훨씬 쉽습니다! 해당 프로그램으로 작업하는 것도 나중에 적어 두겠습니다. 

 

여하튼, 저는 dialog의 내용을 바꾸었고...

 

 okay라는 대사를 koreantest라고 수정한 상태입니다

 

만세! 자막 내용 바꿔치기에 성공했습니다. 즉, 별 노력 없이 그냥 dialog 파일만 수정하면 내용을 바꿀 수 있다는 뜻입니다. 저는 희망에 부풀어서, 이번에는 한글이 출력되는지를 확인 해 봤습니다. 방법은 아까와 같이, dialog 파일의 내용을 바꾸기만 하면 됩니다. 

 

 

XX는 폰트가 한글을 지원하지 않아서, 이른바 폰트가 깨진 상황입니다. 원래는 '한글'이라고 적었습니다.

 

그러나 일이 그렇게 쉬울 리가 없었습니다. 이 게임의 폰트는, 한글을 지원하지 않았습니다. 그렇기 때문에 한글을 출력하려고 하면, 저렇게 XX로 나오게 되는 것이죠. 어쩌면 게임 제작자 입장에서는 당연한 일입니다. 유럽권은 알파벳 문자권이고, 대부분의 언어들이 알파벳으로 표현할 수 있습니다. 그러나 한글이나 일본어, 중국어 같은 것들을 지원하려면 따로 폰트를 지원해야 하므로, 알파벳 문자권에서는 별 생각 없이 그냥 만드는 것이죠. 어쨌든, 저는 한글 패치를 만들려 하고 있으므로, 폰트를 바꿔야 하는 상황이었습니다. 

 

일단 폰트 파일을 찾아야 했습니다. 유니티 게임의 폰트에는 두 가지 방식이 있습니다. 하나는 TTF 같은 일반적인 폰트 파일 방식이고, 다른 하나는 SDF 폰트라고 불리는 방식입니다. 이에 대한 자세한 설명은, 앞선 글에서 링크해 드린 김작 님의 강좌에서 찾아보실 수 있습니다.

 

여기서는 간략하게 설명드리도록 하겠습니다. TTF 방식의 경우 게임의 폰트가 우리가 흔히 사용하는 TTF 방식으로 저장되어 있습니다. 그러므로, TTF 폰트 파일을 교체하기만 하면 됩니다. 그러나 SDF 방식의 경우, 쉽게 말해 폰트가 글자 정보가 담긴 이미지 파일과, 그 이미지의 어디에 어느 글자가 적혀 있는지가 담긴 좌표 파일로 나누어져 있습니다. 

 

SDF 폰트의 이미지 파일의 예시

TTF 폰트였다면 일이 훨씬 쉬웠겠지만, 이 게임은 SDF 폰트 방식을 사용하고 있었습니다. 따라서, 지금부터는 SDF 폰트 이미지 파일과, 좌표 파일을 찾고, 그걸 교체해야 합니다. 저는 우선 대사를 한글로 출력하는 게 목적이었으므로, 대사에 쓰이는 폰트를 특정하기로 했습니다. 

 

여기 쓰인 폰트는 물음표가 특이한 모양입니다.

저는 폰트 중에서, 물음표에 집중했습니다. 물음표의 모양을 보시면, 일반적으로 생각하는 것과는 약간 다르다는 걸 알 수 있습니다. 점 위가 일직선이 아니라, 곡선으로 끝나고 있습니다. 그래서 저는, 다시 UnityEX를 이용해서, 이번에는 sharedassets0 파일을 뜯었습니다. 그 안에는 Texture 폴더가 있었고, 게임에서 쓰이는 여러 텍스쳐들과, 폰트 이미지 파일들이 있었습니다. Archer Semibold SDF Atlas.tex 같은 것들이었죠. 앞의 Archer Semibold가 폰트 이름입니다. 따라서 저는, 대사에 쓰이는 폰트를 찾아봤습니다. 위의 대사 폰트를 보시면, 물음표가 특이한 모양인데요, 그래서 비교적 쉽게 찾을 수 있었습니다.

 

 

이거였습니다. 보시면, 특유의 물음표 모양을 확인할 수 있습니다. 그러나 문제는... 

 

어떻게 파일 이름이 perfect_font_use_this?????

 

파일 이름이 perfect_font_use_this 라고 적혀 있었습니다. 정말 황당한 게, 게임에 쓰이는 다른 모든 폰트들은 전부 이름이 적혀 있었습니다. 바로 위에 LeagueSpartan-Bold 같이 말이죠. 그런데 대사에 쓰이는 폰트만, 폰트 이름이 아니라 perfect_font_use_this 라고 적혀 있던 겁니다. 저는 여기서 엄청나게 당황했습니다. 

 

도대체 뭐지?????

도대체 뭐지??? 라는 생각만 들었습니다. 돌이켜 생각해 보면, 침착하게 대응했으면 됐을 텐데, 당황한 끝에 그러지를 못했던 것 같습니다. 뭐 여하튼, 저는 완전히 패닉에 빠져서, 도움을 구하기 시작했습니다. 네이버 카페에 질문글을 올렸는데, 올리고 나서 문득 이 게임의 다른 언어 패치를 만든 사람은 없을까? 하는 생각이 들었습니다. 스팀을 검색해 보자, 일본어 패치가 존재한다는 사실을 알게 되었습니다. 다행히도 스팀에서 그 패치를 만든 사람 중 한 명과 접촉할 수 있었고, 저는 영어로 궁금한 점을 물었습니다.

 

 

친절했던 일본인 분...

 

그러나 대답은, 본인은 번역을 담당했을 뿐 기술적인 부분에 대해서는 모른다는 것이었습니다. 저는 여기서 굉장히 절망했고, 잠시 동안은 완전히 한글화 의지를 잃어버리기도 했습니다. 

 

3편으로 이어집니다...