GameMaker는 TTF와 같은 os에 내장된 폰트는 지원하지 않는 것 같다.
게임에서 사용하는 폰트를 만들어서 넣어야 하는데, 게임이라는게 특성상
사용하는 폰트도 같이 만들기 때문이거나
공간을 절약할 방법을 궁리하기 때문인듯 하다.
폰트를 추가
일단 폰트 리소스를 추가 - 리소스트리 –> Fonts –> 'Create Font' 선태
기본 폰트 설정 화면
Name : 폰트 리소스 이름
Font : 사용할 폰트 선택
AntiAliasing : 앤티앨리아싱 처리
Size : 폰트 크기 설정, 이 크기에 해당하는 폰트로 텍스쳐에 비트맵 폰트를 만듧니다.
게임에서 쓰는 폰트는 12,14 보다는 커야 제대로 나오는 것 같다.
TextureGroup : 텍스쳐로 만든 비트맵 폰트를 저장할 텍스쳐 그룹.
Global Game Settings에 추가된 텍스쳐 그룹 중에 선택한다. 아직 잘 모르겠지만, 폰트는 크기가 클테니까 다른 텍스쳐그룹을 만들어서 그쪽으로 설정했다.
(A) 맨위의 텍스트 상자 : 'Hello World!!'는 샘플 표본 텍스트
(B) 왼쪽 아래 : 폰트에 추가할 유니코드 문자 코드표. 기본 32 ~ 127은 간단한 기호와 영문자만 포함.
(C) 오른쪽 아래 : 실제로 만들 문자 맵 전부.
한글폰트를 추가하기
문자 코드표를 입력
문자 코드표를 입력하려면 유니코드에 대해서 살짝 알아야 하는데, 참고 링크를 연결
한글 unicode의 영역의 이렇다.
(B) 영역 아래 쪽의 '+' 버튼을 누른다.
문자셋을 추가하는 대화상자
(A) ~ (B) : 추가 하려는 문자코드의 시작과 종료
From Code : 프로젝트 내부에서 사용하는 문자를 수집해서 폰트에 추가한다. 사용하는 글자가 제한되어 있으면 가장 낫다고 생각되는 방법
-
(C) 폰트에 추가할 문자들. 자동 입력되거나, 직접 입력할수도 있다.
Normal, All, Letters, Digits는 직접 눌러 보면 알 수 있다.
사용 예, 한글 자모를 추가해봤다.
사용할 문자를 입력
사용하는 글자만 정리할 수 있으면, 이 방법이 편하다.
이 파일처럼, 사용하려는 한글 문자를 정리해서 (C) 영역에 입력한다. 그러면 끝.
글자 4천개로 할지, 7천개로 할지…
더 작은 수로도 가능하지 않을지.
-
한글문자7천개 : 한글문자 7천개 정리. 더 많은 문자 표현 가능.
한글출력에 대해서
리소스 관리
코드 내부에 한글문자를 저장하면, 프로젝트 파일을 저장할 때 글자가 깨져버린다.
스크립트 파일을 저장할때, OS와 같은 멀티바이트 형식으로 저장하므로 (결국 ansi) 글자가 깨진다.
INI 파일 사용해서 사용할 글자를 외부 파일에 저장해서 불러다 쓰는 것이 바람직하고 다른 방법도 없다.
방법
조금 더 상세한 것은 여기 : ini 파일 사용 방법
ini file에 문자열을 저장한다. GameMaker에서도 권장하는 방법
ini 파일을 utf8 형식으로 저장한다.
문서 형식은 게임메이커에서 ansi 형식으로 다시 바꿔서 저장하지 않기 때문에 안심하고 사용할 수 있다.
ini 파일을 포함 시키는 방법
'Included Files'에 Create Include File을 선택
Load 버튼을 눌러 필요한 파일을 읽어온다. 지금은 ini 파일을 읽는다.
한글 폰트용 자료 구하기
GameMaker Studio (v1.1.622) 기준
한글을 출력하기 위해서는 폰트 리소스를 만들어서 사용해야 하는데
한글을 포함하는 경우 글꼴이 너무 커져서
제대로 만들어지지 않는다.
한글 폰트를 만들 때,
자주 사용하는 글자만으로 폰트를 만드는 것이 경제적이다.
아래 참조 자료로 사용하는 한글 글자만으로 폰트르 만든다.
자료 추가
인터넷 상에서 자주 쓰이는 한글 글자에 대한 자료나 블로그를 검색 할 수 있다.
또 다른 자료로는 한국어 학습용 단어 정리 된 것
사용하는 글자만 넣으면 크기도 절약하고 한글도 표현할 수 있다. 그래도 남는 고려 사항은..
한자가 들어가는 경우, 어떤 한자만을 넣을 것인가?
특수 기호는? 예를 들면, (1) 과 같은 폰트상의 기호들.
편하게는 안되는
추가 : 영문자
마지막 한 글자는 공백
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
추가 : 일본어 글자 모음