프로그래밍/Unity

Unity 4 - 스프라이트 관련 메모

windship 2014. 2. 27. 11:01

* 텍스처 관련


 1. 아래의 Project 창에 보이는 Assets 폴더는 실제 하드디스크 상에 있는 프로젝트 폴더(디폴트값으로 저장했다면 New Unity Project 뭐시기 폴더)에 있는 Assets 폴더이다. 




     즉 Unity 상에서 이 Assets 폴더안의 파일을 지우거나 하면 실제 프로젝트 폴더 안에서도 지워져버린다. 주의.


 2. 새로 스프라이트를 만들기 위해 이미지 리소스(텍스처)를 만들었으면 이 Assets의 Textures 폴더 안에 넣어주기만 하면 바로 인식된다.



* 파츠 자르기


 1. 텍스처가 불러와진 상태에서 메뉴 > Window > Sprite Editor 를 선택해 스프라이트 에디터를 띄운다.





   그리고 아래의 Assets의 Textures 폴더에서 원하는 텍스처를 선택해 준다. 



(옆에 붙은 ▷ 아이콘을 클릭하면 그 텍스처에 설정된 파츠들이 보이게 되는데 현재는 자르기를 하지 않았으므로 텍스처 전체가 통짜로 나오게 된다.)


 2. 스프라이트 에디터 창에 리소스 이미지가 뜬다.



 3. Inspector 창(안 보일 경우 메뉴 > Window > Inspector 선택해서 띄운다)에서 Sprite Mode 를 Multiple 로 바꾸고 오른쪽 아래의 Apply 버튼을 누른다.



 4. 스프라이트 에디터 창의 Slice 버튼을 누르고, 나오는 메뉴 아래의 Slice 버튼을 클릭한다.



 5. 파츠들이 알아서 적당하게 잘라진다.



 6. 잘라진 모양을 확인한 뒤 오른쪽 위의 Apply 버튼을 누른다.


 7. 이제 다시 아래의 Textures에 선택된 텍스처 옆에 붙은 ▷ 아이콘을 클릭하면 이번엔 잘라진 파츠들이 보일 것이다.




 8. 만약 스프라이트가 파츠를 조합하는 2D 스켈레톤 방식이 아니라 통짜 이미지를 바꿔가며 보여주는 방식의 스프라이트라면, 위 7번 단계에서 잘라진 스프라이트들을 Shift + 클릭으로 복수 선택한 후 Scene 창으로 바로 끌어다 놓으면 한방에 *.anim 파일을 만들면서 스프라이트가 생성된다. Sprite Editor 창에서 기준점(Pivot) 설정도 해두었다면 이미지의 위치도 중심점에 맞추어서 자동 정렬되어 생성되므로 편리하다. 다만 이미지 1장으로 이뤄진 스프라이트를 만들 때는 1장만 끌어다 놓으면 *.anim 파일을 만드는 부분이 나오지 않으므로, 사용자가 직접 Animation 창에서 [Create New Clip]을 선택해 *.anim 파일을 만들어 주어야 한다. 



