한글패치 관련 짧은 글

한글화/에셋 수정에 필요한 툴

눈백로 2021. 7. 9. 20:57

1. AssetStudio

2. UtinyRipper

3. UABE/UAAE/UABEA

4. UnityEX

5. Parser_ULS

6. UnityText

7. ILSpy+Reflexil

8. HxD / 010Editor / wxMEdit

 

 

 

 

1. AssetStudio (https://github.com/Perfare/AssetStudio/releases)

게임 폴더를 드래그하면 된다.

이미지/대사 에셋을 쉽게 확인 가능하며, 파일 타입, PathID, 어느 파일에 들어있는지도 확인 가능하다.

단, export만 가능하며 import는 지원하지 않을 예정인 것 같다.

 

 

 

2. UnityRipper (https://sourceforge.net/projects/utinyripper/files/)

게임폴더를 드래그하면 파일이 로드되고, export를 하면 에셋이 UnityProject에서 사용 가능한 형태로 export된다.

UABE나 UnityEX와는 확연히 다른 형태이다.

주로 추출 후 수정하고, 그 에셋을 이용해 테스트 게임을 빌드한 후, 원본과 테스트빌드의 에셋을 교체하는 식으로 사용했다.

import 기능은 당연히 없다.

 

 

 

3. UABE/UAAE/UABEA

UABE (https://github.com/DerPopo/UABE/releases)

UAAE (https://github.com/Igor55x/UAAE/releases)

UABEA (https://github.com/nesrak1/UABEA/releases)

에셋의 타입/PathID을 통해 쉽게 수정하고 하는 것을 찾을 수 있으며,

Export Raw / Export Dump / Plugins 옵션을 통해 에셋의 쉬운 export가 가능하다.

또한, import도 각각 지원하고 있으므로 한글화의 경우 사실상 Unity와 UABE만 있어도 가능하다.

mod installer를 만들 수 있으며, 번들의 압축/압축해제를 지원한다.

UABE가 U3.4.0f5~2019.2.0f1까지만을 지원하니, 이후에 만들어진 게임이라면 UAAE나 UABEA를 사용하자.

 

 

 

4. UnityEX (https://forum.zoneofgames.ru/topic/36240-unityex/)

texture파일과 monobehaviour파일 export/import에 매우 용이하다.

3D models 관련하여 수정을 할 때도 편리하며, 에셋 추가가 편리하다.

특이점으로는 bat파일을 만들어서 대량 파일을 처리하기 쉽다는 것인데,

bat파일을 통해서는 가능하나 GUI 상에서 지원되지 않는 기능도 몇몇 있는 거로 알고 있다.

이전 늑대와 향신료 VR 2 관련하여 전을 구울 때 headerbundle compress 관련하여 몇가지 테스트를 했었다.

지원하는 기능이 정말 많으나, Unity 2020 이상 버전에서 빌드된 게임의 경우 무료 버전에선 사용불가다.

 

 

 

5. Parser_ULS (https://disk.yandex.ru/d/Lz3SBVVFU7OJdg)

Monobehaviour 파일 내의 대사 추출을 위한 툴. bat파일을 만들어서 사용한다.

ex) for %%a in (files\*.114) do Parser_ULS.exe -e "%%a" -o $2C -st 4

ex) for %%a in (files\*.114) do Parser_ULS.exe -i "%%a" -o $2C -st 4

-o 이후 행에 대한 오프셋과 -d범위, -st(텍스트 테이블) 등등의 옵션을 지정해 줄 수 있다는데

문제는 러시아어로 써져있어서 세부적인 내용이 기억이 나지 않는다.

암특 늑향 번역할 때는 저 옵션으로 했었고, import시 오류가 있어서 쓰지 않았던 거로 기억한다.

 

Parser_UMDcpp2txt (https://disk.yandex.ru/d/RnWCiP4j1umm3g)

global-metadata.dat 텍스트 export 및 import를 위한 파서

 

 

 

6. UnityText2 (https://yadi.sk/d/BPX07VulskWJ5)

추출한 Monobehaviour 파일 내 대사 검색 및 수정에 용이하다.

좌측 하단 C를 눌러 어느 문자 범위 내에서 대사를 검색할지 지정한 후,

파일을 불러오면 위와 같이 보이게 된다.

왼쪽 Options를 적절히 활용하면 알맞은 형식의 csv 파일로 export를 하여 손쉬운 수정/삽입이 가능하다.

 

Search Options

-Search Depth (하위 디렉토리의 수)

-Max File Size (최대 파일 크기 -> #File Size Limit#이 뜨며 대사가 나타나지 않을 때 사용)

 

Scan Options

-Big Endian (바이트 순서)

-Substring Length (x번째 부분마다 문자열 검사)

-Frequency (substring Length 관련, 문자열 검사에 사용되는 최대 단계 값.)

-Min String Size (최소 문자열 크기 -> 이보다 작은 문자열은 검사 x. 바이트 기준)

-Max String Size (최대 문자열 크기 -> 이보다 큰 문자열은 검사 x. 바이트 기준)

-Printable Instead of Ranges (문자 범위를 "인쇄 가능한 모든 문자"로 재정의함.)

-Skip Without Letter (substring length 관련, 이를 초과하지 않고 문자도 포함되어 있지 않다면 무시함.)

-Simple Check (substring Length 관련, 이와 길이가 같은 첫번째 문자(문자열의 시작부분)만 스캔함.)

-Runtime Filter (필터링된 행을 최종 결과에 포함 시킬지 말지 여부같음.)

 

Csv Export Options

-External Bin Data (binary data부분이 별도의 파일에 저장되므로, csv파일이 깔끔해지며 크기가 줄어든다.)

-Esc-Sequences (엔터를 \n \r \t \\와 같은 escape sequences 문자로 대체. export/import 모두 적용)

-Index Column (csv파일에 1, 2, 3, 4...와 같은 열을 추가함.)

-Multicolumn Mode (보통 지역화가 많이 되어 있는 게임에 사용. 문자열 사이에 데이터가 없다면 그것도 열로 내보냄.)

  -Assume Array Length (데이터를 분석해서 비어있는 문자열 배열 길이를 식별함. 100을 초과할 수 없음.)

 

근데 대부분 Max File Size랑 Esc-Sequences만 알면 된다 ㅋㅋ

타카기 VR의 경우 이 툴을 이용해 한글화작업을 하였다.

 

 

 

7. ILSpy+Reflexil

dll 파일 내부를 뜯어보고, 수정하기 위해 사용된다.

ilasm과 ildasm을 통한 dll파일 수정이 가능하긴 하나

ILSpy에 Reflexil을 사용하는게 훨씬 편하다.

 

 

 

9. HxD, 010Editor, wxMEdit

셋 다 hex edit를 위한 툴이다.

HxD는 초보자가 쓰기에 깔끔하고 편리하며

010 edit는 강력한 확장성 및 활용성때문에 적응한다면 이것만큼 편한게 없다고 한다. 단점이 있는데 30일 제한이 걸려있어서, 30일마다 재설치를 해 줘야 계속 무료로 사용할 수 있다.

wxMEdit는 지원하는 인코딩이 굉장히 많아서, UTF-32LE같은 일반 hex editor로 수정하기 힘든 것들을 수정하기 편리하다.