Harvest Moon The Winds of Anthos
한글화 예정이기에 작성하는 글이 아닌, 폰트 교체 설명 링크용 글입니다.
1. 목표 폰트 탐색
폰트가 Harvest Moon The Winds of Anthos_Data/StreamingAssets/AssetBundle/Windows/font 폴더에 en이라는 에셋번들에 들어있다는 정보를 미리 얻은 상태로 시작했다.
검증하기 위해, 낙서를 한 다음 게임을 켜보자.
해당 번들을 수정하는 것이 정답으로 보인다.
2. 폰트 제작
pointSize 24, padding 5로 폰트를 제작하자.
atlasWidth, atlasHeight가 1024로 매우 작은 걸 보니, material파일 수정을 해야 할 수도 있어보인다.
내가 사용하는 문자 세트는 3864글자나 되기 때문에, 2048x2048로 제작하였다.
3. 폰트 이식
FaceInfo 부분부터 최하단 부분까지를 이식하고, pathid 및 fileid를 맞춰준다.
기본적인 작업이 모두 끝났으니, 이제 구조가 다른지 검사해보자.
구조 검사하는 방법은 그냥 노가다라고 보면 된다.
우선, Notepad++를 이용해 왼쪽에 원본 폰트의 Monobehaviour dump를, 오른쪽엔 내가 작업한 폰트의 Monobehaviour dump를 열어둔 후,
Notepad++ 상단 메뉴 - 언어 - YAML을 선택하여 트리 구조로 접었다, 폈다 할 수 있게 만든 다음,
메모장을 켜서 이걸 일종의 자 혹은 가림막 느낌으로 사용하며 양쪽의 구조가 같은지 검사하면 된다.
위 스샷 기준으로 보자면 m_FaceIndex부분이 양쪽에 동일하게 있으니 0 PPtr<$Font> m_SourceFontFile 부분까진 모두 접어버리면 된다.
접은 다음, 다시 검사해보자.
왼쪽 메모장 바로 위에 m_MeanLine이 있다. 그런데 오른쪽 메모장 바로 위엔 m_CapLine이 있다.
뭔가 이상한 항목이 내가 만든 폰트에 추가되어있다는 것이다.
자세히 살펴보면, m_UnitsPerEM이 추가되어 있는걸 확인할 수 있다. 이걸 지워서 원본과 동일하게 맞추자.
이런 Array 형태의 데이터는 대부분 문제가 없으니, 일단 그냥 접어버리자.
검사를 마쳤다.
결과적으로, "0 int m_UnitsPerEM = 1000" 부분만 차이가 났었다.
수정이 완료된 오른쪽 파일을 import dump 하자.
또한, 폰트 텍스쳐도 import하자.
4. 확인
제대로 변경된 것을 볼 수 있다.
구분하기 어려울까봐 한국어로 변경도 해보았다.