* 스프라이트 생성


 1. Hierarchy 창에서 Create 버튼을 클릭하고 Sprite 를 선택한다. 



     아래에 New Sprite 라는 이름의 새 스프라이트가 만들어질 것이다. 이 이름을 클릭하고 F2를 누르면 이름을 변경할 수 있다.


 2. 아까 자른 파츠 중 원하는 파츠를 드래그해 Scene 창에 갖다놓는다. 그러면 파츠가 삽입될 것이다.



 2. 들어간 파츠를 Hierarchy 창에서 클릭해주면 Inspector 창에 Sprite Renderer 항목이 나타나는데, 여기에서 Color 옆의 색깔 창을 클릭해주면 색상 관련 설정창이 뜬다. 아래의 RGBA 값 중 A값은 알파값으로 투명도를 나타낸다. 파츠의 투명도를 조절해야 할 경우는 여기에서 조정해 주면 된다. 참고로 Hierarchy 창에서 원하는 파츠들을 여러개 복수 선택한 뒤 같은 방식으로 한번에 투명도를 일괄 조정할 수도 있다. 다만 이것은 포토샵의 레이어 그룹처럼 모아진 종속관계를 그대로 유지하면서 투명도가 조절되는 것이 아니고 그냥 각각의 투명도를 한번에 조절해주는 것 뿐이므로, 서로 겹쳐진 파츠들은 투명해지면서 가려졌던 윤곽이 드러나 보이게 된다. 주의.

 

 3. 파츠의 기준점(Anchor Point)는 Sprite Editor 창에서 원하는 파츠를 선택한 뒤, 오른쪽 아래의 서브윈도우에 있는 Pivot을 눌러 설정한다. 



    중앙으로 맞추고 싶으면 Center인 채로 두면 되고, 다르게 설정하고 싶을 경우 Custom을 선택해 직접 파츠 내에서 원하는 위치에 설정한다. 설정한 뒤에는 오른쪽 위의 Apply 버튼을 누르는 것을 잊지 말것!


 4. 파츠는 Hierarchy 창에 그냥 마구잡이로 들어가게 되므로, 들어간 뒤에는 아까 만든 새 스프라이트에 끌어서 집어넣어 준다. 



    파츠는 다른 파츠의 아래에 들어갈 수 있는데 이것은 종속관계(일종의 본)을 설정하게 된다. 이렇게 다른 파츠 아래에 들어가는 것을 제외하고는 여기에서의 상하 위치는 실제 스프라이트의 앞뒤 가려짐 순서와 관계가 없다. 



    앞뒤 가려짐 순서는 원하는 파츠를 선택한 뒤 Inspector 창에서 Sprite Renderer > Order in Layer 에 숫자값을 입력해서 설정한다.


 5. Scene 창에 놓인 파츠를 드래그해 조합하고 앞뒤 순서를 맞추면서 스프라이트를 만들어나간다.



* 애니메이션


 1. 애니메이션 윈도우를 띄운다(메뉴 > Window > Animation. Animator가 아님에 주의!)


 2. Hierarchy 창에서 원하는 스프라이트를 선택한다. 어떤 스프라이트의 어떤 파츠를 선택하느냐에 따라 만들어지는 애니메이션이 적용되는 부분이 다르므로 잘 선택하고 만들어야 한다.


 3. 먼저 Project 창에서 Animations 폴더에 스프라이트를 저장할 폴더를 만들고 지정한다. 이 폴더를 제대로 지정해두지 않으면 애니메이션 동작이 제대로 저장되지 않거나 하므로 반드시 폴더를 잘 지정해둘 것.


 4. 녹화버튼과 재생버튼 아래의 빈 부분을 클릭하면 Create New Clip 이라는 것이 나온다. 



    이것을 선택하면 하나의 큰 동작(대기상태, 걷기, 달리기, 공격 등등)을 만들 수 있다. 


 5. 동작을 만들면 빈 부분에 만든 동작의 이름이 나와서 해당 동작을 편집중이라는 것을 알려주며, 위에서 지정한 폴더 안에 동작 파일(*.anim)이 저장된다. 아래의 Add Curve 버튼을 누른다.


 6. 누르면 Transform, Sprite Renderer, Animator 등의 3가지 조정항목과, 아까 생성한 스프라이트의 파츠 중 종속관계가 가장 위인 파츠들의 목록이 보인다. 여기서 움직이고 싶은 파츠를 선택해, 왼쪽의 ▶ 아이콘을 누르면 하부 메뉴가 펼쳐진다. 

 


 예를 들어 팔과 손에 쥔 무기 파츠가 있다고 할 때, 팔을 움직이면 무기도 움직이는 것은 당연하므로 무기 파츠는 팔 파츠의 자식 파츠로 설정되는 것이 보통이다. 이때 팔을 움직이고 싶다면, 팔 파츠의 하부 메뉴에서 Transform의 Position 옆에 있는 + 아이콘을 눌러준다. 팔 파츠의 위치를 움직이는 타임라인이 생성된다.


 7. 추가된 타임라인을 선택한 뒤 타임라인 바의 시간이 표시되는 영역에서 원하는 적당한 길이의 위치에 클릭을 해 주면 빨간 세로선이 생긴다. 이 상태에서 왼쪽 위의 녹화 버튼이 붉게 표시되는 걸 볼 수 있는데 이것은 해당 타임라인이 편집 중이라는 의미이다. 세로선이 생긴 상태에서 ◇+ 아이콘을 클릭하면 세로선이 위치한 자리에 키프레임이 추가된다. 


 8. 키프레임을 선택한 상태에서, Scene 창의 파츠를 원하는대로 수정해준다(위치변경, 회전, 크기변경 등등등). 


 9. 녹화버튼을 눌러서 편집을 마치고, 옆의 재생(▶) 버튼을 누르면 파츠가 부드럽게 움직일 것이다.


 10. 파츠의 변형중 회전은 0~360도의 각도값을 이용해 움직이게 되는데, 타임라인의 키프레임 모드(Dope Sheet)에서는 버그가 있어 - 값을 인식하지 못한다. 



    이것은 일단 키프레임을 설정해 움직임을 만든 뒤, Animation 창의 아래쪽에 있는 Curves 버튼을 눌러 보간 패턴을 - 값으로 계산해 적용시켜주면 된다. 0도에서 오른쪽으로 5도 더 돌아가므로 -5 정도로 낮추어 준다. 이 때도 옆의 수치값을 보면 수직방향(0도 = 360도)에서 오른쪽으로 5도 회전시키는 값이 360도에서 5도 빠진 355도로 적용되어버리고 있다. 회전의 보간에는 주의하자. 더 간단한 해결방법은 수치값을 입력한 뒤 엔터를 치지 말고 tab 키를 눌러 입력을 종료하는 것. 


  11. Hierarchy 창에 만들어진 스프라이트의 트리에서 원하는 부분을 선택하면, 보통은 Scene 창에 해당 부분의 핸들이 나와서 편리하게 보면서 조작과 변형을 할 수 있다. 그런데 가끔 해당 부분을 선택했는데도 Scene 창에 핸들이나 조절바가 전혀 안나올 때가 있다. 이 때는 선택이 된 상태에서 Inspector 창을 확인하자. 아마 Animator가 추가되어 있을 텐데, 이 Animator를 제거해주면 정상적으로 핸들이 나오고 조절이 가능해진다.



