스켈레톤 애니메이션 세트
스켈레톤 애니메이션 스프라이트를 인스턴스에 할당한 후, 이 함수를 사용하여 특정 시점에 어떤 애니메이션 세트를 사용할지 정의할 수 있습니다. 스프라이트를 생성할 때(Spine에서) 다양한 상태에 대한 여러 애니메이션 세트를 정의하고 각 세트에 적절한 이름을 붙였을 것입니다. 이러한 이름을 사용하여 게임에서 GameMaker에게 어떤 애니메이션 세트를 사용할지 지시할 수 있습니다.
예를 들어, 플랫폼 게임의 스프라이트가 있다면 "점프", "달리기", "대기" 세트가 하나의 스프라이트에 포함되어 있을 수 있으며, 이 함수를 사용하여 게임 내에서 이들 사이를 전환할 수 있습니다. 애니메이션은 기본적으로 루프 형태로 재생됩니다.
새 애니메이션을 설정하면 image_index가 0으로 초기화되어 새 애니메이션 세트가 애니메이션 루프의 시작부터 재생됩니다. 이러한 동작이 원하지 않는 경우, skeleton_animation_mix()를 사용하여 "믹스" 값을 설정하면 새 애니메이션이 이전 세트와 부드럽게 보간됩니다. 또한, 이전 애니메이션의 데이터가 남지 않도록 각 애니메이션의 시작 부분에 키프레임을 설정해야 합니다. 별도의 애니메이션 트랙을 사용할 계획이 아니라면 말입니다.
문법
skeleton_animation_set(animname, [loop]);
인수 설명
| 인수 이름 | 타입 | 설명 |
|---|---|---|
| animname | String | 사용할 애니메이션 세트의 이름 (문자열) |
| loop | Boolean | 애니메이션이 루프할지 여부 (기본값: true) |
반환값
N/A
예제
if keyboard_check_pressed(vk_space) {
if skeleton_animation_get() != "jump" {
skeleton_animation_set("jump");
}
}
위 코드는 스페이스 키가 눌렸을 때 현재 사용 중인 애니메이션 세트가 "jump"가 아닐 경우 애니메이션 세트를 "jump"로 변경합니다.
활용 예제
- 플랫폼 게임에서 점프 애니메이션 설정
if keyboard_check_pressed(vk_space) {
skeleton_animation_set("jump");
}
- 캐릭터가 달릴 때 애니메이션 변경
if keyboard_check(vk_right) {
skeleton_animation_set("run");
}
- 캐릭터가 대기 상태일 때 애니메이션 설정
if !keyboard_check(vk_right) && !keyboard_check(vk_left) {
skeleton_animation_set("idle");
}
- 애니메이션 믹스를 사용하여 부드러운 전환
skeleton_animation_mix("run");
- 애니메이션 상태에 따라 다른 행동 수행
if skeleton_animation_get() == "jump" {
// 점프 중일 때의 행동
}
이와 같은 방식으로 스켈레톤 애니메이션 세트를 활용하여 다양한 게임 상황에 맞는 애니메이션을 설정하고 전환할 수 있습니다.