한글패치 관련 짧은 글

UABEA로 유니티 게임 폰트 교체 (일반 폰트)

눈백로 2022. 2. 24. 02:50

이메일로 유니티 게임의 일반 폰트 교체 문의가 와서 작성한다.

SDF 폰트는 교체를 할 수 있으나, 일반 폰트는 교체하기가 어렵다고 한다.

게임의 버전이 높아 UnityEX를 통한 교체가 어렵다고 한다.

하지만 UnityEX를 사용하지 않아도 UABEA만으로 간단하게 폰트 교체를 할 수 있다.

일단 부딪혀보고, 경험상 먹혔던 방법을 게시글로 작성하는 것이라 불필요한 과정이 많이 있을 수 있다.

 

 

예시 게임) Squirm

 

게임의 폰트이다. SquimFont 및 EMULOGIC이며, resources.assets에 들어있다.

 

 

UABEA를 통해 dump를 떠보면 위 사진처럼 나온다.

일단 덮어두고 폰트용 게임을 빌드해보자.

 

 

폰트를 Project view에 드랍한다.

 

 

Add Component 클릭 후 Mesh - Text Mesh 클릭

 

 

대충 설정하고 나서 좌측 부분의 GUI Text를 더블클릭하자.

* 참고) https://docs.unity3d.com/Manual/class-TextMesh.html

 

나타났다

 

 

실행해보니 암튼 나온다.

안 나와도 상관없으니 일단 게임을 빌드하고,

이제 만든 폰트를 UABEA로 dump하자.

 

 

잘 나왔다. 근데 더럽게 길다.

어차피 Fold All 기능을 이용하여 접을 거니 상관없긴 하다.

접어보면 구조가 같다는 걸 알 수 있다.

 

 

VS Code로 열어서 선택한 부분을 원본과 교체하고, m_FontData를 제외한 부분을 원래 수치로 바꾼다.

* 3줄을 선택한 이유는 한 줄만 선택했을 경우 제대로 복사가 되지 않아서이고,

  이를 원본 수치로 다시 되돌리는 이유는 m_FontData 부분만 교체하고 싶기 때문이다.

  = 결과적으로 m_FontData부분만 교체됨

 

FontData만 교체하는 것이기 때문에 따로 PathID나 FileID를 바꿀 필요는 없다.

저장 후 Import Dump를 눌러 불러오고, save를 눌러 resource.assets 파일을 저장한 후에 원본과 교체하자.

 

 

잘 나온다.

1 2 3 4 5 6 7 8 9 10 ··· 47