* 스프라이트의 동작관계설정 및 Prefab 저장


 1. Scene 창 옆에 있는 Animator 탭을 클릭하면 각 동작들 간의 관계설정이 가능하다. 


 2. 완전히 스프라이트를 저장하기 위해서는 몇 가지 귀찮은 작업이 필요한데 가장 중요한 것은 Prefab을 저장하는 것이다. Project 창의 Assets에 있는 Prefabs 폴더에 우클릭 후 Create > Prefab을 설정하면 아무것도 들어있지 않은 새 Prefab 파일이 만들어진다. Hierarchy 창에 만들어진 스프라이트의 최상위 폴더(해당 스프라이트)를 드래그해 방금 만든 빈 Prefab 파일 안에 넣으면 스프라이트가 제대로 보존된다.



* 만든 스프라이트를 저장할 때


 1. 메인 메뉴에 있는 Save Scene 이나 Save Project 는 캐릭터 스프라이트만을 별도로 저장하지는 않는다. 캐릭터 스프라이트만을 별도로 저장하고 싶다면 메뉴 > Assets > Export Package 를 선택해서 스프라이트만을 따로 저장해야 한다.


 2. Project 창에서 Animations 폴더에 스프라이트를 저장할 폴더를 만들고 지정한다. 



* 만들어진 스프라이트를 재생하고 확인해볼 때


 1. 메뉴 > Assets > Import Package > Custom Package 로 원하는 스프라이트를 불러온다


 2. 아래의 Assets 에서 Prefabs에 등록된 스프라이트를 메인 윈도우의 Scene으로 끌어다 놓는다. 스프라이트가 보이게 된다


 3. 메뉴 > Window > Animation 을 선택해 애니메이션 타임라인창을 띄운다


 4. 타임라인창의 왼쪽 위 플레이(▶) 버튼을 클릭하면 애니메이션이 재생된다. 한번 더 클릭하면 멈춘다.