전체 페이지뷰

2017년 5월 26일 금요일

유니티: 에셋 워크 플로우

유니티에서 asset을 가지고 작업하는 과정에 있어서 일반적 원칙에 대해 알아 봅니다.
에셋이란 프로젝트나 게임에 사용되는 모든 아이템을 지칭합니다. 에셋은 3D 모델, 오디오 파일, 이미지 또는 Unity가 지원하는 다른 유형의 파일 등 Unity 외부에 생성된 파일에서 가져올 수 있습니다. 물론 Animator Controller, Audio Mixer, Render Texture와 같이 Unity 내에서 생성할 수 있는 에셋 유형도 있습니다.


프리미티브 오브젝트(Primitive Objects)



Unity에서는 모델링 소프트웨어에 의해 만들어질 수 있는 모든 형태의 3D 모델을 다룰 수 있습니다. 그러나 Unity에서 직접 만들 수 있는 프리미티브 오브젝트 유형이 있으며, 그것들은 Cube, Sphere, Capsule, Cylinder, Plane, Quad입니다. 이러한 오브젝트는 그대로도 유용하지만(예를 들면 Plane은 평평한 지면으로 자주 사용됩니다), 추가 테스트 목적으로 오브젝트 틀이나 프로토 타입으로도 활용할 수 있습니다. 모든 프리미티브 GameObject > 3D Object 메뉴를 사용하여 각 항목을 선택하여 씬에 추가할 수 있습니다.

큐브(cube)

한변 길이 1 unit.
기둥, 상자, 계단 등에 쓰임
완성된 모델 대신 규격만 맞춘 프로토타입 코드 테스트용으로 많이 쓰임




구(Sphere)


직경 1(반지름 0.5)





캡슐(Capsule)


직경 1, 높이 2( 위 아래 반구가 0.5 높이, 가운데 원통이 1)





원기둥(Cylinder)


직경 1, 높이 2
기둥, 막대기, 타이어에 많이 쓰이나 실제 콜라이더의 형상은 실린더임을 명심해야 함(Primitive cylinder의 콜라이더는 없음)


평면(Plane)


평평한 사각형이며 XZ 평면상 10 단위길이.
바닥, 벽 등에 사용하지만 Quad가 더 많이 사용되기도.




쿼드(Quad)


Plane과 유사하나 각 길이 1.
XY 평면에 적합.
씬의 오브젝트 디스플레이 화면이나
간단한 GUI 구현에 사용 가능




에셋 임포트

유니티 외부에서 생성된 에셋은 유니티에 프로젝트의 "Assets"폴더에 직접 저장하거나 복사해 넣어서 유니티로 가져와 집니다. Unity는 파일에 새로운 변경 사항이 저장되면 이를 인지하고 필요에 따라 다시 가져옵니다.

Unity Project를 만들면 프로젝트의 이름을 딴 폴더가 생성되며 그 폴더에는 다음과 같은 하위 폴더가 있습니다 :

Assets 폴더에 사용할 파일을 넣어주면 됩니다.

Unity를 통해 프로젝트 Assets 폴더에 추가할 때마다 자동으로 파일을 탐지할 수 있습니다. 에셋을 Assets 폴더에 넣을 때, Project View 에셋이 표시됩니다. 



파일을 컴퓨터로부터(맥의 Finder나 윈도우의 탐색기로부터) Unity 프로젝트 윈도우로 드래그하면 그 파일이 Assets 폴더로 복사되고 Project 창에 나타납니다.

Project 창에 표시되는 아이템은 컴퓨터의 실제 파일을 나타내며, Unity에서 삭제하면 컴퓨터에서도 삭제됩니다.


위의 예는 컴퓨터 내의 에셋 폴더와 유니티 프로젝트 창에 나타나는 파일간의 관계입니다. 폴더 내에 자유로이 폴더를 추가하고 구성할 수 있습니다.

위 이미지에서 .meta 파일이 파일 시스템 상에 나열되어 있지만 Unity의 Project Window에는 표시되지 않습니다. Unity는 각 에셋과 폴더에 대해 .meta 파일을 생성하지만 기본적으로 숨겨져 있으므로 Explorer / Finder에서도 볼 수 없습니다.

