유니티

[유니티6] TMP_TEXT(TextMesh Pro) 폰트(ttf) 설정하기 (한글 깨짐)

yamaeking 2025. 4. 26. 11:42

유니티에서 기본적으로 제공하는 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' 를 눌러주자.

Generate Font Atlas 누르면 유니티가 열심히 뚝딱뚝딱 만들어줌

 

 

> 다 되면 아래와 같이 나온다.

>ㄷㄷ; Save를 눌러서 저장해준다.

 

 

<3. 폰트 사용하기>

 

 > Text(TMP) -> Inpsection 창을 열어 조금 내리다 보면 Font Asset 이라고 보인다. 오른쪽 동그라미를 클릭.

> 화면이 캡쳐가 안돼서 그런데, 저기서 방금 생성한 SDF 파일을 선택하면 된다.

 

 

> 폰트를 비교해봤는데, 유니티 제공폰트는 바보가 ㅁㅁ로 나오고, 나머지 두 개는 정상적으로 나온다. 근데 근데 바보라도 Neo둥근체가 더 예쁜 것 같다. 좀 더 게임 같은 느낌이 드는 것 같다. 이걸 프로젝트에 적용해보았다.

 

Notosan Regular
Neo둥근Pro

 

> Notnsan을 썼을 때는 뭔가 웹 페이지 같이 밋밋해 보였는데, Neo둥근pro를 쓰니 확실히 게임 같은 느낌이 난다.

 

아무튼 이런 식으로 폰트를 바꾸면 된다!