스켈레탈 애니메이션 사용하기
스켈레탈 애니메이션은 Spine을 사용하여 생성된 스프라이트로, 여러 애니메이션을 하나의 스프라이트에 적용할 수 있습니다. 게임에서 적절한 시점에 애니메이션을 전환할 수 있어야 합니다. 이를 위해 GameMaker에서는 다음과 같은 함수들을 제공합니다:
| 함수 이름 | 설명 |
|---|---|
skeleton_animation_get |
현재 애니메이션을 가져옵니다. |
skeleton_animation_set |
애니메이션을 설정합니다. |
skeleton_animation_get_ext |
애니메이션의 확장 정보를 가져옵니다. |
skeleton_animation_set_ext |
애니메이션의 확장 정보를 설정합니다. |
skeleton_animation_get_duration |
애니메이션의 지속 시간을 가져옵니다. |
skeleton_animation_mix |
두 애니메이션을 혼합합니다. |
skeleton_animation_list |
사용 가능한 애니메이션 목록을 가져옵니다. |
skeleton_animation_clear |
현재 애니메이션을 지웁니다. |
skeleton_animation_get_frames |
애니메이션의 프레임 수를 가져옵니다. |
skeleton_animation_get_frame |
특정 프레임의 정보를 가져옵니다. |
skeleton_animation_set_frame |
특정 프레임으로 설정합니다. |
skeleton_animation_get_position |
현재 애니메이션의 위치를 가져옵니다. |
skeleton_animation_set_position |
애니메이션의 위치를 설정합니다. |
skeleton_animation_get_event_frame |
이벤트 프레임을 가져옵니다. |
skeleton_animation_is_looping |
애니메이션이 루프 중인지 확인합니다. |
skeleton_animation_is_finished |
애니메이션이 완료되었는지 확인합니다. |
활용 예제
애니메이션 전환하기
// 현재 애니메이션을 확인하고 전환
if (skeleton_animation_is_finished(skeleton)) {
skeleton_animation_set(skeleton, "run");
}
애니메이션 혼합하기
// 두 애니메이션을 혼합
skeleton_animation_mix(skeleton, "walk", "run", 0.5);
애니메이션의 지속 시간 가져오기
// 애니메이션의 지속 시간 확인
var duration = skeleton_animation_get_duration(skeleton, "jump");
애니메이션 프레임 설정하기
// 특정 프레임으로 설정
skeleton_animation_set_frame(skeleton, "attack", 5);
애니메이션 루프 여부 확인하기
// 애니메이션이 루프 중인지 확인
if (skeleton_animation_is_looping(skeleton)) {
// 루프 중일 때의 처리
}
이와 같은 함수들을 활용하여 스켈레탈 애니메이션을 효과적으로 관리하고, 게임 내에서 다양한 애니메이션을 구현할 수 있습니다.