본문 바로가기

Unity2020.1/2D

[Unity] 2D::SpriteEditor Skinning하는 방법

■ 준비작업

1. 페인팅 툴(ex. Clip Studio, Photoshop 등)

1) 부위별로 레이어를 나눈 파일을 준비한다.

왼쪽은 왜 각도가 다른지 의문이 생길 수 있는데 SkinningEditor에서 보이지 않는 부분은 선택을 할 수 없었다.

그렇다고 각도를 애매하게 했다간 불필요한 픽셀이 생성되기 때문에 직각으로 하였다.

 

2) 파일 형식을 *.psb(파일형식 = Photoshop Big Document)로 저장한다.

2. Unity

1) Window->PackageManager에서 필요한 Package를 Install한다.

2) Unity에서 1.패인팅 툴에서 저장한 test.psb를 Import한다.

3) SpriteEditor를 실행한다.

방법1. 해당 파일을 선택한 후 SpriteEditor를 실행한다.

※ SpriteEditor를 실행하고 스프라이트를 선택하는 기능이 있으면 좋지 않을까

전에 유니티를 배우는 분이 파일을 선택하지 않고 Editor을 실행해서 이거 왜 안되냐고 물어본 적이 있었다.

 

방법2. 해당 파일을 선택한 후 Inspector창에서 SpriteEditor를 실행한다.

 

■ SkinningEditor

1. SpriteEditor의 첫화면은 아래와 같은데 왼쪽 상단에 Sprite Editor를 클릭해서 Skinning Editor로 전환한다.

<SpriteEditor>
<Skinning Editor>페인팅툴에서 설정한 위치 그대로 옮겨진 것을 확인할 수 있다.

2. 왼쪽 메뉴에서 Bones하단의 CreateBone을 이용하여 왼클릭 두 번(처음과 끝)으로 Bone이 하나 생성된다. 더 이상 이어서 생성하고 싶지 않다면 오른클릭을 하면된다.

※ 참고사항

- 처음생성할 때 Bone끼리 겹쳐서 생성할 수 없다.

 : 왼쪽 메뉴에서 Edit Bone을 선택하여 Bone의 하얀박스를 클릭하여 위치를 수정해주면 된다.

- 축방향으로 교정해주는 기능은 찾지 못했다.

3.  왼쪽 메뉴에서 Geometry하단의 Auto Geometry을 이용하여 버텍스 생성과 Bone이 영향을 미치는 정도(Weights)를 설정할 수 있다.

Weights를 체크를 해제하고 생성했어도 Weights의 하단의 Auto Weights로 설정해줄 수 있다.

Generate For All Visible을 선택하면 설정값이 적용된 걸 확인해 볼 수 있다.

적용된 후의 색들은 Bone의 Weights를 나타낸다. 색이 엉망진창인 이유는 Bone이 많이 겹쳐있기 때문이다.

4. 왼쪽 메뉴에서 Weights Brush하단의 Bone Influence을 이용하여 Weights를 정리해줄 수 있다.

레이어에서 나눈 부분을 더블 클릭해준다.(예시는 righttoparm이다.)

오른팔을 선택했을 때 우측 하단에 보면 많은 Bone들이 영향을 주고 있다는 걸 볼 수 있다.

해당 리스트를 하나찍 눌러보면 어느 Bone인지 알 수 있는데 의도했던 건 bone_3과 bone_4의 영향이므로 이들을 제외한 Bone을 선택한 후 (-)를 눌러 제거한다.

정리하면 위와 같이 의도한 Bone의 영향만 받을 수 있다는 걸 알게 된다.

위와 같이 레이어로 나눈 부분들을 하나씩 클릭해서 정리해준다.

rightbottomarm이 Weight가 없어서 당황했는데 Weight Brush를 이용해서 맞는 Bone의 색으로 칠해주면 된다.

5.  왼쪽 메뉴에서 Bones하단의 Preview Pose을 클릭한 후 Bone을 하나씩 선택해서 의도대로 움직이는 지 확인한다.

동작이 확인이 되면 상단의 오른쪽에 Apply를 눌러 적용한다.

ResetPose를 누르면 처음 위치로 돌아간다.

6. Unity에서 적용된 모습을 확인한다.

하위에 bone이라는 이름의 객체가 추가된 걸 확인할 수 있다.

이젠 Windows->Animation->Animation으로 키를 잡고 파일을 생성하면 된다.

 

참고 :

www.youtube.com/watch?v=eXIuizGzY2A&t=765s

'Unity2020.1 > 2D' 카테고리의 다른 글

[Unity] 2D::Lighting적용  (0) 2021.06.07