Attachment와 Skin
- Slot은 캐릭터 의상이 들어갈 부위를 의미한다. 머리, 몸통, 팔, 다리, 모자 등등
- Attachment는 하나의 텍스쳐를 의미한다. Attachment는 각 Slot에 지정된다.
- Skin은 Attachment들의 모음이다. 캐릭터 의상 전체 Set를 의미한다.
Attachment 바꾸기
skeletonAnimation = transform.GetComponent<SkeletonAnimation>();
skeletonAnimation.skeleton.SetAttachment(SlotName, AttachName);
- Attachment를 바꾸려면 Attachment의 이름과 Attachment가 들어갈 Slot의 이름이 필요하다.
- SkeletonAnimation 아래의 skeleton 아래에 SetAttachment()를 사용하면 된다.
Skin 바꾸기
skeletonAnimation = transform.GetComponent<SkeletonAnimation>();
skeletonAnimation.skeleton.SetSkin(SkinName);
- Skin은 의상 전체 –Attachment 모음– 이기 때문에 만들어진 Skin을 그대로 사용하면 된다.
- SkeletonAnimation 아래의 skeleton 아래에 SetSkin()를 사용하면 된다.
Skin에서 특정 부위만 바꾸기
- 캐릭터 커스터마이징이 없는 게임이라면 SetSkin을 이용해서 전체 Skin을 바꾸면 되지만, 캐릭터 커스터마이징을 한다면 SetSkin을 이용할 수 없다. 바지만 갈아입히려는데 바지 외의 것들이 한번에 날아가기 때문이다.
- 이럴 때는 기존에 입고 있는 스킨에서 특정 Attachment만 바꿔야 되는데, 이게 Spine-Unity 기본에는 없다. 어느 훌륭한 개인 사용자가 만든 방식이 있으니 그것을 이용한다.
- 기본 개념은 기존에 입고 있는 옷들과 새로 바꿀 부위를 이용해서 새로운 Skin을 만든 후에 그것을 입히는 식으로 진행된다.
1. Skin.cs 클래스 수정하기
public void AddFromSkin(Skin other)
{
foreach (var a in other.attachments)
{
attachments[a.Key] = a.Value;
}
}
- spine의 Skin.cs 클래스에 위의 메서드를 추가한다.
2. Combined Skin 만들기