데이터스미스 개요

Datasmith, 데이터스미스 작동 방식과 사용했을 때 기대할 수 있는 이점에 대한 개요입니다.

Windows
MacOS
Linux

Datasmith (데이터스미스)는 언리얼 엔진 4 에 콘텐츠를 쉽게 가져올 수 있도록 해주는 툴과 플러그인 모음입니다.

언리얼 스튜디오 서비스의 일부인 데이터스미스는 게임 업계 외부 사람이 언리얼 엔진의 실시간 렌더링 및 시각화 기능을 사용할 때 직면하는 문제 해결을 위해 설계된 것입니다. 건축, 엔지니어링, 건설, 제조, 라이브 트레이닝 등의 분야를 망라하지만, 애셋 파이프라인에 비슷한 문제를 겪는 게임 개발자에게도 흥미로울 수 있습니다.

데이터스미스의 유용성

데이터스미스는 매우 야심찬 목표를 갖고 있습니다.

  • 미리 구성되어 있는 씬과 복잡한 어셈블리를, 그 규모, 밀도, 복잡도에 상관 없이 한꺼번에 가져옵니다. 씬과 어셈블리를 청크 단위로 분해하고 각각을 FBX 임포트 파이프라인을 통해 게임 엔진에 전달한 뒤 언리얼 에디터에서 씬을 재구성할 필요 없이, 데이터스미스는 다른 디자인 툴에서 다른 용도로 이미 만들어 둔 애셋과 레이아웃을 재사용합니다.

  • 가급적 다양한 3D 디자인 프로그램과 파일 포맷을 지원합니다. 이미 Autodesk 3ds Max, Trimble Sketchup, Dassault Systèmes SolidWorks 를 포함해 엄청 다양한 소스를 지원하며, 새 버전 출시마다 늘어나고 있습니다.

  • 이미 임포트한 소스 머티리얼을 변경한 경우 리임포트할 때 발생하는 까다로운 문제를 해결할 수 있습니다. 언리얼에서 그 애셋에 했던 모든 작업을 다시 할 필요가 없습니다. (자세한 내용은 데이터스미스 리임포트 워크플로에 대하여 문서를 참고하세요.)

  • 현재 데이터스미스는 디자인 콘텐츠를 언리얼 엔진이 이해하고 실시간 렌더할 수 있는 형태로 변환하는 작업에 중점을 두고 있습니다. 장기적인 목표는 데이터 준비 과정을 편리하게 만들고, 임포트한 콘텐츠가 게임 엔진에서 최고의 런타임 퍼포먼스를 낼 수 있도록 조정하며, 지능적인 런타임 작동방식을 추가하는 것입니다.

데이터스미스 워크플로

데이터스미스는 현재 파일 기반 워크플로를 사용하여 디자인을 언리얼로 가져옵니다.

  • 데이터스미스가 처리할 수 있는 포맷으로 디자인 데이터를 저장 또는 익스포트합니다. 데이터스미스는 일반적인 CAD 프로그램의 기본 파일 포맷을 읽을 수 있습니다. 3ds Max, SketchUp Pro 와 같은 몇 가지 프로그램은 특수 플러그인을 설치해서 사용해야 .udatasmith 확장자로 익스포트할 수 있습니다. (데이터스미스 지원 소프트웨어 및 파일 유형 문서를 참고하세요.)

  • 언리얼 에디터에서, Datasmith Importer (데이터스미스 임포터)를 사용하여 저장 또는 익스포트한 파일을 현재 언리얼 엔진 프로젝트에 가져올 수 있습니다. 이 시점에서, 해당 파일에서 가져올 데이터를 제어하고, 변환 프로세스를 제어하는 몇 가지 파라미터를 설정할 수 있습니다. (데이터스미스 임포트 옵션 문서를 참고하세요.)

임포트 결과

데이터스미스를 사용하여 파일을 임포트한 이후, 가장 먼저 소스 씬의 모든 요소가 언리얼 에디터 뷰포트에 나타나는 것이 보입니다. 아직 결과가 놀랍지는 않을 수 있습니다. 나중에 라이팅이나 외양 개선 처리는 해야겠지만, 이 시점에서 언리얼 레벨 구성은 이미 원래 프로그램에서와 똑같이 되어 있을 것입니다.

datasmith_overview_viewport.png

