아트 에셋 베스트 프랙티스 가이드
FBX 익스포트 가이드

3D 앱에서 모델을 임포트하는 방법

다음 두 가지 방법으로 3D 모델을 Unity로 임포트할 수 있습니다.

  • 3D 모델 파일을 파일 브라우저에서 Unity 프로젝트 창으로 직접 드래그합니다.
  • 3D 모델 파일을 프로젝트의 Assets 폴더로 복사합니다.

프로젝트 뷰에서 파일을 선택하고 인스펙터 창의 Model 탭으로 이동하여 임포트 옵션을 설정합니다. 임포트 옵션에 대한 자세한 내용은 모델 문서를 참조하십시오.

Unity는 가장 인기 있는 3D 애플리케이션에서 모델을 임포트하는 기능을 지원합니다. 특정 3D 패키지에서 임포트하는 방법에 대한 자세한 설명은 다음 페이지를 참조하십시오.

텍스처

Unity 프로젝트의 Assets 폴더(익스포트된 메시 옆) 안에 있는 Textures 라는 폴더에 텍스처를 저장해야 합니다. 그러면 Unity 에디터가 텍스처를 찾아 생성된 머티리얼에 연결할 수 있습니다. 자세한 내용은 텍스처 임포트 문서를 참조하십시오.

3D 포맷(3D formats)

Unity는 아래 두 종류의 파일에서 메시를 임포트할 수 있도록 지원합니다.

  1. .fbx 또는 .obj와 같은 익스포트된 3D 파일 포맷. 3D 모델링 소프트웨어를 통하여 다양한 소프트웨어가 임포트하고 수정할 수 있는 일반 포맷 파일을 익스포트할 수 있습니다.
  2. 3D Studio Max 또는 Blender에서 가져온 .max와 .blend 파일 포맷과 같은 3D 또는 DCC(디지털 콘텐츠 제작) 애플리케이션 전용 파일. 전용 파일은 이를 생성한 동일한 소프트웨어에서만 수정할 수 있습니다. 이는 먼저 전환하고 임포트하지 않는 이상 다른 소프트웨어가 직접 수정할 수 없습니다. 단, SketchUp의 .skp 파일은 예외로 SketchUp와 Unity에서 모두 읽기 가능합니다.

Unity는 두 파일 타입 모두 임포트하고 사용할 수 있으며, 각각 장단점이 있습니다.

익스포트된 3D 파일

Unity에서 읽기 가능한 파일 타입은 .fbx, .dae (Collada), .3ds, .dxf, .obj, .skp입니다. 3D 파일을 익스포트하는 방법에 대한 자세한 내용은 사용하는 3D 모델링 소프트웨어 문서를 참조하십시오.

장점:

  • Unity에 전체 모델을 임포트하는 대신 필요한 모델의 일부만 임포트할 수 있습니다.
  • 익스포트된 일반 파일은 보통 전용 파일에 비해 용량이 작습니다.
  • 익스포트된 일반 파일을 사용하는 것은 모듈 단위 접근 방식을 용이하게 합니다(예를 들어, 각 충돌 타입이나 상호 작용성에 따라 서로 다른 컴포넌트 사용).
  • Unity가 직접 지원하지 않는 소프트웨어를 통해서 생성된 파일을 임포트할 수 있습니다.
  • 익스포트된 3D 파일(.fbx, .obj)은 익스포트한 이후 3D 모델링 소프트웨어로 다시 임포트해서 파일 전체를 올바르게 익스포트했는지 확인할 수 있습니다.

단점:

  • 원본 파일에 변경사항이 있는 경우 모델을 수동으로 다시 익스포트해야 합니다.
  • 소스 파일과 Unity가 임포트한 파일의 버전이 동일한지 주의를 계속 기울여야 합니다.

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

Unity는 Max, Maya, Blender, Cinema4D, Modo, Lightwave, Cheetah3D 와 같은 DCC 소프트웨어에서 전용 파일을 임포트할 수 있습니다. 이렇게 가져온 파일은 임포트하는 동안 Unity가 .fbx 파일로 전환합니다.

장점:

  • 원본 모델의 변경사항을 Unity가 자동으로 임포트합니다.
  • 초기에는 간단합니다(다만 이후 개발에서는 복잡해질 수 있습니다).

