스켈레톤 애니메이션 설정
스켈레톤 애니메이션 스프라이트에 애니메이션 세트를 설정하면 내부적으로 트랙 0에 할당됩니다. 그러나 추가 트랙(1 이상)에 추가 세트를 할당하여 스프라이트가 동시에 두 개 이상의 애니메이션을 재생할 수 있습니다. 스프라이트는 애니메이션 프로그램에서 이러한 점을 염두에 두고 설계되어야 하며, 트랙 0의 "기본" 애니메이션은 특정 뼈대에 대한 키프레임만 포함하고, 다음 트랙은 다른 뼈대에 대한 키프레임을 포함해야 합니다.
예를 들어, "걷기" 애니메이션이 있고 그 키프레임이 스프라이트의 다리만 영향을 미친다면, 트랙 1에는 머리 애니메이션 세트, 트랙 2에는 팔 애니메이션 세트를 설정할 수 있습니다. 이렇게 하면 기본 동작을 유지하면서 게임이 진행되는 동안 실시간으로 적응할 수 있습니다.
애니메이션은 기본적으로 루프 재생됩니다.
문법
skeleton_animation_set_ext(animname, track, [loop]);
인수 설명
| 인수 이름 | 타입 | 설명 |
|---|---|---|
| animname | String | 사용할 애니메이션 세트의 이름(문자열) |
| track | Real | 사용할 애니메이션 세트의 트랙 |
| loop | Boolean | 애니메이션이 루프할지 여부 (기본값: true) |
반환 값
N/A
예제
if (mouse_check_button(mb_left)) {
skeleton_animation_set_ext("bodyfight", 1);
} else {
skeleton_animation_set_ext("bodywalk", 1);
}
위 코드는 왼쪽 마우스 버튼이 눌릴 때 트랙 1에서 사용되는 애니메이션 세트를 "bodyfight"로 변경하거나 "bodywalk"로 변경합니다.
활용 예제
- 다양한 애니메이션 조합
- 걷기 애니메이션과 동시에 점프 애니메이션을 재생할 수 있습니다.
gml if (keyboard_check(vk_space)) { skeleton_animation_set_ext("jump", 2); } - 상태에 따른 애니메이션 변경
- 캐릭터가 공격할 때와 방어할 때 다른 애니메이션을 설정합니다.
gml if (keyboard_check(vk_a)) { skeleton_animation_set_ext("attack", 1); } else { skeleton_animation_set_ext("idle", 1); } - 상호작용에 따른 애니메이션
- 특정 오브젝트와 상호작용할 때 애니메이션을 변경합니다.
gml if (collision_rectangle(x, y, x + sprite_width, y + sprite_height, obj_interactable, false, true)) { skeleton_animation_set_ext("interact", 1); } - 애니메이션 속도 조절
- 애니메이션의 속도를 조절하여 더 빠르거나 느리게 재생할 수 있습니다.
gml skeleton_animation_set_ext("run", 1); skeleton_animation_speed(1.5); // 속도를 1.5배로 설정 - 애니메이션 전환 효과
- 애니메이션 전환 시 부드러운 효과를 주기 위해 페이드 아웃/인 효과를 추가합니다.
gml if (transitioning) { skeleton_animation_set_ext("fade_out", 0); } else { skeleton_animation_set_ext("fade_in", 0); }