스켈레톤 애니메이션 이벤트 프레임 가져오기
skeleton_animation_get_event_frames 함수는 주어진 애니메이션에서 특정 이벤트에 대한 모든 프레임을 가져오는 데 사용됩니다. 이 함수는 애니메이션 이름과 이벤트 이름을 인자로 받아 해당 이벤트의 프레임을 배열로 반환합니다. 만약 지정한 이벤트 이름이 존재하지 않으면, 함수는 -1을 첫 번째(유일한) 요소로 가진 배열을 반환합니다.
문법
skeleton_animation_get_event_frames(anim_name, event_name);
인자 설명
| 인자 이름 | 타입 | 설명 |
|---|---|---|
| anim_name | String | 프레임을 가져올 애니메이션 이름입니다. |
| event_name | String | 프레임을 가져올 이벤트 이름입니다. |
반환값
- Array of Reals: 이벤트에 대한 프레임 배열입니다.
예제
var _frames = skeleton_animation_get_event_frames(skeleton_animation_get(), "Footstep");
if (_frames[0] != -1) {
var _count = array_length(_frames);
var _current_frame = skeleton_animation_get_frame(0);
for (var i = 0; i < _count; i++) {
if (_frames[i] == _current_frame) {
audio_play_sound(snd_footstep, 1, false);
break;
}
}
}
위의 코드는 "Footstep" 이벤트에 대한 프레임을 가져옵니다. 유효한 프레임이 포함된 배열이 반환되면, 배열을 반복하면서 현재 프레임이 배열의 어떤 프레임과 같은지 확인합니다. 이 경우 발소리 효과음을 재생하고 루프를 중단합니다.
활용 예제
1. 다양한 이벤트에 대한 소리 재생
var _jump_frames = skeleton_animation_get_event_frames(skeleton_animation_get(), "Jump");
if (_jump_frames[0] != -1) {
// 점프 이벤트에 대한 소리 재생 로직
}
2. 애니메이션 상태에 따라 다른 효과음 재생
var _run_frames = skeleton_animation_get_event_frames(skeleton_animation_get(), "Run");
if (_run_frames[0] != -1) {
// 달리기 이벤트에 대한 소리 재생 로직
}
3. 특정 프레임에서 애니메이션 효과 적용
var _attack_frames = skeleton_animation_get_event_frames(skeleton_animation_get(), "Attack");
if (_attack_frames[0] != -1) {
// 공격 이벤트에 대한 효과 적용 로직
}
4. 이벤트에 따라 애니메이션 전환
var _idle_frames = skeleton_animation_get_event_frames(skeleton_animation_get(), "Idle");
if (_idle_frames[0] != -1) {
// 대기 상태로 전환하는 로직
}
이와 같이 skeleton_animation_get_event_frames 함수를 활용하여 다양한 애니메이션 이벤트에 대한 프레임을 가져오고, 그에 따른 효과를 적용할 수 있습니다.