GameMaker 글꼴 및 텍스트 렌더링
GameMaker에서는 글꼴 자산에 대한 정보를 얻고, 런타임 동안 글꼴을 변경하거나 추가 또는 제거하기 위한 다양한 함수들이 제공됩니다. 이 문서에서는 글꼴을 추가하는 방법과 텍스트를 렌더링하는 방법에 대해서 설명합니다.
글꼴 추가하기
런타임 중에 글꼴을 추가하려면 font_add 함수를 사용할 수 있습니다. 이 함수를 사용하면 비표준 글꼴도 추가할 수 있습니다. 예를 들어, .ttf 또는 .otf 파일을 사용하여 글꼴을 추가할 수 있습니다.
new_font = font_add("STENCIL.TTF", 32, false, false, 32, 128);
위 코드에서 STENCIL.TTF 파일을 추가하고, 글꼴 크기를 32로 설정합니다.
텍스트 렌더링
GameMaker에서 텍스트는 draw_set_font 함수를 사용하여 설정된 글꼴을 사용하여 그려집니다. 텍스트 렌더링 방법은 SDF(Signed Distance Field) 기능이 활성화되었는지 여부에 따라 달라집니다.
일반 텍스트 렌더링
일반적인 방법으로 텍스트를 그리면, 선택한 글꼴 크기에 따라 글꼴의 글리프가 텍스처 페이지에 배치됩니다. 그러나 일반 글꼴을 확대하면 픽셀화가 발생하는 단점이 있습니다.
SDF 렌더링
SDF 렌더링은 기본적으로 비활성화되어 있으며, 글꼴 편집기 또는 font_enable_sdf 함수를 호출하여 개별 글꼴에 대해 활성화할 수 있습니다.
font_enable_sdf(new_font, true);
SDF 렌더링이 활성화되면, 각 글리프의 텍스처 페이지에 저장 방식이 달라집니다. 글꼴 크기와 관계없이, 문자들이 픽셀화되지 않고 선명하게 확대됩니다.
시각적 비교
다음 표는 일반 글꼴로 그린 텍스트와 SDF가 활성화된 글꼴로 그린 텍스트 간의 시각적 비교를 보여줍니다.
| Scale | Text Rendering (Regular) | Text Rendering (SDF Enabled) |
|---|---|---|
| 1x | ||
| 4x |
함수 참조
다음은 글꼴 관련 함수의 목록입니다.
| 분류 | 함수 |
|---|---|
| 자산 정보 | font_exists, font_get_name, font_get_fontname, font_get_first, font_get_last, font_get_italic, font_get_bold, font_get_size, font_get_info |
| 텍스처 | font_get_texture, font_get_uvs, font_cache_glyph |
| 글꼴 추가/제거 | font_add, font_add_sprite, font_add_sprite_ext, font_replace_sprite, font_replace_sprite_ext, font_delete |
| 설정 | font_texture_page_size, font_set_cache_size, font_add_enable_aa, font_add_get_enable_aa |
| SDF | font_enable_sdf, font_get_sdf_enabled, font_sdf_spread, font_get_sdf_spread, font_enable_effects |
| 그리기 | draw_set_font |
요약
GameMaker에서 글꼴과 텍스트를 효과적으로 사용하기 위해서는 글꼴 추가, 일반 및 SDF 렌더링 방법에 대한 이해가 필요합니다. SDF 기능을 활용하면, 텍스트를 선명하게 확대할 수 있으며, 다양한 시각적 효과를 적용할 수 있습니다.
이 정보를 바탕으로 다양한 게임 개발 프로젝트에서 글꼴을 효과적으로 활용할 수 있습니다.