스켈레톤 애니메이션에서 첨부물 교체하기
skeleton_attachment_replace 함수는 현재 인스턴스의 스켈레톤 애니메이션 스프라이트에서 기존의 사용자 정의 첨부물을 다른 것으로 교체하는 기능을 제공합니다. 이 변경 사항은 해당 첨부물이 할당된 모든 슬롯에서 볼 수 있습니다.
문법
skeleton_attachment_replace(name, sprite, ind, xorigin, yorigin, xscale, yscale, rot);
매개변수 설명
| 매개변수 | 타입 | 설명 |
|---|---|---|
| name | String | 교체할 첨부물의 이름 |
| sprite | Sprite Asset | 첨부물에 사용할 스프라이트 자산의 인덱스 |
| ind | Real | 사용할 스프라이트의 이미지 인덱스 |
| xorigin | Real | 이미지에 사용할 x 원점. 스프라이트의 원점은 무시됨 |
| yorigin | Real | 이미지에 사용할 y 원점. 스프라이트의 원점은 무시됨 |
| xscale | Real | 이미지의 수평 스케일 계수 |
| yscale | Real | 이미지의 수직 스케일 계수 |
| rot | Real | 이미지의 회전. 이 값은 뼈대의 회전에 추가됨 |
반환값
- 성공 시 1, 실패 시 -1을 반환합니다.
활용 예제
아래 코드는 "weapon_attachment"라는 이름의 첨부물이 존재하는지 확인한 후, 존재한다면 이를 "spr_baseball" 스프라이트로 교체합니다. 이때 원점, 스케일, 회전에는 변화가 없습니다.
if (skeleton_attachment_exists("weapon_attachment")) {
skeleton_attachment_replace("weapon_attachment", spr_baseball, 0, 0, 0, 1, 1, 0);
}
추가 활용 예제
- 스케일 조정하기
gml skeleton_attachment_replace("weapon_attachment", spr_baseball, 0, 0, 0, 1.5, 1.5, 0); - 회전 추가하기
gml skeleton_attachment_replace("weapon_attachment", spr_baseball, 0, 0, 0, 1, 1, 45); - 다른 스프라이트로 교체하기
gml skeleton_attachment_replace("shield_attachment", spr_shield, 0, 0, 0, 1, 1, 0); - 원점 변경하기
gml skeleton_attachment_replace("weapon_attachment", spr_baseball, 0, 10, 10, 1, 1, 0);
이와 같이 skeleton_attachment_replace 함수를 활용하여 스켈레톤 애니메이션의 다양한 첨부물을 동적으로 교체할 수 있습니다.