[유니티6] TMP_TEXT(TextMesh Pro) 폰트(ttf) 설정하기 (한글 깨짐)
유니티에서 기본적으로 제공하는 LiberationSans 폰트는 한글을 지원하지 않는다. (한글 입력하면 네모 모양만 뜸)
거기다 이쁘지 않은 폰트들을 게임에 적용하면 게임도 왠지 구려(?)보이는 효과를 얻을 수 있다.
이쁜 폰트를 다운 받아 나의 게임을 좀 더 그럴싸하게 꾸며보자!
<1. 이쁜 폰트 파일(.ttf) 받기>
> 구글에 대충 '이쁜 폰트' 같은 검색어로 치면 여러 가지 폰트들이 나온다. 본인은 이것저것 찾아보다가 아래의 폰트(Neo둥근모 Pro) 가 괜찮은 거 같아서 여기 있는 폰트 파일을 다운 받았다.
어 이거 괜찮네? 싶으면 https://neodgm.dalgona.dev/ 여기서 들어가서 보셈.
폰트들마다 License가 다 다를 수 있는데, 이 폰트의 경우 SIL Open Font License 1.1 를 기반으로 하고 있어 사용은 무료이나 아래의 같은 조건이 있다.
> 너무 Neo둥근모 홍보하는 느낌인데, 아무튼 본인이 사용하려고 하는 폰트가 무료인지, 라이센스와 주의 사항(?)등은 어떻게 되는지 정도는 확인해 줘야 추후에 불미스러운 일이 발생하지 않을 수 있다.
<2.Font Asset 설정(SDF 파일 생성)>
> .ttf 파일을 다운 받았으면 유니티 Assets 밑의 아무 폴더에 집어 넣도록 하자. 나는 Fonts 라는 폴더를 만들어서 하기와 같이 넣었다.
> 이미 생성된 SDF 파일들도 있는데, 저 폰트들이 생각보다 별로여서 바꾸려고 하는 중이다.
> 폰트를 넣었으면, 폰트를 사용하기 위해서는 SDF 파일을 만들어야 한다. (Font Asset을 만들어야 댐.)
-> Window -> TextMeshPro -> Font Asset Creator 를 눌러준다.
> 옵션들에 대한 간략한 설명은 아래와 같다.
1. Source Font
- 사용하려는 TTF/OTF 폰트 파일 (예: NeoDunggeunmoPro-Regular)
2. Font Face
- 해당 폰트가 여러 굵기/스타일을 지원하면 여기서 선택
3. Sampling Point Size
- 기본값 Auto Sizing이면 대부분 무난 (커스텀 크기 필요 시 숫자로 지정)
4. Padding
- 글자 주위에 남기는 여백(shadow 효과)
5. Packing Method
- Optimum :유니티가 알아서 최적으로 폰트 만듬 (정말~~ 내 폰트가 세부적으로 아주 디테일하게 잘 표현되면 좋겠다 할 때 쓰면 됨.) -> 단점은 생성하는데 시간이 꽤 ~~~~~~~~~~~~~ 오래 걸린다.
- Fast : 빠르게 만드는 것인데, 일반적인 게임이라면 그냥 Fast 써도 무난. (본인은 Fast 씀.)
6. Atlas Resolution
- 폰트 텍스처(아틀라스) 크기
(2048x2048 권장, 대규모 한글/일본어면 넉넉하게 4096x4096까지 고려) 쓰는 글자가 많지 않으면 1024x1024도 괜춘.
7. Character Set
- ASCII: 아스키코드 문자들
- Custom Characters: 직접 입력한 문자만 포함
- Unicode Range: 한글, 일본어 등 특정 범위 지정
8. Render Mode
- SDFAA (Signed Distance Field with Anti-Aliasing) 가 제일 무난하다고 함.
9. Get Font Features
- Ligature(합자) 등 고급 기능. 일반적으로 잘 사용하지 않는다고 한다.
10. Generate Font Atlas
- 위 설정 기반으로 아틀라스 생성.
* 대부분의 한글을 쓰려면 Atlas Resoultion을 4096 * 4096 과 같이 넉넉하게 설정해라. (반말ㅈㅅ)
> Character Set을 정했으면, Character Sequence를 통해 어떤 문자들을 생성할지 정해줘야 한다.
> 나는 Character Set을 Custom Range로 설정하였기에, Sequence에도 위와 같이 넣었다.
32-126,44032-55203,12593-12643,8200-9900 는 아래와 같은 것을 의미한다.
1. 영어 범위 : 32-126
2. 한글 범위 : 44032-55203
3. 한글 자모 : 12593-12643
4. 특수 문자 : 8200-9900
-> 더 필요한 게 있으면 쉼표로 구분하여 0000-0000 이런식으로 넣어주면 됨.
> 다 설정하였으면 아래에 있는 'Generate Font Atlas' 를 눌러주자.
> 다 되면 아래와 같이 나온다.
>ㄷㄷ; Save를 눌러서 저장해준다.
<3. 폰트 사용하기>
> Text(TMP) -> Inpsection 창을 열어 조금 내리다 보면 Font Asset 이라고 보인다. 오른쪽 동그라미를 클릭.
> 화면이 캡쳐가 안돼서 그런데, 저기서 방금 생성한 SDF 파일을 선택하면 된다.
> 폰트를 비교해봤는데, 유니티 제공폰트는 바보가 ㅁㅁ로 나오고, 나머지 두 개는 정상적으로 나온다. 근데 근데 바보라도 Neo둥근체가 더 예쁜 것 같다. 좀 더 게임 같은 느낌이 드는 것 같다. 이걸 프로젝트에 적용해보았다.
> Notnsan을 썼을 때는 뭔가 웹 페이지 같이 밋밋해 보였는데, Neo둥근pro를 쓰니 확실히 게임 같은 느낌이 난다.
아무튼 이런 식으로 폰트를 바꾸면 된다!