단점:

  • Unity 프로젝트를 사용하는 모든 컴퓨터에 정품 소프트웨어를 설치해야 합니다.
  • Unity 프로젝트를 사용하는 모든 컴퓨터에 사용되는 소프트웨어의 버전이 동일해야 합니다. 상이한 버전을 사용하는 경우, 3D 모델을 임포트하는 동안 오류나 예기치 못한 동작이 발생할 수 있습니다.
  • 불필요한 데이터로 인해 파일 용량이 커질 수 있습니다.
  • 용량이 큰 파일은 Unity 프로젝트나 에셋을 임포트하는 시간을 늘리는데, 이는 Unity에 모델을 임포트하는 동안 DCC 소프트웨어를 백그라운드 프로세스로서 실행해야 하기 때문입니다.
  • Unity는 내부적으로 전용 파일을 .fbx로 임포트하는 동안 전환합니다. 이는 .fbx 데이터를 검증하고 문제를 해결하기 어렵게 합니다.

참고:.ma, .mb, .max, .c4d, .blend 파일로 저장된 에셋은 사용자의 컴퓨터에 해당 DCC 소프트웨어가 설치되지 않은 경우, 임포트할 수 없습니다. 이는 Unity 프로젝트에 작업하는 모든 컴퓨터에 올바른 소프트웨어를 설치해야 함을 의미합니다. 예를 들어, ExampleModel.mbMaya를 사용하여 생성하고 프로젝트에 복사한 경우, 프로젝트를 열기 위해서는 컴퓨터에 Maya가 설치되어 있어야 합니다.

모델 임포터: 모델(Model Importer: Model)

Unity 프로젝트의 Assets 폴더에 위치한 모델 파일은 자동으로 임포트되고 Unity 에셋으로 저장됩니다.

모델 파일에는 캐릭터, 빌딩, 가구 같은 3D 모델이 포함될 수 있습니다. 모델은 여러 에셋으로 임포트됩니다. 임포트되는 주요 오브젝트는 프로젝트 창에 표시되는 모델 프리팹입니다. 일반적으로 모델 프리팹에서 참조하는 여러 메시 오브젝트도 이 창에 표시됩니다.

모델 파일에는 자신을 비롯한 다른 모델을 애니메이션화하는 데 사용할 수 있는 애니메이션 데이터도 포함될 수 있습니다. 애니메이션 데이터는 하나 이상의 애니메이션 클립으로 임포트됩니다.

![메시 렌더러와 함께 메시 필터를 사용하면 모델을 화면에 나타낼 수 있습니다.](../uploads/Main/MeshExample40.png)

메시 임포트 설정

모델 파일의 Import Settings 는 모델을 선택하면 FBX 임포터 인스펙터 창의 Model 탭에 표시됩니다. 메시와 해당 노멀에 영향을 미칩니다. 설정은 디스크의 에셋별로 적용되므로, 설정이 다른 에셋이 필요하다면 중복 파일을 만들고 이름을 적절히 바꾸십시오.