또 프로젝트의 콘텐츠 브라우저에서 (1) 새로 생긴 많은 애셋 이 현재 레벨에 (2) 배치된 것도 보일 것입니다.

스태틱 메시 애셋

여러가지 이유로 데이터스미스는 소스 씬의 모든 것을 언리얼에서 하나의 메시로 묶지 않습니다. 메시가 지나치게 크고 복잡하면 보통 부드러운 라이팅과 렌더링으로 좋은 퍼포먼스를 내기가 매우 힘들며, 언리얼에서 씬의 여러 부분을 개별 작업하는 데도 제약이 따릅니다.

그래서 데이터스미스는 씬의 구성 요소 각각에 대해 별도의 스태틱 메시 애셋으로 만들어 조합하고, 지오메트리 개별 청크를 레벨에 배치하여 엔진으로 렌더합니다. 씬을 스태틱 메시로 나눌 때, 데이터스미스는 소스 프로그램에서 이미 설정한 오브젝트 계층구조를 최대한 따릅니다.

데이터스미스는 그 스태틱 메시 애셋 각각을 Geometries 폴더에 넣습니다.

데이터스미스가 생성한 스태틱 메시 애셋

소스 씬에 같은 지오메트리 사본이 여럿인 경우, 데이터스미스는 보통 그 오브젝트에 대한 스태틱 메시를 하나만 만듭니다. 그리고 레벨에 그 애셋의 인스턴스 를 여럿 사용하여, 각각 위치와 회전같은 프로퍼티를 다르게 설정합니다. 그러면 보통 메모리 사용량은 줄고 성능은 향상됩니다. 예를 들어 이 씬에 걸려있는 라이트가 많지만, 스태틱 메시 애셋은 단 하나입니다 (L_Globe_01).

언리얼 엔진의 스태틱 메시 관련 자세한 내용은 스태틱 메시 문서를 참고하세요.

머티리얼 애셋

언리얼의 모든 스태틱 메시에는 머티리얼 애셋을 하나 이상 할당하여 그 표면이 받는 빛과의 상호작용 방식을 표현합니다. 데이터스미스는 소스 씬에서 식별한 표면 유형 각각에 대해 머티리얼 애셋을 새로 만들어 Materials 폴더에 저장한 뒤, 사용하는 스태틱 메시 애셋에 할당합니다.

데이터스미스가 생성한 머티리얼 애셋

머티리얼 및 언리얼의 물리 기반 렌더링 시스템 관련 자세한 내용은 머티리얼 문서를 참고하세요.

텍스처 애셋

소스 프로그램에서 텍스처를 사용하여 씬의 지오메트리 색이나 여러 물리적 속성을 정의하는 경우, 데이터스미스는 그 텍스처 각각을 텍스처 애셋으로 만들어 Textures 폴더에 저장한 뒤, 알맞은 머티리얼이 그 텍스처 애셋을 가리키도록 설정합니다. 필요한 경우, 데이터스미스는 소스 이미지 파일을 언리얼이 인식하는 포맷으로 변환할 수도 있습니다.

datasmith_overview_textures.png

언리얼의 텍스처 사용법 관련 정보는 텍스처 문서를 참고하세요.

다른 애셋 유형

이전 섹션에 언급한 스태틱 메시, 머티리얼, 텍스처는 데이터스미스로 임포트하는 씬에서 가장 자주 보게 되는 종류의 애셋입니다. 소스 씬에 있는 요소의 종류에 따라 콘텐츠 브라우저 에서 Geometry, Materials, Textures 폴더 옆에 다른 새 폴더가 생길 수도 있습니다.

  • Light 라이트 - 씬에 IES 프로파일을 사용해서 거리에 따른 강도를 지정하는 라이트가 있는 경우, 그 라이트 강도를 정의하는 텍스처 애셋을 이 폴더에 저장합니다. 언리얼 엔진의 IES 라이트 프로파일 관련 자세한 정보는 IES 라이트 프로파일 문서를 참고하세요.

  • Animation 애니메이션 - 씬에 시간에 따라 위치, 회전, 스케일 값이 변하는 오브젝트가 있는 경우, 그 애니메이션을 시퀀스 애셋으로 변환합니다. 이 시퀀스를 사용해서 언리얼 엔진 또는 에디터 안에서 소스 씬의 애니메이션을 재생할 수 있습니다. 이 변환 수행 방법 관련 자세한 내용은 데이터스미스 임포트 프로세스에 대하여 문서를 참고하세요.

