TODAY : 0 / TOTAL : 742,707

[ Unity ] 유니티 로컬라이징, 태국어 폰트 적용 문제

  • Share this:
반응형
태국어라곤 사와디캅( 정작 태국어로 어떻게 적는지도 모름 ) 밖에 모르던 저에게 태국어 로컬라이징 작업이 떨어졌습니다.
이전부터 게임 한글패치 작업을 좀 해본 경험이 있어서 관련 툴 사용법과 인코딩 관련 문제는 쉽게 해결했습니다만...
단어조차 모르는 태국어는... 다루기엔 너무나도 힘든 작업이였습니다. ㅠㅠ 

ㅁ 첨자의 중복 현상
 -  태국쪽에서 적용해달라고 준 폰트 파일은 Tahoma 폰트였습니다.
 이걸 비트맵 텍스쳐로 만들어서 NGUI Font Maker에 붙여버리니 다음과 같은 현상이 발생하였습니다.

[사진 1]의 빨간원을 보시면...
 

[사진 1] 상이한 출력 결과

[1.Top] 의 첨자 부분과 [2.ABOVE] 첨자 부분이 중복되서 출력된 것을 볼 수 있습니다.
이부분을 해결하기 위해 Font Creator 와 FontForge 등 갖가지 툴을 써가며 glyph를 임의로 조절해가며 간격을 맞춰보았지만, 답이 나오지 않아서... 결국 포기했습니다.
= 3= ;;


한글처럼 모든 문자조합의 경우의 수대로 glyph를 새로 추가해서 만들어넣는..... 정신나간 짓(?)도 생각 했으나, 일찍이 뻘짓임을 깨닫고 그만 뒀습니다. ;;;;;;;

여러번의 구글링 끝에  GPOS / GSUB 에 대한 충분한 이해와 유니코드 맵핑에 대해서 아신다면, 코드를 통해서 글자를 바꿔치기하는 방식으로 만들 수 있다...... 는 사실을 알아내었지만, 아직 그런 능력이 안되므로. . .

 다른 폰트를 찾아보았습니다. ㅠ

#### 구글링을 통해 찾은 태국어 첨자 중복안되는 폰트들 ( True Type ) ####

Garuda
...UPC계열 ( LilyUPC, CordiaUPC... 등등)
Kinnari
Norasi
Loma
Arial Unicode MS
* 태국어 폰트 자료들은 여기로 가보시면 확인할 수 있습니다. 그리고, 여기도 있습니다.



ㅁ 첨자가 떨어져서 출력되는 현상
위 폰트들을 사용하면 첨자부분이 중복되는 현상은 해결할수 있지만....
이번엔 다른 문제에 봉착하게 됩니다.


이렇게 나와야할 녀석들이....


이렇게 나옵니다... ㅠㅠ

파란색 사각형을 보시다시피 태국어 문자구조상 Top에 위치한 녀석이 보간되지 않고 그 위치 그대로 지키고 있습니다.
이걸 보간해주고 바꿔주는 것이 GSUB / GPOS 입니다. (간략히말하면 GSUB은 글자 대치, GPOS는 글자 위치...)
첨자들이 조합문자로 잘 연결되는거보면  GSUB / GPOS 정보가 누락된거 같진 않은데... 왜 저 부분 보간해주는 부분만 저런지 모르겠습니다. ㅠㅠ
(메모장이나 워드 상에선 재대로 출력되나, 유니티에선 안되네요.. 그래서 유니티나 NGUI 문젠가 했는데, 해당 폰트들로 스마트폰 디바이스에 적용시켜도 똑같은 문제가 발생하더라구요. NGUI 최신으로 다이나믹 폰트로 사용해도 같은 결과!
뭐 애초에 유니티가 다이나믹 폰트에 많은 문제가 있단 소릴 듣긴 했습니다만... ㅠㅠ )

사실 해당 현상은 태국어를 읽는데 크게 지장을 주진 않습니다.
그런데 왠지 한글 "ㅎ" 자를 쓰는데 "ㅇ"부분만 밑으로 쭉 뺀 느낌 이랄까요??

그래서 이 문제를 해결하고자...!!  혹시...!! 
또 다른 폰트가 있을것 같아 찾아보았지만....
다들 똑같은 현상이 나타나더군요.

갖가지 포럼과 카페 등에도 자문을 구해보았지만, 속시원히 해결해준 곳이 한 곳도 없어서, 결국 첨자 재배열은 포기하고 떨어져서 출력되는 상태로 유지하기로 했습니다.
 (사실 태국 사이트들과 마켓을 돌아다녀본 결과, 서비스 중인 많은 어플에서도 첨자가 떨어져있는 상태로 나오는 현상이 많이 보이길래 일단은 지금 완성한 폰트들로 진행하기로.... = 3 =  귀찮아서 그런건 절대 아닙니다.)


뭐 사실 해당 포스팅도 속시원히 해결해줄 만한 내용은 없습니다.
그냥 혼자 작업하면서 삽질해온 과정(?)을 간략하게 적어 놓은 것이고, 혹시나 나중에 똑같은 문제로 고생하시는분들 계시면 참고하시라고 적어둔 글입니다. ㅠㅠ




-- 추가 ( 2018. 1. 21 )  --


https://github.com/SaladLab/Unity3D.ThaiFontAdjuster


유니티 폰트 렌더링 시스템은 GSUB / GPOS 정보를 보간해주는 기능이 없습니다.

이를 대체할수 있는 소스를 찾아 공유해드립니다.
태국어 로컬라이징 하시는분들 참고하세요.

ㅁ 참고 사이트 링크 

- [링크]동일한 문제로 유니티 포럼에 올라온 글
- [링크]태국어 로컬라이징 관련 추가 정보
- [링크]OpenType 및 GPOS/GSUB 정보


 

Leave a Reply
Comments

혹시, 유니티 엔진으로 만든 게임에서 한글 폰트로 강제적으로 바꾸는 방법에 대해 알고 계신가요?
예를 들어, 일본어 폰트로 된 유니티 엔진인데, 여기서 한글 폰트를 출력시키는 방법이요.

개발중인 프로젝트 파일이 존재하는 상태라면 가능합니다.
NGUI 같은 경우엔 폰트가 담긴 Material 만 교체하면 됩니다.
하지만 질문하신 내용은 유니티로 빌드된 파일 후킹으로 교체하는 방법을 물어보시는것 같네요.
Assembly 까주는 툴을 이용해 코드 열어보면서 폰트관련 파일 호출 지점 유추까지는 가능할수 있겠으나, 순수 빌드된 파일만으로 리소스 교체는 불가능합니다.

Damien.Lee

2014.05.18 21:04 신고

답변 감사합니다 ^^

아.. 잘 보고 갑니다ㅠㅠ 태국어 빌드만 따로 뺄까 하는 충동이 계속 일어나네요

r35™

2020.09.26 19:04 신고

오래되어 기억이 가물가물합니다만, 이전에 첨자가 떨어진 폰트를 적용한채로 서비스를 진행하고, 태국측 퍼블리셔로부터 큰 문제 없다는 답변받았었습니다.
중복되서 출력되는 이슈만 해결하시면 서비스에 큰 문제는 없으실겁니다.

Damien.Lee

2020.11.02 21:41 신고

SEARCH

태그로 찾아보기