meta 파일에는 프로젝트에서 에셋을 사용하는 방법에 대한 중요한 정보가 들어 있으며 관련된 에셋 파일을 유지해야 하므로 탐색기/Finder에서 에셋 파일을 이동하거나 이름을 바꾸면 메타 파일 역시 이동하거나 이름을 바꾸어 일치시켜야 합니다.

따라서 안전하게 에셋 파일을 이동하거나 이름을 바꾸기 위해서는 언제나 유니티 프로젝트 윈도우 상에서 작업하는 것이 좋습니다. 그러면 유니티가 자동으로 meta파일을 변경하거나 이동시켜줄 것입니다.

에셋 컬렉션을 프로젝트로 불러오고 싶다면 Asset packages를 사용할 수 있습니다(나중에 자세히 알아봅니다).


Some common types of Asset

이미지 파일

BMP, TIF, TGA, JPG, PSD와 같이 가장 일반적인 이미지 파일 형식이 지원됩니다. PSD파일은 병합된 형태로 저장됩니다. 

3D 모델

가장 일반적인 3D 소프트웨어 패키지의 기본 파일(예: .max, .blend, .mb, .ma)을 에셋 폴더에 저장하면, 3D 패키지의 FBX 내보내기 플러그인을 다시 호출하여 해당 파일을 가져옵니다. 또는 3D 앱에서 FBX로 유니티 프로젝트로 내보낼 수도 있습니다.

매쉬와 애니메이션

Unity는 메쉬와 애니메이션을 각 파일에서 임포트합니다.  사용 가능한 3D 프로그램은 다음과 같습니다.

  • Maya
  • Cinema 4D
  • 3ds Max
  • Cheetah3D
  • Modo
  • Lightwave
  • Blender
  • SketchUp

Audio Files

압축되지 않은 오디오 파일을 Assets 폴더에 저장하면 지정된 압축 설정에 따라 가져옵니다. 지원 포맷은 mp3, ogg, wav, aiff/aif, mod, it, s3m, xm입니다.

어떤 경우에도 Unity에서 원본 소스 파일을 수정하지는 않습니다. 단, Unity 내에서 에셋을 압축, 수정, 처리하는 다양한 방법 중 하나를 선택할 수도 있습니다. 임포트할 때는 소스 파일을 읽고 선택한 설정과 일치하는 파일을 만듭니다. 에셋의 임포트 설정을 수정하거나 에셋 폴더에서 소스 파일을 변경하면 Unity가 새 에셋을 다시 반영하도록 에셋을 다시 임포트 합니다.

주의: 네이티브 3D 포맷을 임포트하기 위해서는 3D 프로그램이 유니티와 같은 컴퓨터에 설치되어 있어야 합니다(유니티가 파일을 읽을 때 해당 프로그램의 FBX 플러그인을 사용하기 때문).  또는 응용 프로그램에서 직접 FBX로 익스포트하여 Projects 폴더에 저장할 수도 있습니다.


Import Setting


Unity가 지원하는 각 유형의 에셋에는 임포트 설정 세트가 있으며, 이는 에셋이 표시되거나 작동하는 방식에 영향을 미칩니다. 표시되는 옵션은 선택한 에셋 유형에 따라 다릅니다.

예를 들어, 이미지 임포트 설정에선 텍스쳐, 2D 스프라이트, 노멀 맵 중 무엇을 임포트 할 것인지 선택할 수 있습니다. FBX 파일의 임포트 설정으로는 스케일 조정, 노말 또는 라이트 맵 생성, 파일에 정의된 애니메이션 클립을 분할하고 트리밍할 수 있습니다.

프로젝트 윈도우의 에셋 이미지를 클릭하면 인스펙터 창에서 임포트 세팅을 보여줍니다.

에셋 타입이 다르면 임포트 세팅 모습도 다릅니다. 아래는 오디오 에셋과 그 임포트 세팅 모습입니다.

