애니메이션 타일
타일은 일반적으로 게임 룸 내에서 정적인 셀로 간주되지만, GameMaker를 사용하면 스프라이트처럼 애니메이션을 적용할 수 있습니다. 스프라이트를 사용하지 않고 타일을 사용하는 이유는 무엇일까요? 스프라이트는 경계 상자와 렌더링 방식 때문에 처리 오버헤드가 발생하지만, 타일은 훨씬 낮은 처리 오버헤드를 가지고 있어 더 빠르게 렌더링됩니다. 그러나 타일 세트 애니메이션에는 몇 가지 제한이 있습니다. 애니메이션의 길이는 2, 4, 8, 16 등의 2의 거듭제곱이어야 하며, 타일 그리드 내에서 생성되어야 하고, 모든 타일 세트는 동일한 속도로 애니메이션이 진행되어야 합니다. 이러한 제한에도 불구하고 애니메이션 타일은 정적인 환경과 배경에 생명과 색을 추가하는 강력한 기능입니다.
타일 애니메이션 생성하기
타일 애니메이션을 생성하려면 먼저 필요한 타일이 모두 포함된 타일 세트를 가져와야 합니다. 이때 모든 애니메이션 이미지를 포함한 하나의 큰 스프라이트 프레임으로 구성되어야 합니다. 그런 다음 타일 세트 편집기에서 "타일 애니메이션" 버튼을 클릭하여 애니메이션 편집기를 열 수 있습니다.
예를 들어, 위의 이미지는 모든 애니메이션 프레임이 포함된 단일 이미지입니다. 하지만 이 이미지에는 애니메이션이 아닌 다른 타일도 포함될 수 있습니다. 즉, 하나의 대형 타일 세트를 사용하고 그 중에서 원하는 부분을 선택하여 애니메이션을 만들 수 있습니다. 예를 들어, 나무, 흙, 물이 포함된 대형 풍경 타일 세트를 가지고 있고, 그 안에서 물이 일렁이는 애니메이션을 만들기 위해 여러 타일을 애니메이션할 수 있습니다.
타일 애니메이션을 만들기 위해서는 먼저 애니메이션 라이브러리에 애니메이션을 추가해야 합니다. "애니메이션 추가" 버튼을 클릭하면 빈 애니메이션 스트립이 라이브러리에 추가되고 사용할 프레임 수를 선택하라는 요청이 표시됩니다.
그런 다음 각 빈 애니메이션 프레임의 뷰가 표시되며, 초기 프레임이 강조 표시됩니다. 편집기의 왼쪽에 있는 타일 세트 이미지로 돌아가서 애니메이션에 추가할 타일을 클릭하면 프레임이 다음으로 넘어갑니다. 연속적으로 타일을 클릭하면 애니메이션이 채워지며, "재생" 버튼을 클릭하여 미리 볼 수 있습니다.
이렇게 하면 애니메이션이 애니메이션 라이브러리의 일부가 되고, 룸 편집기에 들어가면 이를 선택하여 룸 내에 배치할 수 있습니다. 애니메이션에서 타일을 선택하여 룸에 배치하면, 선택한 타일부터 애니메이션이 시작됩니다. 따라서 룸 내에 서로 다른 프레임을 배치하여 애니메이션을 "비동기화"할 수 있습니다. 단, 애니메이션 속도는 항상 동일하게 유지되며, 이는 전체 타일 세트에 대해 정의되기 때문입니다.
애니메이션에서 사용되는 타일에 대한 몇 가지 주의 사항
조건 | 설명 |
---|---|
타일에 자체 애니메이션이 지정된 경우 | 해당 애니메이션을 사용합니다. |
타일에 자체 애니메이션이 없고 다른 애니메이션에서만 사용되는 경우 | 해당 애니메이션의 첫 번째 위치에서 시작하여 사용합니다. |
타일에 자체 애니메이션이 없고 여러 애니메이션에서 사용되는 경우 | 애니메이션을 전혀 사용하지 않습니다. 첫 번째 타일로 애니메이션을 명시적으로 지정해야 합니다. |
활용 예제
// 타일 애니메이션 추가
var animation_id = tile_animation_add("water_ripple", 4);
// 애니메이션 프레임 설정
tile_animation_frame_set(animation_id, 0, sprite_index, 0);
tile_animation_frame_set(animation_id, 1, sprite_index, 1);
// 룸에 애니메이션 타일 배치
instance_create_layer(x, y, "Instances", obj_tile_animation);
// 애니메이션 재생
tile_animation_play(animation_id);
// 애니메이션 속도 조정
tile_animation_speed_set(animation_id, 0.5);