데이터스미스 씬 애셋

마지막으로 데이터스미스는 하나의 Datasmith Scene (데이터스미스 씬) 애셋을 만들어 임포트한 파일 이름으로 저장합니다. 이 새로운 종류의 커스텀 애셋은 데이터스미스 임포트 전략의 핵심입니다. 원본 씬을 임포트할 때 스태틱 메시 구성 요소와 언리얼 엔진이 제공한 내장 오브젝트 유형에서 얻은 정보를 토대로, 언리얼 에디터에서 원본 씬을 재구성할 때 필요한 모든 정보를 저장하는 역할을 합니다.

  • 같이 임포트한 모든 스태틱 메시, 머티리얼, 텍스처 애셋에 대한 레퍼런스를 저장합니다.

  • 생성 당시 사용한 임포트 세팅을 저장합니다.

  • 가장 중요한 것은, 데이터스미스가 지원하는 원본 씬의 지오메트리 오브젝트, 라이트, 카메라를 포함한 모든 오브젝트 유형의 계층 또는 트리 구조를 저장합니다. 이 씬 요소 각각은 부모 기준 위치, 회전, 스케일 값을 저장합니다. 추가로 데이터스미스가 소스 프로그램에서 변환할 수 있었던 정보도 여러가지 요소 유형에 유지합니다.

데이터스미스 씬 애셋을 레벨에 끌어 놓으면 원본 씬 또는 CAD 어셈블리가 온전히 조합되어 레벨에 나타납니다. 전체 씬 계층구조도 소스 파일에서 가져온 정보를 토대로 그에 맞는 언리얼 엔진 요소를 사용하여 레벨에 자동 재생성합니다. 자세한 내용은 다음 섹션을 참고하세요.

레벨 액터와 씬 계층구조

마지막으로 새 애셋 모든 준비가 완료되면, 데이터스미스는 소스 프로그램 또는 파일 포맷에서 변환할 수 있었던 전체 씬 계층구조를 레벨 안에 그대로 복제하여 데이터스미스 씬의 인스턴스를 현재 레벨에 배치합니다.

씬 계층구조의 각 요소는 언리얼 엔진 액터 유형으로 표현합니다.

데이터스미스 씬과 자손 액터

  • 지오메트리 오브젝트는 보통 스태틱 메시 액터로 표현합니다. 바로 콘텐츠 브라우저의 스태틱 메시 애셋입니다.

  • 임포트한 씬에 라이트가 있으면, 보통 언리얼의 라이트 액터 유형 중 하나, 즉 포인트 라이트나 스포트 라이트로 표현합니다. 라이트 유형 문서를 참고하세요.

  • 임포트한 씬에 카메라가 들어있으면, 보통 언리얼 카메라 액터 또는 시네 카메라 액터 로 표현합니다.

  • 임포트한 씬 계층구조 루트에는 데이터스미스 씬 액터가 있습니다. 바로 이 씬의 생성에 사용된 데이터스미스 씬 애셋입니다.

  • 종종 씬 계층구조에 다른 액터 유형이 보입니다. 이 이미지의 Lift_C 또는 Lift_R 같은 것입니다. 데이터스미스는 보통 소스 씬의 계층구조 부모를 설정할 때 그에 해당하는 지오메트리 오브젝트가 없을 때마다 이런 액터를 만듭니다.
    이런 액터에는 보통 할당된 스태틱 메시, 라이트, 다른 오브젝트가 없습니다. 하지만 여전히 씬 관리에는 유용할 수 있습니다. 자손의 트랜스폼은 부모 기준이므로, 씬의 부모 액터를 움직이면 모든 자손도 자동으로 따라갑니다.

오버라이드 추적 및 처리

