0.


시글러스 엔진은 비주얼 아츠에서 개발해서 VA계 브랜드 작품들이 사용하는 엔진임

리라이트(2011) 즈음해서부터 사용돼서 지금까지도 계속 사용되는 엔진으로 대표적으로 Key, 사가, 톤웍 겜에서 볼 수 있음


프로그래밍 지식이 없더라도 방법만 익히면 충분히 해봄직해서 (본인도 프로그래밍은 대학 교양밖에 안 들어봄)

나중에 도전해 보고자 하는 사람들을 위해 이 엔진 기반으로 한글 패치를 만드는 법을 내가 아는 선에서 공개하려고 함


솔직히 말하면 툴이 워낙 직관적이고 편리해서 일일히 설명 안 달아도 금방 사용법은 익힐 수 있을 것 같기 한데

정말 아무런 지식 없이도 글대로 따라 해서 누구나 가능하게 써 보겠음


마음 같아서는 키 신작 나오면 또 한번 한글화에 도전해 보고 싶고 그게 안 되면 기술적으로나마 도움을 주고 싶기는 한데

그때되면 상황이 어떻게 될지 모르니 여유 있을 때 그냥 다 공개해 놓는 게 낫다고 생각했음


본격적으로 방법 이야기로 넘어가면 보통 한글화 대상 파일은


Scene.pck (스크립트)

Gameexe.dat

dat 폴더 - dbs

g00 (이미지)

mov 폴더 (동영상) - wmv, omv


이렇게 다섯임


이중 g00 파일의 언팩, 리팩 법은 다른 분이 잘 정리해 준 게 있어 아래 링크 보고 참고하면 될 듯함

https://gall.dcinside.com/visualarts/10


다음으로 mov 폴더인데 동영상 파일은 wmv, omv 파일이 있음


wmv는 흔히 하는 그 wmv 파일이고 오프닝, 엔딩 영상 등에 쓰임

이건 그냥 동영상 편집 프로그램으로 따로 한글화 영상을 만들어서 그대로 덮어씌우기만 하면 되니까 크게 문제가 안 됨


문제는 omv 파일인데 보통은 이팩트 용도로 쓰이지만 가끔 엔딩 영상 같은 거로 쓰이기도 함

알기로는 해외쪽에서도 아직 리팩에 성공한 사례가 없는 것 같고 지금으로써는 그냥 맘 편히 포기하는 게 낫겠음


이 글에는 Scene.pck, Gameexe.dat, .dbs 파일의 언팩 및 리팩 방법을 강의하고자 함

강의에는 예제로 톤웍의 최신 작인 달의 저편에서 만나요(츠키카나)를 사용하겠음


1. 준비물


GALgameScriptTools

https://github.com/yanhua0518/GALgameScriptTools


대륙에서 만든 스크립트 언팩, 리팩 툴. 이거 하나만 있으면 pck, dat, dbs 파일 다 해결할 수 있고 다른 툴에 비해 압도적으로 편리함


SiglusSceneManager


위 툴에 최신 버전으로 포함되어 있음. 스크립트 작업에도 활용할 수 있지만 그런 용도로 쓰기에는 위 툴보다 훨씬 불편하고 비효율적이라 본 강의에는 키를 찾는 보조적인 역할로만 쓸 것임


SiglusExtract

https://github.com/xmoeproject/SiglusExtract


종합 언팩, 리팩 툴. 근데 한글화에 있어서 중요한 기능들은 맨 윗툴로 대체 가능해서 여기서는 한정된 용도로만 활용할 것임


파이썬

https://www.python.org/


GALgameScriptTools 구동을 위해 필요함. 주의해야 할 건 반드시 64비트 용이 아닌 32비트 용을 받을 것
이거 몰라서 서머포켓 만들 때 저 툴을 제대로 못씀..

Notepad++

번역 및 일괄 수정에 용이함. 정규표현식 활용한 수정 작업이 필요해서 거의 필수


2. Key 찾기


예전에는 좀 복잡한 방법을 써야 했지만 다행히 최신 버전 SiglusSceneManager를 통해 굉장히 쉽게 찾을 수 있음


① GALgameScriptTools-master/SiglusEngine/otherTools 폴더의 SSMGui.exe 파일 실행

② 게임을 실행 (이때 알파롬이든 다른 크랙을 먹이고 실행해도 문제 없는 듯)

③ 툴에 우클릭하고 Extra Tools의 Find SiglusEngine Key 클릭



④ SiglusEngine 더블클릭하면 자동으로 키값이 구해짐. 컨트롤 C 눌러서 복사한 후 메모장에 저장





3. Scene.pck


3-1. 언팩


① 파이썬을 통해 GALgameScriptTools-master/SiglusEngine 폴더의 GUI.py 파일을 실행