프로퍼티 기능
Meshes
Scale Factor Unity의 물리 시스템은 임포트한 파일의 1단위를 게임 월드의 1미터에 맞추도록 설정되어 있습니다. 모델을 임포트할 때 다른 스케일을 적용하고 싶다면 여기에서 값을 조절하면 됩니다. 여러 3D 패키지의 기본값은 다음과 같습니다.
.fbx, .max, .jas, .c4d = 0.01
.mb, .ma, .lxo, .dxf, .blend, .dae = 1
.3ds = 0.1
Use File Scale 기본 모델 스케일을 사용하거나 커스텀 File Scale 값을 모델에 사용하도록 설정하려면 선택 해제합니다. Unity의 물리 시스템은 임포트한 파일의 1단위를 게임 월드의 1미터에 맞추도록 설정되어 있습니다. 모델을 임포트할 때 다른 스케일을 적용하고 싶다면 여기에서 값을 조절하면 됩니다.
File Scale 모델에 사용할 커스텀 스케일을 설정합니다. Use File Scale 이 선택된 경우에만 사용 가능.
Mesh Compression 값을 높게 설정하면 메시 파일 크기를 줄일 수 있지만 모델이 불규칙해질 수 있습니다. 따라서 압축되지 않은 버전과 비교해서 메시가 지나치게 차이가 나지 않는 선에서 이 값을 최대한 높게 설정하는 것이 좋습니다. 게임 크기 최적화에 유용합니다.
Read/Write Enabled 활성화하면 메시 데이터가 메모리에 저장되어 커스텀 스크립트에서 데이터를 읽고 변경할 수 있습니다. 이 옵션을 비활성화하면 Unity 에디터가 게임의 메시 데이터 사본을 언로드할 수 있기 때문에 메모리가 절약됩니다. 하지만 메시가 메시 콜라이더와 함께 사용되는 일부 특별한 경우에는 이 옵션을 활성화해야 합니다. 여기에는 다음과 같은 경우가 포함됩니다.
- 음수 스케일(예: (–1, 1, 1)).
- 전단 변환(예를 들어, 회전된 메시에 스케일링된 상위 트랜스폼이 있는 경우).
Optimize Mesh 삼각형이 메시에 나열되는 순서를 Unity 에디터가 결정하도록 합니다. Unity는 보다 나은 GPU 성능을 위해 버텍스와 인덱스를 재정렬합니다.
Import BlendShapes Unity 에디터에서 BlendShape를 메시와 함께 임포트하도록 설정합니다.
Generate Colliders 활성화하면 메시를 임포트할 때 메시 콜라이더를 자동으로 추가합니다. 환경 지오메트리에 충돌 메시를 빠르게 생성할 때 유용하지만 움직이는 지오메트리에는 사용하지 말아야 합니다.
Keep Quads Unity 에디터는 모든 타입의 다각형(삼각형부터 N각형)을 임포트할 수 있습니다. 꼭지점이 4개 이상인 다각형은 항상 삼각형으로 변환됩니다. 사각형은 “Keep Quads”가 꺼져있을 때에만 삼각형으로 변환됩니다. 테셀레이션 셰이더를 사용할 때는 사각형(quad)이 다각형(polygon)보다 더 좋습니다. 자세한 내용은 표면 셰이더 테셀레이션 문서를 참조하십시오.
Index Format 메시 인덱스 버퍼의 크기를 정의합니다. 참고: 대역폭 및 메모리 저장소 크기를 고려하여 일반적으로 16 bit 인덱스를 기본으로 유지하고, 필요한 때에만 32 bit 를 사용하는 것이 좋습니다.
Auto Unity 에디터가 메시를 임포트할 때 메시 버텍스 수에 따라 16비트 인덱스를 사용할지 32비트 인덱스를 사용할지 자동으로 선택합니다. Unity 2017.3 이상의 버전에서 추가된 에셋에 적용되는 기본값입니다.
16 bit Unity 에디터가 메시를 임포트할 때 항상 16비트 인덱스를 사용합니다. 메시가 상대적으로 크면 64k보다 작은 버텍스 청크로 분할됩니다. Unity 2017.2을 포함한 이전 버전에서 만든 프로젝트에 포함된 에셋에는 이 설정이 적용됩니다.
32 bit Unity 에디터가 메시를 임포트할 때 항상 32비트 인덱스를 사용합니다. GPU 기반 렌더링 파이프라인 작업을 (예를 들어 컴퓨트 셰이더 삼각형 컬링을 통해) 수행하는 경우 유용할 수 있습니다. 모든 메시에 동일한 인덱스 포맷이 사용되도록 보장하고, 컴퓨트 셰이더가 한 가지 포맷만 처리하면 되므로 더 간단해집니다.
Weld Vertices 공간에서 같은 위치를 공유하는 버텍스를 결합합니다. 이 기능은 전체 개수를 줄여 메시의 버텍스 개수를 최적화합니다. 기본적으로 이 옵션은 활성화되어 있습니다.

