brunch

You can make anything
by writing

- C.S.Lewis -

by 박상현 Sep 23. 2016

유니티로 다국어 지원해보자

유니티로 다국어를 지원하기 위한 방법은 총 3가지가 있다.

1. 모든 국가 언어를 noto sans로 처리한다.

2. 모든 국가 언어를 지원하는 폰트를 가진 퍼블리셔와 계약하여 그 폰트를 사용한다.

3. 각 나라에 맞는 폰트를 일일이 찾아서 사용하며 프로그래머 분들과 열심히 만든다.



일단 유니티에 대해 알아보자

UI 시스템 자체가 아직 퀄리티가 떨어진다. (만들어진지도 얼마 안됐다.)

시스템 폰트(디바이스 자체 폰트)를 불러와서 사용하면 무겁다. 

같은 라벨에 다른 폰트를 적용하여 글을 쓰면 위치 및 사이즈 차이가 심하다. (진짜 심각하다.)

볼드, 이텔릭 같은 효과 역시 퀄리티가 떨어져 따로 만들어 사용해야 할 수준이다.


다국어 시스템 만드는 것은 생각보다 간단하다. 해당 국가나 언어에 맞게 폰트만 교체해주면 되는데 같은 라벨에 다른 폰트를 적용하여 글을 쓰면 위치 및 사이즈 차이가 심각하게 다르게 되어 다른 폰트를 사용할 엄두가 나질 않는다. (원래 폰트는 모두 다르게 생겼지만 이건 심해도 너무 심하다.) 프로그래머분들과 해결하면 되지만 그곳에 시간과 돈을 투자하는 것보다 다국어가 가능한 폰트를 사용하는 편을 더 선호하는 것이 현실이다. 디자인의 끝은 폰트인데...


noto sans

위와 같은 이유에서 개발사들이 가장 많이 사용하는 폰트는 noto sans이다. (이전에는 어떻게 했는지... 그 고생만 생각하면...) 구글과 어도비에 아주 고마움을 느끼는 부분이지만 게임에 잘 어울리는 폰트는 아니다. 어쩔 수 없이 사용하는 폰트이니 다국어를 지원해야 할 것 같은 뉘앙스를 풍긴다면 생각 말고 사용하자.


경량화

noto sans를 유니티에 그대로 탑재하여 사용하려 하면 가장 큰 문제에 봉착하는 것이 용량 문제이다. 게임이 빌드되어 나오는 용량은 50Mb 미만이어야 하는데 그 폰트를 그대로 탑재하면 50Mb는 어림도 없거니와 따로 패치로 받으려 한다면 이것저것 일이 늘어나고 라이브 후에 고생이란 고생만 하게 된다. 


폰트 용량이 왜 이렇게 무거운지 한글을 예를 들어 알아보자. 한글은 유니코드 글자 수는 11,172자이지만 ks코드의 글자 수는 2,350자일 뿐이며 2,350자만 있으면 글을 표현하는 것에는 아무런 문제가 없다는 것이다. 중국어 간번체나 일본어 역시 2만자 가까이 되는 힌자를 모두 사용하는 것이 아니고 나라에서 지정해주는 글자들이 존재한다. 즉, 사용되지도 않는 불필요한 글자들을 제거하여 용량을 줄이는 것이 폰트 경량화이다. 이 작업을 하고 나면 빌드에 폰트를 탑재할 수 있는 수준의 용량으로 줄어들게 된다.(한글 하나가 400kb도 안된다.)


경량화 프로그램 링크

http://opentype.jp/subsetfontmk.htm

자세한 내용은 정리 잘되어 있는 스포카 디자인 팀의 글을 꼭 읽고 따라 하자.  

https://spoqa.github.io/2015/10/14/making-spoqa-han-sans.html


각 언어별 필수 글자들 모음 (몇 년 전에 만들어 둔 것이라 빠진 글자는 추가해서 사용하자) 

한국어 

중국어 간체

중국어 번체

일본어


마무리 정리

1. 유니티는 폰트 사용하기 좋지 않은 환경이다.

2. 다국어를 지원한다면 noto sans를 사용하자.

3. 꼭 경량화하자.




매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari
;