데이터스미스 개요

데이터스미스의 작동 방식과 데이터스미스를 사용할 경우 기대할 수 있는 이점을 살펴봅니다.

데이터스미스 는 언리얼 엔진에 콘텐츠를 쉽게 가져올 수 있는 툴과 플러그인 컬렉션입니다.

건축, 엔지니어링, 건설, 제조, 실시간 교육 등 게임 이외의 산업에서 언리얼 엔진의 리얼타임 렌더링 및 시각화 기능을 사용할 때 직면할 수 있는 특정 문제를 해결하기 위해 데이터스미스가 설계되었습니다. 하지만 이는 에셋 파이프라인에서 비슷한 문제를 겪는 게임 개발자에게도 흥미로울 수 있습니다.

데이터스미스의 유용성

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

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

  • 가급적 다양한 3D 디자인 애플리케이션과 파일 포맷을 지원합니다. 이미 Autodesk 3ds Max, Trimble Sketchup, Dassault Systèmes SolidWorks 등 매우 다양한 소스를 지원하며, 지원 대상은 새 버전이 출시될 때마다 늘어나고 있습니다.

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

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

데이터스미스 워크플로

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

  • 데이터스미스가 처리할 수 있는 포맷으로 디자인 데이터를 저장 또는 익스포트합니다. 데이터스미스는 일반적인 CAD 애플리케이션의 기본 파일 포맷을 읽을 수 있습니다. 3ds Max, SketchUp Pro 등 일부 애플리케이션에서는 특수 플러그인을 설치해야 .udatasmith 확장자로 파일을 익스포트할 수 있습니다. (데이터스미스 지원 소프트웨어 및 파일 타입.) 페이지를 참고하세요.)

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

임포트 결과

데이터스미스를 사용하여 파일을 임포트하면 소스 씬의 모든 엘리먼트가 언리얼 에디터 뷰포트에 표시되는 것을 가장 먼저 확인할 수 있습니다. 아직 결과가 이상적이지는 않을 수 있습니다. 나중에 라이팅과 외양을 개선해야겠지만, 이 시점에서 언리얼 레벨 구성은 이미 소스 애플리케이션 내 구성과 똑같이 되어 있을 것입니다.

datasmith_overview_viewport.png

또 프로젝트의 '콘텐츠 브라우저(Content Browser)'(1 )에 다수의 새로운 에셋*이 생성되고 새로운 액터*가 현재 레벨(2 )에 배치된 것을 볼 수 있습니다.

스태틱 메시 에셋

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

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

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

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

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

언리얼 엔진의 스태틱 메시 관련 자세한 내용은 Static Meshes 페이지를 참고하세요.

머티리얼 에셋

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

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

머티리얼 및 언리얼의 물리 기반 렌더링 시스템 관련 자세한 내용은 머티리얼.

텍스처 에셋

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

datasmith_overview_textures.png

언리얼 엔진에서 텍스처를 사용하여 작업하는 것에 대한 자세한 내용은 언리얼 엔진 텍스처 페이지를 참고하세요.

다른 에셋 타입

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

  • ghts - IES 프로파일을 사용하여 거리에 따른 강도 변화 방식을 지정하는 라이트가 씬에 있는 경우, 데이터스미스 임포터는 그 라이트 강도를 정의하는 텍스처 에셋을 이 폴더에 저장합니다. 언리얼 엔진의 IES 라이트 프로파일에 대한 자세한 내용은 IES 라이트 프로파일 페이지를 참고하세요.

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

데이터스미스 씬 에셋

데이터스미스는 하나의 데이터스미스 씬(Datasmith Scene) 에셋을 만들어 임포트한 파일 이름으로 저장합니다. 이 새로운 종류의 커스텀 에셋은 데이터스미스 임포트 전략의 핵심으로, 함께 임포트한 스태틱 메시 구성 요소 및 언리얼 엔진에서 제공된 내장 오브젝트 타입의 언리얼 에디터 원본 씬을 재구성하는 데 필요한 것을 모두 포함하는 역할을 합니다.

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

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

  • 가장 중요한 점으로, 데이터스미스가 지원하는 원본 씬의 지오메트리 오브젝트, 라이트, 카메라를 포함한 모든 오브젝트 타입의 계층구조 또는 트리를 포함합니다. 이러한 씬 엘리먼트 각각은 부모 기준 위치, 회전, 스케일을 3D 공간에 저장합니다. 추가로 데이터스미스가 소스 애플리케이션에서 변환할 수 있었던 정보도 여러 엘리먼트 타입에 각각 유지합니다.

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

레벨 액터와 씬 계층구조

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

씬 계층구조의 각 엘리먼트는 언리얼 엔진 액터 타입으로 표현합니다.

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

  • 지오메트리 오브젝트는 보통 '콘텐츠 브라우저'의 스태틱 메시 에셋을 레퍼런스하는 스태틱 메시 액터로 표현합니다.

  • 임포트한 씬에 라이트가 있으면, 보통 언리얼의 라이트 액터 타입 중 하나, 즉 포인트 라이트나 스포트 라이트로 표현합니다. 자세한 내용은 라이트 유형 및 모빌리티 페이지를 참고하세요.

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

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

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

오버라이드 추적 및 처리

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

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

없습니다.

다음 단계

데이터스미스 임포트 워크플로의 기초를 살펴봤고, 프로젝트에서 데이터스미스 콘텐츠를 사용하여 작업하는 방법을 알아봤으므로 다음을 진행할 수 있습니다.

언리얼 엔진의 이전 버전을 위해 작성된 페이지입니다. 현재 언리얼 엔진 5 버전을 위해 업데이트되지 않았습니다.