텍스처 페이지
게임을 만들 때, 스프라이트, 타일 세트, 폰트 등 다양한 그래픽을 생성하게 됩니다. 이러한 그래픽은 게임에 포함된 모든 이미지 자산으로부터 GameMaker가 생성하는 텍스처 페이지에 저장됩니다. 아래는 완전한 텍스처 페이지의 예입니다:
게임 그래픽은 모두 2의 거듭제곱 크기의 페이지에 맞춰 혼합되어 저장됩니다. 예를 들어, 512x512, 1024x512 등 최대 4096x4096 픽셀까지 가능합니다. 텍스처 페이지의 최대 크기는 선택한 내보내기 플랫폼에 따라 달라지며, 일부 플랫폼은 2048x2048 픽셀보다 큰 페이지를 허용하지 않습니다. 또한, 모든 장치에서 최적의 크기가 아닐 수 있습니다.
이미지 주변에 많은 빈 공간(투명 픽셀)이 있는 경우, 기본적으로 이러한 "보이지 않는" 픽셀을 제거하고 가능한 많은 이미지를 단일 텍스처 페이지에 배치하기 위해 잘립니다. 이 기능을 원하지 않는 경우, 텍스처 그룹 창에서 비활성화해야 합니다.
텍스처 설정
다양한 텍스처 설정이 이미지에 미치는 영향을 이해하는 것이 중요합니다. 아래는 스프라이트 편집기에서의 텍스처 설정 섹션입니다:
여기에서 이미지를 텍스처 페이지에 저장하는 방법과 별도로 저장해야 하는지 여부를 정의할 수 있습니다. 또한 어떤 텍스처 페이지에 할당할지와 몇 가지 다른 옵션을 설정할 수 있습니다.
설정 항목 | 설명 |
---|---|
수평 타일링 | 이미지의 수평 가장자리를 타일링할지 여부를 설정합니다. |
수직 타일링 | 이미지의 수직 가장자리를 타일링할지 여부를 설정합니다. |
별도 텍스처 페이지 | 이미지를 고유한 텍스처 페이지에 배치하도록 강제합니다. |
동적 텍스처 | 스프라이트가 동적인지 여부를 설정합니다. |
텍스처 그룹 | 스프라이트가 할당될 텍스처 그룹을 설정합니다. |
수평 및 수직 타일링
이미지가 타일링될 경우, 가장자리는 반대쪽 가장자리에서 추가됩니다. 타일링이 선택되지 않으면 스프라이트는 클램프되어 가장자리의 픽셀이 반복됩니다. 타일 세트 속성에서 출력 경계 너비를 설정할 수 있습니다.
별도 텍스처 페이지
별도 텍스처 페이지 설정은 GameMaker가 이미지를 고유한 텍스처 페이지에 배치하도록 강제합니다. 이 옵션은 3D 모델 텍스처링에 가장 일반적으로 사용되며, 텍스처는 2의 거듭제곱이어야 합니다(예: 128x128, 512x512 등). 이 옵션을 사용할 때는 주의해야 하며, 특히 모바일 장치에서 너무 많은 텍스처 페이지를 사용하면 가용 텍스처 메모리를 빠르게 소모할 수 있습니다.
활용 예제
다음은 텍스처 페이지와 관련된 몇 가지 코드 스니펫입니다:
// 스프라이트를 별도의 텍스처 페이지에 할당
sprite_set_texture_page(sprite_index, true);
// 이미지의 타일링 설정
sprite_set_tile_horizontally(sprite_index, true);
sprite_set_tile_vertically(sprite_index, true);
// 텍스처 그룹 설정
sprite_set_texture_group(sprite_index, texture_group_index);
// 텍스처 페이지 크기 확인
var texture_page_size = texture_get_size(texture_index);
게임에서 텍스처가 최대 선택된 텍스처 페이지 크기보다 클 경우, 텍스처는 반으로 축소됩니다. 이는 여러 텍스처 페이지에 나누어지지 않으며, 이로 인해 게임이 특정 플랫폼에서 흐릿하게 보일 수 있습니다. 모든 이미지를 게임에서 사용할 가장 작은 텍스처 페이지 크기에 맞출 수 있도록 해야 합니다.
여러 텍스처 페이지에 그래픽을 나누는 것이 항상 필요한 것은 아니며, 효율적인 작업 방식이 아닐 수 있습니다. CPU에 더 의존하는 게임은 이 최적화의 혜택을 크게 보지 못할 수 있습니다.