cross platform 프로젝트를 개발하는 경우 "default"설정을 오버라이드하여 플랫폼별로 다른 임포트 설정을 지정할 수 있습니다.

Importing from the Asset Store


유니티 에셋 스토어는 유니티 테크놀로지스와 에셋스토어 커뮤니티에서 제작한 무료와 유료 상업 에셋을 다수 보유하고있는 라이브러리로, 지속적으로 성장하고 있습니다. 텍스쳐, 모델링 그리고 에니메이션 뿐만아니라 예제 프로젝트 전부, 혹은 튜토리얼과 에디터 익스텐션까지 폭넓고 다양한 에셋들을 이용할 수 있습니다. 에셋은 유니티 에디터에 내장되어있고, 간단하게 프로젝트로 바로 다운로드하여 사용할 수 있습니다.

Unity 사용자 스스로 에셋 스토어의 퍼블리셔가 되어 자신이 제작한 컨텐츠를 판매할 수 있습니다.

에셋 스토어 접근 및 조작

에셋스토어 창을 열려면 메인 메뉴에서 Window->AssetStore을 선택합니다. 처음 방문하면 사용자 계정을 무료로 만들수 있도록 메세지가 표시됩니다.



직관적으로 사용할 수 있는 버튼들이 상단에 있습니다.

다운로드 관리자에 의해 구매된 패키지를 표시하고 업데이트를 찾아 설치할 수 있습니다. 또한 Unity 표준 패키지도 같은 방법으로 추가할 수 있습니다.
다운로드된 파일에 직접 접근하는 경우는 매우 드물기는 하지만 필요한 경우
맥은
~/Library/Unity/Asset Store
윈도우는
C:\Users\accountName\AppData\Roaming\Unity\Asset Store
을 통해 접근할 수 있습니다.


Asset Packages


Unity 패키지는 Unity 프로젝트 및 에셋 컬렉션을 공유하고 재사용하는 편리한 방법입니다. 예를 들어, 스토어의 Unity Standard 에셋과 아이템은 패키지로 제공됩니다.

패키지는 유니티 프로젝트의 파일 혹은 데이터의 컬렉션이고, Zip파일과 유사하게 하나의 파일로 압축되어 있습니다. Zip 파일과 마찬가지로 패키지는 압축을 풀때 원래 디렉토리 구조뿐만 아니라 자산에 대한 메타 데이터 (임포트 설정, 다른 에셋에 대한 링크같은)를 유지합니다.

유니티에서 Export Package 메뉴는 컬렉션을 압축 저장하고, 반면 Import Package는 프로젝트에 컬렉션을 압축해제 합니다.

Import Package


Unity가 지원하는 에셋 컬렉션 인 Standard Asset Package와 Unity 유저들이 만든 custom 패키지를 임포트할 수 있습니다.
Assets > Import Package 를 통해 선택 가능합니다.

Standard Asset Packages

Unity 'Standard Assets'은 2D, Cameras, Characters, CrossPlatformInput, Effects, Environment, ParticleSystems, Prototyping, Utility, Vehicles 등 여러 패키지로 구성되어 있습니다.

새로운 Standard Asset 페키지를 임포트 하려면,

  1. 에셋을 임포트 하고 싶은 프로젝트를 엽니다.
  2. Assets> Import package> 가져올 패키지의 이름을 선택하면 패키지의 모든 항목이 미리 선택되어 설치 준비가 된 Import Unity Package 대화 상자가 나타납니다.
  3. Import를 선택하면 패키지의 내용이 standard asset 폴더에 저장되고, 프로젝트 뷰를 통해 액세스 할 수 있게 됩니다.


custom packages


자신의 프로젝트나 다른 Unity 사용자가 만든 프로젝트에서 export한 custom package를 가져올 수 있습니다.

방법은 다음과 같습니다.

에셋을 임포트 하고 싶은 프로젝트를 엽니다.

  1. Assets > Import Package > Custom Package를 선택하여 파일탐색기나 파인더를 엽니다.
  2. 탐색기에서 원하는 패키지를 선택하면 Import Unity Package 대화 상자가 표시되고 패키지의 모든 항목이 미리 선택되어 설치 준비가 됩니다.
  3. Import를 선택하면 패키지의 내용이 Assets 폴더에 저장되고, 프로젝트 뷰에서 액세스 할 수 있게 됩니다.