② 툴 아래 쪽 키를 방금 구한 키값으로 바꿈



③ 게임 폴더의 Scene.pck 파일을 GALgameScriptTools-master/SiglusEngine 폴더에 옮긴 후 (직접 경로 지정을 해줘도 됨) 스타트 누르면 아래 아웃풋 폴더에 스크립트 파일이 .ss 형식으로 언팩이 됨


④ 왼쪽 옵션란에서 Dump ss를 선택한 다음 ss이 언팩된 아웃풋 폴더를 지정하고(안 건드렸으면 그대로 두면 됨) 스타트 누르면 이제 직접 수정할 수 있는 텍스트 형식으로 언팩이 됨




3-2. 번역


이렇게 추출된 텍스트 파일을 대충 둘러보면 무슨 파일을 수정해야 할지 대강 감이 잡힐 거임


나는 츠키카나 프롤로그 파트를 찾아내서 수정해 보고자 함



텍스트 파일을 열어보면 이런 식으로 텍스트가 두줄 씩 쓰여 있음

여기서 검은 땡땡이가 붙은 아랫줄만 수정을 해 주면 됨. 윗줄은 그대로 남겨 두고 나중에 감수 작업할 때 잘 활용하길


이제 번역을 해 주면 되는데 뭐 우선은 메모장으로 그대로 수정해도 되고 노트패드++ 켜도 되고 한글에 옮긴 다음에 해도 되고 편한대로 하길



즉석에서 대강 번역해 봤음


다음을 설명하기에 앞서 시글러스 엔진의 문제점을 말해야 하는데 그게 한글을 전각 문자로 인식하지 못한다는 것임

그래서 저 번역문을 그대로 리팩했다가는 글씨가 겹치는 문제가 생기게 됨


여기서 해결 방법이 두 가지가 있는데,


첫 번째는 그냥 그대로 리팩을 한 후 SiglusExtract 툴의 기능을 써서 엔진이 모든 반각 문자를 전각 문자로 인식하게 하는 것임

서머 포켓 한패 버전 1.2까지 썼던 방식인데 이때의 문제점은 한글 뿐만 아니라 문장부호, 공백까지 모두 전각으로 바뀐다는 것

그리고 서머 포켓 한패에선 왜인지 CG가 열리지 않는 버그까지 있었음

아래 방법이랑 비교했을 때의 장점은 문장 개행 부분에 공백이 들어가면 문장 처음에 공백이 생기는 현상이 없다는 것

결과적으로 이 방법은 별로 추천하지 않고 따로 소개하지 않겠지만 이 방법을 쓰고 싶은 사람이 있다면 나중에라도 추가하겠음


여기서 소개할 방법은 그냥 간단하게 한글 글자마다 뒤에 공백을 붙이는 방법임


이제 번역이 다 끝났으면 지금까지 번역한 텍스트 파일을 전부 백업해 두고 파일 중 하나를 Notepad++로 실행한 후 컨트롤 F


창에서 파일에서 찾기를 선택하고 아래 검색모드에 정규 표현식을 체크

찾을 내용에 ([가-힣])

바꿀 내용에 $1

중요한 건 $1 뒤에 스페이스바를 눌러 공백을 하나 넣어주어야 한다는 것임



이제 모두 바꾸기를 클릭하면



글자마다 뒤에 공백이 하나씩 삽입돼 있는 것을 확인할 수 있음


3-3. 리팩


① 다시 툴로 돌아와 옵션에서 Pack ss를 선택. 오른쪽엔 각각 ss 파일이 있는 폴더, 작업한 텍스트 파일이 있는 폴더, 아웃풋 폴더를 지정해주면 됨



② 처리가 끝났으면 옵션에서 Pack Scene을 선택. 오른쪽엔 원본 Scene.pck 파일, 방금 패킹한 ss 파일이 있는 아웃풋 폴더 (기본값은 Scene으로 되어 있을 텐데 변경해야 됨. 난 아웃풋 폴더 명을 그대로 Output이라 해두어서 이것대로 바꿈), 아웃풋 파일 명을 지정. 밑에 압축 레벨을 안 건드려도 됨



③ 스타트를 누르면 조금 시간이 걸리고 다 되면 완성된 스크립트 파일이 나옴. 나 같은 경우에는 아웃풋 파일 확장자를 .pck2로 해두었으니 다시 파일명을 Scene.pck로 바꾸어 줘야 겠지




완성된 파일을 게임 폴더의 기존 스크립트 파일이랑 교체하고 실행했더니 무사히 한글이 출력되는 걸 볼 수 있음


이미지 개수 제한 때문에 dbs, Gameexe.dat 파일 언팩 리팩 법이나 한패 로더 활용법 같은 부가적인 것들은 다음 글에 쓰겠음