In some cases, you might need to switch this optimization off when importing your Meshes; for example, if you have constructed your Mesh in such a way that you intentionally have duplicate vertices which occupy the same position, and you want to use scripting to read or manipulate the individual vertex or triangle data. 경우에 따라 메시를 임포트할 때 이 최적화를 해제해야 할 수도 있습니다. 예를 들어 중복된 두 개의 버텍스를 메시의 같은 위치에 존재하도록 의도했을 경우 각 버텍스나 삼각형 데이터를 읽거나 수정할 수 있게 하려면 스크립트를 사용하는 편이 나을 수 있습니다.
Import Visibility MeshRenderer 컴포넌트의 활성화(가시성) 여부를 지정하는 FBX 설정을 임포트합니다. 자세한 내용은 아래 가시성 임포트를 참조하십시오.
Import Cameras .FBX 파일에서 카메라를 임포트합니다. 자세한 내용은 아래 카메라 임포트를 참조하십시오.
Import Lights .FBX 파일에서 광원을 임포트합니다. 자세한 내용은 아래 광원 임포트를 참조하십시오.
Preserve Hierarchy 이 모델에 루트가 하나만 있는 경우에도 항상 명시적인 프리팹 루트를 생성합니다. 일반적으로 FBX 임포터는 최적화 방법의 하나로 빈 루트 노드를 모델에서 제거합니다. 하지만 동일한 계층 구조의 일부분이 포함된 FBX 파일이 여러 개인 경우 이 옵션을 사용하여 원래 계층 구조를 유지할 수 있습니다.

예를 들어 file1.fbx에 릭과 메시가 있고 file2.fbx에는 동일한 릭이 있지만 메시의 애니메이션만 포함된 경우, 이 옵션을 활성화하지 않고 file1.fbx를 임포트하면 애니메이션이 릭 없이 임포트되고 계층 구조가 일치하지 않고 애니메이션이 끊어집니다.
Swap UVs 메시의 기본 UV 채널과 보조 UV 채널을 서로 바꿉니다. 디퓨즈 텍스처가 라이트맵에서 UV를 사용할 경우 이 옵션을 사용합니다.
Generate Lightmap UVs 라이트매핑에 사용할 두 번째 UV 채널을 생성합니다. 자세한 내용은 라이트매핑 문서를 참조하십시오.
Normals & Tangents
Normals 노멀을 계산해야 하는지 여부와 그 방법을 정의합니다. 게임 크기 최적화에 유용합니다.
Import 기본값입니다. 파일에서 노멀을 임포트합니다.
Calculate Smoothing Angle 을 기준으로 노멀을 계산합니다. 선택하면 Smoothing Angle 이 활성화됩니다.
None 노멀을 비활성화합니다. 메시가 노멀 매핑되지 않고 실시간 조명의 영향을 받지 않을 때 이 옵션을 사용합니다.
Normals Mode Unity 에디터가 노멀을 계산되는 방법을 정의합니다. NormalsCalculate 로 설정되어 있을 때에만 사용할 수 있습니다.
Unweighted Legacy 노멀을 계산하는 레거시(2017.1 이전 버전) 방법입니다. 경우에 따라 결과가 현재 구현 방법과 약간 다를 수 있습니다. 프로젝트를 최신 Unity 버전으로 마이그레이션하기 전에 임포트된 모든 FBX 프리팹의 기본값입니다.
Unweighted 노멀에 가중치를 부여하지 않습니다.
Area Weighted 면 영역을 기준으로 노멀에 가중치를 부여합니다.
Angle Weighted 각 면의 버텍스 각도를 기준으로 노멀에 가중치를 부여합니다.
Area and Angle Weighted 면 영역과 각 면의 버텍스 각도를 모두 기준으로 노멀에 가중치를 부여합니다. 해당 옵션이 기본값입니다.
Tangents 버텍스 탄젠트를 임포트하거나 계산할 방법을 정의합니다. NormalsCalculate 또는 Import 로 설정된 경우에만 사용할 수 있습니다.
Import NormalsImport 로 설정된 경우에만 FBX 파일에서 버텍스 탄젠트를 임포트합니다. 메시에 탄젠트가 없는 경우 노멀 매핑된 셰이더와 함께 사용할 수 없습니다.
Calculate Tangent Space MikkTSpace를 사용하여 탄젠트를 계산합니다. NormalsCalculate 로 설정된 경우 기본 옵션입니다.
Calculate Legacy 레거시 알고리즘을 사용하여 탄젠트를 계산합니다.
Calculate Legacy - Split Tangent 레거시 알고리즘을 사용해 탄젠트를 UV 차트 간에 분할하여 계산합니다. 메시의 경계 부분으로 노멀 맵 조명이 구분되는 경우에 사용합니다. 일반적으로 캐릭터에만 적용됩니다.
None 버텍스 탄젠트를 임포트하지 않습니다. 메시에는 탄젠트가 없으므로 노멀 매핑된 셰이더에 사용할 수 없습니다.
Smoothing Angle 가장자리의 각도가 날카로운지 여부를 결정하는 기준 값을 설정합니다. 노멀 맵 탄젠트를 분할할 때에도 사용됩니다.

