이문회우

2022.12.06. 유니티 번역 본문

2022.12.06. 유니티 번역

Koesob 2022. 12. 6. 18:05

유니티 Text Mesh Pro에는 fallback font라는 기능이 있다.

만일 현재 문자가 해당 폰트에 없다면, fallback font를 살펴보고 거기에서 동작하는 폰트를 가져오는 식이다.

예비 폰트라고도 볼 수 있다.

 

이 점을 응용하면 번역과 비슷한 기능을 구현할 수 있다.

예를 들어, 순수 영어 폰트에는 한글이 없기 때문에 한국어 폰트를 fallback font에 넣어두면 한글이 들어왔을 때 해당 폰트로 바뀌게 된다.

여기에 이어 일본어 폰트라든지 중국어 폰트 등도 fallback에 둔다면 문자가 바뀔 때마다 적절한 폰트로 바뀌게 된다.

 

하지만 이런 편리함 + 우회하는 구현에는 늘 그렇듯 함정이 있다.

바로 숫자나 기호.

어쨋든 해당 폰트 내에 없을 때 다른 폰트를 찾는 식이기 때문에 숫자와 기호 같이 기본적으로 폰트에 들어가버리는 내용에 대해서는 폰트 전환이 이뤄지지 않는다.

즉 '12345 + 한국어'가 번역이 이뤄진다면,

앞에 있는 12345 +는 영어 폰트로, 뒤에 '한국어'는 한국어 폰트로 변경된다.

물론, 타협을 봐서 그냥 둘 수도 있지만

자연스러움을 위해 기획자 분이 요구를 한다면...

 

그렇다.

아니, 사실 아직 기획자분께서 확답을 주시진 않았지만 이 상황이 벌어지자 직감할 수 있었다. x됐다.

이제 더 이상 fallback font를 통한 야매 구현은 통하지 않을거란걸...


다행인 점은 현재 구현상 번역이 필요한 모든 텍스트를 추적하고 있단 점이다.

신행아 사랑한다.

그런 점에서 번역이 실행될 때 폰트도 같이 바꾸도록 바꾸면 되긴 한다.

아마도.

 

그 밖에 fallback을 활용할 때 발생할 수 있는 함정 중 하나는 한글 폰트의 경우 대부분 알파벳을 기본적으로 포함하고 있기 때문에 영어 폰트로의 전환이 안 일어날 수 있단 점이다.

만일 현재 구현을 (기본)한국어 폰트 / fallback으로 외국어 폰트로 설정하고 있었다면,

게임 속에 들어간 모든 TextMeshPro를 모두 바꾸면 된다.

Prefab으로 런타임 중에 실행되는 애들도 전부^^

내가 지금 그렇다. xxxxxxxx

 

'' 카테고리의 다른 글

파운데이션 시리즈 1~3  (3) 2023.01.23
2022년 정산  (1) 2022.12.31
2022.11.06. 데프트 성불  (1) 2022.11.07
수련회 메타  (0) 2022.10.31
메이플스토리 월드 스페셜 굿즈 패키지  (1) 2022.10.31