데이터스미스 씬은 언리얼에 임포트한 애셋 및 액터에 대한 특정 유형의 변화, 즉 override (오버라이드)를 추적합니다. 여기엔 두 가지 장점이 있습니다.

  • 언리얼의 애셋 또는 액터에 대한 변경 사항을 선택적으로 되돌릴(roll back) 수 있습니다. 선택된 애셋 또는 액터에 대해 데이터스미스가 콘텐츠를 처음 임포트한 순간부터 추적한 모든 정보를 그대로 반환합니다.
    콘텐츠 브라우저에서 애셋에 우클릭하거나, 뷰포트 또는 월드 아웃라이너에서 액터에 우클릭한 뒤 Datasmith > Reset Overrides (데이터스미스 > 오버라이드 리셋)을 선택합니다.
    데이터스미스 오버라이드 리셋

  • 데이터스미스 씬을 리임포트할 때, 언리얼에서 추적한 오버라이드를 잃지 않습니다. 예를 들어 액터를 씬의 새 위치로 이동했거나 액터에 다른 머티리얼을 설정한 경우, 데이터스미스는 씬 리임포트 이후 그 변경 사항을 보존합니다.
    자세한 정보는 데이터스미스 리임포트 워크플로에 대하여 문서를 참고하세요.

오버라이드로 추적하는 프로퍼티

일반적으로 데이터스미스가 소스 프로그램에서 언리얼로 가져온 정보에 대한 변경 사항은 오버라이드로 추적합니다. 그 외 언리얼 전용 프로퍼티에 가한 변경 사항은 오버라이드로 추적하지 않습니다.

예:

  • 데이터스미스가 레벨에 생성하는 각 액터에 대해, 소스 프로그램에서 언리얼로 그 액터의 3D 공간 트랜스폼 정보를 가져옵니다. 레벨에 액터를 이동 또는 회전하면, 데이터스미스는 그 변경 사항을 오버라이드로 추적합니다.

  • 반면 각 스태틱 메시 액터에는 Cast Shadow (그림자 드리우기) 세팅이 있는데, 소스 프로그램에서 가져온 것이 아닙니다. 데이터스미스는 액터를 새로 만들 때마다 이 세팅을 기본 활성화합니다. 그 세팅을 변경하여 그림자 드리우기를 꺼도, 데이터스미스는 그 변경 사항을 오버라이드로 추적하지 않습니다. 이 스태틱 메시 액터에 대한 오버라이드를 리셋해도, 그 세팅은 그대로 꺼진 채 남아있습니다.

현재 데이터스미스 씬이 언리얼에서 생성하는 애셋과 액터 각 유형에 대해 오버라이드로 추적하는 정보의 종류를 나열한 표입니다.

오브젝트 유형

추적하는 프로퍼티

Static Mesh Actors

  • 3D 트랜스폼

  • 모빌리티

  • 레이어

  • 태그

  • 머티리얼 할당

    머티리얼 할당을 변경하면 레벨에서 그 애셋의 인스턴스를 나타내는 스태틱 메시 애셋과 액터 사이 기본 연결도 오버라이드합니다. 데이터스미스로 임포트한 스태틱 메시 애셋의 머티리얼 할당을 수정하면, 레벨의 스태틱 메시 액터 중 그 애셋의 인스턴스는 일반적인 경우처럼 즉시 업데이트되지 않습니다.

Light Actors

  • 3D 트랜스폼

  • 데이터스미스가 설정한 강도 및 색 값

  • IES 프로파일

  • 레이어

  • 태그

Camera Actors

  • 3D 트랜스폼

  • 데이터스미스가 설정한 FOV 및 노출 값

  • 레이어

  • 태그

Static Mesh Assets

  • 머티리얼 할당

  • 라이트맵 해상도와 빌드 세팅

  • 테셀레이션 세팅 (CAD 파일에서 온 스태틱 메시용)

언리얼에서 트라이앵글 제거처럼 스태틱 메시 애셋 자체의 지오메트리에 대한 변경 사항은 오버라이드로 추적하지 않습니다.

Material Instance Assets

머티리얼 인스턴스 애셋 - 머티리얼 인스턴스 에디터에서 수정할 수 있는 모든 세팅은 오버라이드로 추적합니다. 여기에는 부모 머티리얼에 노출된 모든 세팅이 포함됩니다. 모든 머티리얼 인스턴스에 공통인 세팅, 예로 Parent, Blend Mode, Two-Sided 등도 포함됩니다.

Parent Material and Texture Assets

부모 머티리얼 및 텍스처 애셋 - 없습니다.

다음 단계

데이터스미스 임포트 워크플로의 기본, 프로젝트에 데이터스미스 콘텐츠로 작업하는 방법을 알아봤습니다. 추가 자료는 다음과 같습니다.

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