텍스트메시프로(TextMeshPro) 사용시, 한글 깨짐 현상 대처 방법
텍스트 매쉬 프로를 사용하다 보면
한글을 입력해야 하는 경우가 반드시 오게되는데
그냥 TMP에 한글을 입력하면
다음과 같이
요렇게 한글이 나오는 것을 확인 할 수 있습니다.
이럴 경우에는
Window - TextMeshPro- Font AssetCreater 창을 열어줍니다.
일단 원하는 폰트를 하나 다운 받아줍니다.
그리고 SourceFontFile에 사용할 폰트를 넣어주고
Character Set -> ASCII
Render Mode -> SDF
로 설정하고 GenerateFontAtlas를 눌러주면
위와 같이 폰트가 만들어진 것을 확인 할 수 있습니다.
그리고 만들어진 텍스트를 넣어도 바뀐게 없는 것을 보실수있습니다!
이담음 해주어야할 것은 해당 Font의 인스펙터 창으로 이동해서
다음과 같이 Atlas PopulationMode를 Static -> Dynamic 으로 변경해주면
비활성화 되있던 설정창들이 열리고 PointSize를 90정도로 맞춰주고
폰트가 깨지는 것을 막기 위해서 Atlas Width/Hight를 높게 설정해주고
Apply 버튼을 누르면!
한글이 잘나오는것을 확인 할 수 있습니다
참고: https://ssscool.tistory.com/454
추가 내용
최종 설정 추천
Sampling Point Size: 90~120
Padding: 10~15Atlas Width/Height: 2048~4096
Atlas Population Mode: 필요에 따라 Dynamic OS 또는 Static
Sampling Point Size 조정
이 값이 너무 크면 작은 텍스트에서 SDF 해상도가 제대로 작동하지 않을 수 있습니다.
- Sampling Point Size 값을 90~120 사이로 줄이는 것이 좋습니다. 현재 값이 너무 커서 작은 글자에서 문제가 발생할 가능성이 있습니다.
- 적정 범위는 폰트 크기에 따라 다르지만, 작은 크기에서 안정적인 렌더링을 위해 위 범위로 설정합니다.
Padding 값 증가
이 값이 작으면 작은 텍스트를 렌더링할 때 글자가 깨지거나 잘못된 렌더링이 발생할 수 있습니다.
- Padding 값을 현재 5에서 10~15로 늘려보세요. 이는 텍스처 가장자리에서 텍스트 렌더링 아티팩트를 방지하는 데 도움을 줍니다.
Atlas Texture 크기 조정
- 현재 8192 x 8192는 매우 큰 크기입니다. Atlas Texture 크기를 줄여 4096 x 4096 또는 2048 x 2048로 조정해 보세요. 큰 크기는 렌더링 리소스 낭비를 유발할 수 있습니다.
Atlas Population Mode 확인
Atlas Width와 Atlas Height가 각각 8192 x 8192로 설정되어 있습니다. 이 크기는 매우 큰 해상도로, 대량의 글리프를 처리하기에 적합합니다. 하지만 일반적인 프로젝트에서는 이 정도 크기가 필요하지 않을 수 있으며, 작은 폰트에서 SDF 데이터가 제대로 렌더링되지 않을 수도 있습니다.
- Dynamic OS 모드는 글리프를 동적으로 추가합니다. 만약 프로젝트에서 필요한 글리프가 많지 않다면, 정적(Static) 아틀라스를 생성하는 것도 좋습니다:
- Atlas Population Mode를 Static으로 변경하고 필요한 글리프 세트를 미리 로드합니다.
글리프가 필요할 때 동적으로 추가되므로 대체로 효율적이지만, 특정 조건에서 문제가 발생할 수 있습니다.
Font Asset 재생성
- 위의 설정을 조정한 뒤, Update Atlas Texture 버튼을 눌러 새로 고침합니다.
- 문제가 지속되면 Font Asset Creator를 사용해 폰트를 다시 생성합니다:
- TextMeshPro > Font Asset Creator로 이동.
- 새 Sampling Point Size와 Padding 값을 적용한 후 새 Font Asset을 생성합니다.