draw_skeleton_instance 함수 설명
draw_skeleton_instance 함수는 스켈레탈 애니메이션 프로그램인 Spine을 사용하여 생성된 스프라이트가 할당된 인스턴스에서만 사용할 수 있습니다. 일반적인 그리기 함수(예: draw_self())를 사용하여 이러한 스프라이트를 그릴 수 있지만, 특정 프레임을 그리거나 스킨 텍스처를 변경하고 싶을 때 인스턴스의 스프라이트 속성을 실제로 변경하지 않고도 이 함수를 사용할 수 있습니다.
이 함수는 고유한 인스턴스 ID와 애니메이션 이름을 제공하여 해당 프레임을 가져오고, 사용할 스킨 이름과 프레임 값을 지정합니다. 프레임 값은 애니메이션의 어느 부분을 보여줄지를 나타내며, 0과 image_number 사이의 값을 가집니다. 나머지 인자는 일반 스프라이트 그리기와 동일하며, 최종 애니메이션 프레임의 크기, 각도, 혼합 색상 및 알파를 변경합니다.
스켈레탈 애니메이션은 다양한 "키" 프레임 간에 보간되기 때문에 이 호출에는 추가적인 오버헤드가 발생합니다. 따라서 꼭 필요한 경우가 아니면 이 방법으로 스켈레톤 기반 스프라이트를 그리는 것을 피하는 것이 좋습니다.
문법
draw_skeleton_instance(instance, animname, skinname, frame, x, y, xscale, yscale, rot, colour, alpha);
인자 설명
| 인자 | 타입 | 설명 |
|---|---|---|
| instance | Object | 스프라이트를 그릴 인스턴스의 인덱스입니다. |
| animname | String | 프레임을 가져올 애니메이션의 이름입니다. |
| skinname | String | 사용할 스킨의 이름입니다. |
| frame | Real | 그릴 애니메이션 프레임 (0에서 image_number - 1까지). |
| x | Real | 스프라이트를 그릴 x 좌표입니다. |
| y | Real | 스프라이트를 그릴 y 좌표입니다. |
| xscale | Real | 스프라이트의 수평 스케일 (1 = 정상, 0.5 = 절반 등). |
| yscale | Real | 스프라이트의 수직 스케일 (1 = 정상, 0.5 = 절반 등). |
| rot | Real | 스프라이트의 회전 (0 = 정상, 90 = 반시계 방향으로 90도 회전 등). |
| colour | Colour | 스프라이트와 혼합할 색상입니다. |
| alpha | Real | 스프라이트의 알파 (0에서 1까지, 0은 투명, 1은 불투명). |
반환값
N/A
활용 예제
다음은 draw_skeleton_instance 함수를 활용한 몇 가지 예제입니다.
// 점프 애니메이션의 첫 번째 프레임을 그립니다.
draw_skeleton_instance(obj_Player, "jump", "skin1", 0, x, y, 1, 1, 0, c_white, 1);
// 달리는 애니메이션의 두 번째 프레임을 그립니다.
draw_skeleton_instance(obj_Player, "run", "skin1", 1, x, y, 1.5, 1.5, 0, c_red, 0.8);
// 공격 애니메이션의 세 번째 프레임을 그립니다.
draw_skeleton_instance(obj_Player, "attack", "skin2", 2, x, y, 1, 1, 45, c_blue, 0.5);
이 예제들은 각각 다른 애니메이션과 프레임을 사용하여 스프라이트를 그리는 방법을 보여줍니다.