Billiard/TextRender2017. 10. 31. 17:08

언리얼 엔진의 TextRender를 이용할 때 한글이 깨지는 문제 해결


블루프린트 액터에 TextRender 컴포넌트를 추가해서 영어를 출력하면 다음과 같이 아무런 문제가 없는 것을 확인할 수 있다. 그러나 한글을 출력하기 위해 입력하면 제대로 한글이 출력되지 않는 문제가 발생한다. 


TextRender 에 영어를 출력하면 문제가 없다



TextRender를 통해 출력한 한글이 깨지는 현상



언리얼 엔진(4.16.3)에서 위의 문제를 해결하기 위한 방법은 로컬 시스템에서 지원하는 폰트를 등록하고 사용하면 된다. 

좀더 구체적으로 설명하자면 언리얼 컨텐트 뷰에서 폰트를 새로 생성하여 현재 시스템에서 지원하는 폰트를 찾아 등록하고 생성된 폰트를 TextRender에 설정하여 사용하면 된다.


새로운 폰트 생성

컨텐트 브라우저에서 마우스 우측을 누르고 [User Interface > 폰트] 를 선택하고 이름을 Font_KO 등으로 지정한다



새로 생성된 Font_KO를 더블클릭하여 에디터를 열고 [디테일]뷰 / Font / Font Chche Type 항목에서 Runtime 대신 Offline 으로 설정하면 다음과 같이 묻는 창이 뜬다



글꼴 선택 창에서 지원되는 한글 글꼴과 스타일, 크기를 선택하고 [확인] 버튼을 누른다



아래의 그림에서 [디테일]뷰/Font/Font Cache Type 항목이 Offline으로 변경된 것을 확인할 수 있다. 

아래의 창에서 [디테일/Import Options/Chars] 항목에 표준한글 문자를 복사해 넣으면 된다. 한글 표준문자는 아래에 첨부된 텍스트파일에 저장되어 있으므로 다운로드하여 메모장으로 열고 모두 복사하여 Chars항목에 붙여 넣으면 된다

KS-1001.txt

아울러 Texture Page Width, Texture Page Max Height 항목도 1024로 변경한다



폰트 에디터의 툴바에서 [애셋> Font_KO 리임포트] 항목을 선택하고 [저장] 을 누른다



TextRender 컴포넌트에 새로운 폰트 설정

폰트 에디터를 닫고 언리얼 레벨 에디터로 이동하여 TextRender 를 선택하고 [디테일]뷰 / Text / Font 항목에서 Font_KO를 선택한다



텍스트 머티리얼도 변경해야 하므로

위의 화면에서 Font 항목 위의 Text Material 항목에 있는 돋보기 아이콘을 클릭하고 컨텐뷰에 있는 텍스트 머티리얼을 찾아 더블클릭하여 머티리얼 에디터를 연다.



위의 화면에서 Font 노드의 R 핀에 Lerp노드의 Alpha 핀이 연결되어 있는데 아래의 그림과 같이 Font 노드의 Alpha 핀이 Lerp의 Alpha 핀에 연결되도록 변경하고 Font 노드가 선택된 상태에서 [디테일]뷰 / Material Expression Font Sample / Font] 항목에서 앞서 생성된 Font_KO를 선택하고 툴바에서 저장 버튼을 누른다



TextRender 에 한글출력 테스트

머티리얼 에디터를 닫고 언리얼 레벨 에디터로 돌아가서 TextRender 컴포넌트에 한글이 제대로 출력되는지 확인한다



게임을 실행했을 때도 제대로 한글이 출력되는지 확인한다



보다 실용적인 예제로, 마우스로 액터를 클릭할 때 클릭된 횟수를 TextRender에 출력하는 블루프린트를 작성해본다. 아울러 TextRender가 카메라를 향하여 항상 정면을 보이도록 회전하게 한 내용이다



Posted by cwisky