Version: 5.5
메시 컴포넌트
머티리얼

메시

Meshes 는 3D 월드의 커다란 부분을 구성합니다. 몇몇 에셋 스토어 플러그인을 제외하고, Unity에는 모델링 툴이 포함되어 있지 않습니다. 그러나 Unity는 대부분의 3D 모델링 패키지와 상호운용성이 우수합니다. Unity는 삼각 또는 사각 폴리곤 메시를 지원합니다. Nurbs, Nurms, Subdiv 표면은 폴리곤으로 변환해야 합니다.

3D formats

Importing meshes into Unity can be achieved from two main types of files:

  1. Exported 3D file formats, such as .FBX or .OBJ
  2. Proprietary 3D application files, such as .Max and .Blend file formats from 3D Studio Max or Blender for example.

Either should enable you to get your meshes into Unity, but there are considerations as to which type you choose:

익스포트된 3D 파일

Unity can read .FBX, .dae (Collada), .3DS, .dxf and .obj files, FBX exporters can be found here and obj or Collada exporters can also be found for many applications

장점:

  • 필요한 데이터만 익스포트
  • Verifiable data (re-import into 3D package before Unity)
  • 일반적으로 작은 파일
  • Encourages modular approach - e.g different components for collision types or interactivity
  • Supports other 3D packages whose Proprietary formats we don’t have direct support for

단점:

  • Can be a slower pipeline for prototyping and iterations
  • Easier to lose track of versions between source(working file) and game data (exported FBX for example)

3D 애플리케이션 전용 파일

Unity can also import, through conversion: Max, Maya, Blender, Cinema4D, Modo, Lightwave & Cheetah3D files, e.g. .MAX, .MB, .MA etc.

장점:

  • Quick iteration process (save the source file and Unity reimports)
  • 초반에는 간단함

단점:

  • Unity 프로젝트를 사용하여 모든 컴퓨터에 해당 소프트웨어의 라이선스 사본을 설치해야 함
  • 불필요한 데이터로 인해 파일 용량이 커질 수 있음
  • 용량이 큰 파일로 인해 Unity 업데이트가 느려질 수 있음
  • Less validation, so it is harder to troubleshoot problems

직접 지원되는 3D 애플리케이션에 대한 가이드라인은 다음과 같으며 나머지는 대부분 위에 나열된 파일 타입을 익스포트할 수 있습니다.

텍스처

Unity는 지정된 검색 계획에 따라 임포트 시 메시가 자동으로 사용한 텍스처를 찾으려고 합니다. 먼저 임포터는 메시와 동일한 폴더, 또는 기타 상위 폴더에서 Textures라는 하위 폴더를 찾아봅니다. 찾을 수 없는 경우 프로젝트의 모든 텍스처를 모두 검색합니다. 전체 검색이 다소 느린 것도 문제지만 주 단점은 프로젝트에 이름이 같은 텍스처가 두 개 이상 포함될 수 있다는 것입니다. 이 경우 올바른 텍스처가 검색된다고 보장할 수 없습니다.

에셋 수준과 같거나 더 위에 있는 Textures 폴더에 텍스처를 저장해야 합니다.
에셋 수준과 같거나 더 위에 있는 Textures 폴더에 텍스처를 저장해야 합니다.

모델의 FBX 임포터 옵션

머티리얼 생성 및 할당

Unity는 임포트된 각 머티리얼에 다음 규칙을 적용합니다.

머티리얼 생성이 비활성화된 경우(즉__Import Materials__ 가 선택되지 않음) Default-Diffuse 머티리얼이 할당됩니다. 머티리얼 생성이 활성화된 경우 다음 작업을 수행합니다.

  • Unity는 Material Naming 설정에 따라 Unity 머티리얼의 이름을 선택합니다.
  • Unity는 해당 이름을 가진 기존 머티리얼을 찾으려고 합니다. 머티리얼 검색 범위는 Material Search 설정을 통해 정의됩니다.
  • Unity는 기존 머티리얼을 찾는 데 성공할 경우 해당 머티리얼을 임포트된 씬에 사용하고, 그렇지 않으면 새 머티리얼을 생성합니다.

콜라이더

Unity가 사용하는 두 가지의 주요 콜라이더 타입은 Mesh CollidersPrimitive Colliders 입니다. 메시 콜라이더는 임포트된 메시 데이터를 사용하는 컴포넌트로 환경 충돌에 사용할 수 있습니다. 임포트 설정에서 Generate Colliders 를 활성화하면 메시가 씬에 추가될 때 메시 콜라이더가 자동으로 추가됩니다. 이는 물리 시스템에서 정상적으로 인식됩니다.

