한글패치 관련 짧은 글들

유니티 게임 한글화 - assetbundle crc체크 우회

Snowyegret 2023. 4. 7. 14:53

유니티 게임을 한글화하다 보면
StreamingAssets 폴더 안에 있는 번들파일을 수정했을때 게임이 이상해지는 경우가 있다.
게임이 크래시나거나, 시작화면에서 멈춰있거나, 이상해지거나, 텍스트가 아닌 key값이 출력되거나, 수정이 안되거나... 증상은 다양한 것 같다.
이는 에셋의 CRC를 체크해서, catalog.json에 있는 CRC값과 일치하지 않을 경우 로드하지 않기 때문이다.
 
보통 모드로더 기본 기능이나 UnityExplorer같은 모드를 통해 UnityLog를 보면 관련 내용이 출력되는데, 
개인적으론 그렇게 직접 알아보기보단 그냥 의심되면 바로 catalog.json을 수정해버리는게 낫다.

 

또한 catalog.json이 아닌 catalog.bundle을 사용하는 경우도 있는데, 

해당 방법은 catalog.json 수정법 설명 이후 추가적으로 설명하겠다.

 

 

catalog.json 수정법


https://github.com/nesrak1/AddressablesTools/releases

 

Releases · nesrak1/AddressablesTools

tools for your addressables. Contribute to nesrak1/AddressablesTools development by creating an account on GitHub.

github.com

CRC 체크 우회엔 여러가지 방법이 있는데, 제일 쉬운 게 UABEA 개발자 nesrak1이 만든 툴을 이용하는 것이다.
 
 

위 툴을 다운받아서 압축을 풀고, catalog.json을 Example.exe가 있는 위치에 두자.
* 보통 catalog.json은 {게임이름}_Data/StreamingAssets/aa에 있다.
 

그 다음 그 폴더에서 cmd창을 연 후, 아래 명령어를 친다.

Example.exe patchcrc catalog.json

 
그러면 패치가 진행되고, 패치가 끝나면 catalog.json.patched 파일이 생긴다.

catalog.json 파일이 원본 파일이고,

catalog.json.patched가 수정된 파일이다.
이 파일의 이름을 catalog.json으로 바꿔서 게임의 원본 파일에 덮어씌우면 CRC 체크 우회가 된다.

 

 

 

* catalog.bundle 수정법

 

만약 catalog.json이 아닌 catalog.bundle이 있다면,

https://github.com/snowyegret23/AddressablesTools/releases/download/release/Example-windows.zip

위 링크에서 프로그램을 내려받아 압축을 푼 후,

catalog.json을 수정하는 방법과 동일하게 진행을 하되 catalog.json 대신 catalog.bundle 파일을 옮기고,

아래 명령어를 입력하면 수정이 진행된다.

Example.exe patchcrc catalog.bundle

 

결과물 중 catalog.bundle.old가 원본 파일 백업이고,

catalog.bundle가 수정 완료된 파일이다.

그대로 덮어씌우면 CRC체크 우회가 된다.