가시성 임포트

Unity는 Import Visibility 프로퍼티를 사용하여 FBX 파일에서 가시성 프로퍼티를 읽을 수 있습니다.

Renderer.enabled 프로퍼티를 제어하여 값과 애니메이션 커브에서 MeshRenderer 컴포넌트를 활성화하거나 비활성화할 수 있습니다.

가시성 상속은 기본적으로 true지만 오버라이드할 수 있습니다. 예를 들어 부모 메시의 가시성을 0으로 설정하면 그 자식의 렌더러도 모두 비활성화됩니다. 이 경우 자식의 Renderer.enabled 프로퍼티에 대해 애니메이션 커브가 각각 하나씩 생성됩니다.

일부 3D 모델링 애플리케이션은 가시성 프로퍼티를 지원하지 않거나 제한적으로 지원합니다. 자세한 내용은 다음을 참조하십시오.

카메라 임포트

FBX 파일에서 카메라를 임포트할 때 다음 카메라 프로퍼티가 지원됩니다.

프로퍼티: 기능:
Projection 모드 직교 또는 원근입니다. 애니메이션은 지원하지 않습니다.
Field of View 애니메이션을 지원합니다.
NearFar Clipping Plane 거리 애니메이션을 지원하지 않습니다. 3DSMax에서 익스포트하는 경우 Clip Manually 설정을 활성화하십시오. 그러지 않으면 임포트 시에 기본값이 적용됩니다.

참조: 타겟 카메라는 지원되지 않습니다.

광원 임포트

다음 광원 타입이 지원됩니다.

  • 옴니(Omni)
  • 스폿(Spot)
  • 방향(Directional)
  • 면(Area)

다음 광원 프로퍼티가 지원됩니다.

프로퍼티: 기능:
Range UseFarAttenuation 이 활성화된 경우 FarAttenuationEndValue 가 사용됩니다. FarAttenuationEndValue 는 애니메이션을 지원하지 않습니다.
Color 애니메이션을 지원합니다.
Intensity 애니메이션을 지원합니다.
Spot Angle 애니메이션을 지원합니다. 스폿 광원에만 사용할 수 있습니다.

참고: 3DSMax에서 익스포트되는 기본값은 현재 선택된 프레임의 프로퍼티 값입니다. 혼동이 없도록 익스포트할 때 플레이헤드를 프레임 0으로 이동하십시오.

제한 사항

일부 3D 모델링 애플리케이션에서는 광원 프로퍼티에 스케일링을 적용합니다. 예를 들어 스폿 광원을 계층별로 스케일링하고 광원 원뿔에 영향을 미칠 수 있습니다. Unity에서는 이렇게 하지 않으므로 광원이 Unity에서 다르게 보일 수 있습니다.

FBX 포맷을 사용하면 면 광원의 너비와 높이가 정의되지 않습니다. 일부 3D 모델링 애플리케이션에는 이 프로퍼티가 없으므로 스케일링을 사용하여 사각 영역만 정의할 수 있습니다. 그렇기 때문에 면 광원을 임포트할 때 광원의 크기는 항상 1입니다.

타겟 광원 애니메이션은 해당 애니메이션이 베이크된 경우 외에는 지원되지 않습니다.


  • 2017–09–04 일부 편집 리뷰를 거쳐 페이지 수정됨

  • 2018–03–12 일부 편집 리뷰를 거쳐 페이지 수정됨

  • Unity 5.6 매뉴얼에서 Unity 5.6 이전부터 있던 Keep Quads 기능을 처음 설명

  • Unity 2017.1에서 Normals Mode, Light, Camera 임포트 옵션 추가됨 NewIn20171

  • Unity 2017.2에서 Materials 탭 추가됨 NewIn20172

  • Unity 2017.3에서 Index Format 프로퍼티 추가됨 NewIn20173

  • 2017.3에서 Preserve Hierarchies 추가됨 NewIn20173

참고 항목

아트 에셋 베스트 프랙티스 가이드
FBX 익스포트 가이드