Export packages


자신만의 Custom package를 만들기 위해서는 Export package를 사용하십시오.


  1. 에셋을 가져오고 싶은 프로젝트를 엽니다.
  2. Choose Assets > Export Package를 메뉴에서 선택하여 Exporting Package 대화 상자를 불러옵니다.
  3. 대화 상자에서 확인란을 체크하여 패키지에 포함할 에셋을 선택합니다.
  4. include dependencies 상자를 선택된 상태로 유지하여 선택한 에셋에 사용된 것을 자동으로 선택되게 하십시오.
  5. Export를 클릭하여 파일탐색기를 불러오고 패키지 파일을 저장할 위치를 선택하십시오. 원하는 곳에 패키지의 이름을 지정하고 저장하십시오.

힌트: Export할 때는 모든 dependency들도 전부 함께 export됩니다. 그래서 예를 들어, Scene을 선택하고 모든 dependecy를 포함한 패키지를 내보내면 장면에 나타나는 모든 모델, 텍스처, 기타 에셋 역시 export할 수 있습니다. 이렇게 함면 수동으로 에셋을 검색할 필요없이 한번에 export할 수 있습니다.



Exporting Updated Packages


때로 패키지의 내용을 변경하고 최신 패키지로 업데이트하려는 경우가 있습니다. 그러기 위해서는:

패키지에서 원하는 에셋 파일을 선택(변경되지 않은 파일과 새 파일을 모두 선택)
위의 Export Packages에서 설명한 대로 export

Note: 업데이트 된 패키지의 이름을 바꿀 수 있으며 유니티는 이것을 업데이트로 인식하므로 번호를 증가시켜 이름을 지정할 수 있습니다 (예 : MyAssetPackageVer1, MyAssetPackageVer2).

Hint: 패키지에서 파일을 제거한 다음 동일한 이름으로 바꿔주는 것은 바람직하지 않습니다. 유니티는 그것들을 다른 충돌 가능성이 있는 파일들로 인식할 것이고 임포트될 때 경고 표시가 나타날 것입니다. 파일을 제거한 다음 교체하기로 결정한 경우에는 뜻이 비슷하지만 다른 이름을 지정하는 것이 좋습니다.


Standard Asset 업그레이드


유니티는 여러 개의 Standard Asset을 제공합니다. 이것들은 유니티 유저들이 널리 사용하는 에셋 모음이며, 2D, Cameras, Characters, CrossPlatformInput, Effects, Environment, ParticleSystems, Prototyping, Utility, Vehicles 입니다.

유니티는 패키지를 사용하여 Standard 에셋을 불러 들이거나 내보냅니다.

표준 에셋을 업그레이드 하려면, 앞의 Asset Packages에서 설명한 바대로 스토어로부터 설치 하시기 바랍니다.

Standard 에셋은 자동 업그레이드 되지 않습니다.

Unity에서 새 프로젝트를 만들 때 표준 에셋 컬렉션을 프로젝트에 포함하도록 선택할 수 있습니다. 유니티는 선택한 에셋을 유니티 인스톨 폴더로부터 복사하여 새 프로젝트 폴더에 붙여 넣습니다. 그 말은 곧, 유니티 에디터를 최신으로 업그레이드 한다고 해도 이미 프로젝트로 가져온 표준 에셋이 업그레이드 되지 않는다는 것입니다. 반드시 수동으로 업그레이드 해야 합니다.

Hint: 최신 버전의 표준 에셋은 기존 것과 다르게 작동할 수 있습니다. 새 버전을 사용하면 프로젝트가 다르게 보이거나 바뀔 수 있으며 매개 변수를 다시 조정해야 할 수도 있습니다.
다시 설치하기 전에 패키지 내용과 Unity의 릴리스 정보를 확인하십시오. 

댓글 없음:

댓글 쓰기