본문 바로가기

프로그래밍/libGDX

[libGDX] libGDX에서 한글 폰트 사용하기

TTF 폰트 파일을 이용하여 런타임에 바로 폰트를 생성하고 싶다면 다음 링크를 참조해 주세요. -> LibGDX에서 freetype-font 사용하기


LibGDX에서 게임을 만들다 보면 한번쯤 생각하게 되는것은 폰트이다. LibGDX 에서 폰트를 보여줄 수 있는 방법은 두가지가 있다. 주로 쓰는 방식은 BitmapFont를 직접 불러와서 폰트를 나타내는 방법이고 하나는 LibGDX Extension에 있는 gdx-stb-truetype를 이용하여 트루타입 폰트를 BitmapFont로 바꾸어 나타내는 방식이다. 후자에 대한 방법은 (http://stackoverflow.com/questions/9486446/truetype-fonts-in-libgdx)를 참고하기 바란다.

LibGDX에서는 BitmapFont 제작 툴인 Hiero를 배포하고 있다.(http://code.google.com/p/libgdx/wiki/Hiero) 이 툴을 이용하면 원하는 폰트를 쉽게 만들 수 있다.

다음은 Hiero 실행 화면이다. 좌측에서는 원하는 글꼴을 선택할 수 있고, 중앙에는 출력할 글자들을 써 넣을 수 있다. 오른쪽에는 글자 효과들을 조정할 수 있다. 효과들을 잘 조절 하기면 하면 예쁜 폰트를 만들어 낼 수 있다.


그러면 잠시 예술 혼을 발휘해서 나름 예뻐 보이는 폰트를 만들어 보도록 하겠다.

몇 가지 참고를 하자면 Font가 렌더링 될때는 Effect가 위에서 부터 적용되기 시작된다. 즉, Shadow 효과가 Color 아래쪽에 있으면 그림자같은 효과가 나오지 않게 된다. 그리고 Color와 Gradient 같이 쓰게 되면 폰트가 약간 일그러져 안 예뻐 보일 수도 있다. 몇번 하다보면 알게 될 것이다.

이렇게 만들어진 폰트를 왼쪽 상단의 File를 눌러 hiero파일로 저장 할 수 있고, BitmapFont 파일로 export할 수 있다. 하지만 처음 상태로 export를 하게 되면 영어만 BitmapFont로 만들어 졌기 때문에 한글출력이 되지 않을 것이다. SampleText에 한글을 추가해 주자. 한글의 모든 글자를 추가해야 한다. 추가할 한글 글자들은 첨부된 euc-kr.txt 파일에 있는 글자들을 복붙하면 될 것이다.

euc-kr.txt

그리고 한가지 더 주의해야 할 것이 있다. 글자가 렌더링되는 부분에 Glyph cache라는 것이 보일 것이다. 여기서는 export될 png파일의 크기를 지정해 줄 수 있다. LibGDX에서 BitmapFont 파일을 불러와서 사용했을때 문제가 되는 부분은 png파일이 여러개일 경우였다. png크기를 최대로 지정해서 한 페이지를 넘어가지 않도록 해야 한다.

이제 BitmapFont 파일로 export 해주자.

이제 이렇게 만들어진 BitmapFont 파일을 LibGDX에서 사용하면 예쁘게 한글 폰트가 출력되는 것을 확인할 수 있다.

 

이제 예쁜 한글 폰트를 사용할 수 있게 되었다! LibGDX 만세!


FreeType Font를 사용할 수 있는 방법을 새로 포스팅 하였다. ttf나 otf폰트 등을 이용하고 싶으면 링크를 확인해 보기 바란다.

LibGDX에서 freetype-font 사용하기