오브젝트(예: 자동차)를 여기저기로 움직이는 경우 메시 콜라이더를 사용할 수 없습니다. 기본 콜라이더를 대신 사용해야 합니다. 이 경우 Generate Colliders 설정을 비활성화해야 합니다.

애니메이션

애니메이션은 씬에서 자동으로 임포트됩니다. 애니메이션 임포트 옵션에 대한 자세한 내용은 메카님 애니메이션 시스템에서 에셋 준비 및 임포트 섹션을 참조하십시오.

노멀 매핑 및 캐릭터

모델의 고차원 폴리곤 버전으로부터 생성된 노멀 맵이 포함된 캐릭터가 있는 경우, 게임 품질 버전을 180도의 Smoothing angle 로 임포트해야 합니다. 그러면 탄젠트 분할로 인해 조명에 이상하게 생긴 경계부분이 발생하지 않습니다. 이런 설정을 사용해도 계속 눈에 띄는 경계 부분이 있으면 Split tangents across UV seams 를 활성화해야 합니다.

그레이스케일 이미지를 노멀 맵으로 변환하는 경우에는 이에 대해 신경쓰지 않아도 됩니다.

Blendshapes

Unity는 BlendShapes(모프 타겟 또는 버텍스 수준 애니메이션이라고도 함)를 지원합니다. Unity는 .FBX(BlendShapes 및 컨트롤링 애니메이션)와 .dae(BlendShapes만)에서 익스포트된 3D 파일에서 BlendShapes를 임포트할 수 있습니다. Unity BlendShapes는 버텍스, 노멀 및 탄젠트에서 버텍스 수준 애니메이션을 지원합니다. 메시는 스킨과 BlendShapes의 영향을 동시에 받을 수 있습니다. BlendShapes를 통해 임포트한 모든 메시는(스킨 포함 여부와 관계없이) SkinnedMeshRenderer를 사용합니다. BlendShapes 애니메이션은 일반 애니메이션의 일부로 임포트됩니다. 즉, 간단히 BlendShape 가중치를 SkinnedMeshRenderer에서 애니메이션화합니다.

다음 두 가지 방법으로 BlendShape를 노멀과 함께 임포트할 수 있습니다.

  1. Normals 임포트 모드를 Calculate 로 설정합니다. 그러면 메시와 BlendShapes에서 노멀을 산출하는 데 동일한 로직이 사용됩니다.
  2. 스무딩 그룹 정보를 소스 파일로 익스포트합니다. 그러면 Unity가 메시 및 BlendShapes의 스무딩 그룹으로부터 노멀을 산출합니다.

BlendShapes에 탄젠트가 있게 하려면 Tangents 임포트 모드를 Calculate 로 설정해야 합니다.

힌트

  • 메시를 서로 최대한 병합해야 합니다. 메시가 머티리얼과 텍스처를 공유하도록 해야 합니다. 그러면 성능이 크게 향상됩니다.
  • Unity에서 오브젝트에 추가 설정(물리, 스크립트 또는 기타 개선점 추가)을 적용해야 하는 경우, 3D 애플리케이션에서 오브젝트의 이름을 올바르게 지정하여 많은 문제를 방지할 수 있습니다. 여러 개의 pCube17 이나 Box42 같은 이름의 오브젝트를 사용하여 작업해야 한다면 즐겁지 않을 수 있습니다.
  • 메시가 3D 앱의 월드 좌표계의 중심에 위치하도록 해야 합니다. 그러면 Unity에 메시를 더 쉽게 배치할 수 있습니다.
  • 메시의 버텍스가 컬러 요소를 가지지 않을 경우 Unity는 메시가 처음 렌더링될 때 올화이트 버텍스 컬러 배열을 메시에 자동으로 추가합니다.

Unity 에디터가 (3D 앱에 나오는 내용에 비해)너무 많은 버텍스 또는 삼각형을 표시함

이 현상은 정상입니다. 표시되는 내용은 렌더링을 위해 실제로 GPU로 전송되고 있는 버텍스/삼각형의 수입니다. 머티리얼이 버텍스 /삼각형을 두 번 전송하도록 요구하는 경우 이외에도 하드 노멀 및 비인접 UV 같은 요인은 버텍스/삼각형 수를 모델링 앱에 나오는 수보다 훨씬 더 많이 증가시킵니다. 3D 및 UV 공간에서 모두 심각형이 스트립을 형성하려면 서로 인접해야 하므로 UV 경계 부분이 있는 경우 스트립을 형성하려면 퇴화 삼각형을 만들어야 합니다. 이로 인해 버텍스/삼각형의 수가 증가합니다.

메시 컴포넌트
머티리얼