SketchUp Pro

데이터스미스를 사용하여 Trimble SketchUp Pro 씬을 언리얼 에디터로 가져올 때만 적용되는 특별히 고려해야 하는 사항에 대해 설명합니다.

이 페이지에서는 데이터스미스(Datasmith)가 Trimble SketchUp Pro 의 씬을 언리얼 에디터로 임포트하는 방법에 대해 설명합니다. 이 설명은 데이터스미스 개요데이터스미스 임포트 프로세스 소개에 나와 있는 기본적인 프로세스를 따르지만, SketchUp에 한정되는 특수한 변환 동작이 일부 추가됩니다. 데이터스미스를 사용하여 SketchUp 씬을 언리얼 에디터로 임포트하려는 경우, 이 페이지는 씬이 변환되는 방식과 언리얼 에디터에서 해당 결과물을 사용하여 작업하는 방법을 이해하는 데 도움이 될 수 있습니다.

SketchUp

언리얼 엔진

SketchUp 워크플로

익스포트 워크플로

데이터스미스는 SketchUp에 익스포트 플러그인(Export Plugin) 워크플로를 사용합니다. 즉, 데이터스미스를 사용하여 언리얼에 SketchUp 콘텐츠를 가져오는 방법은 다음과 같습니다.

  1. SketchUp용 플러그인을 설치합니다. 자세한 내용은 아래의 설치 노트 를 참고하세요.

  2. SketchUp 콘텐츠를 .udatasmith 파일로 익스포트합니다. 자세한 내용은 SketchUp Pro 에서 데이터스미스 콘텐츠 익스포트 페이지를 참고하세요.

  3. 아직 설치하지 않은 경우, 프로젝트에 대해 임포터(Importers) > 데이터스미스 임포터(Datasmith Importer) 플러그인을 활성화합니다.

  4. 언리얼 에디터 툴바에 있는 데이터스미스 임포터를 사용하여 .udatasmith 파일을 임포트합니다. 자세한 내용은

    [데이터스미스 콘텐츠를 언리얼 엔진 4에 임포트](WorkingWithContent/Importing/Datasmith/HowTo/ImportingContent)
    를 참고하세요.

Ruby를 사용하여 일괄적으로 씬 익스포트

SketchUp에서 Ruby 스크립트를 실행하여 .udatasmith 파일을 일괄적으로 익스포트할 수 있습니다. 이는 파이프라인 자동화에 도움이 됩니다.

이 작업을 수행하기 전에 SketchUp용 Ruby 코드 에디터(Ruby Code Editor) 익스텐션을 설치해야 합니다. 이 작업을 수행하는 방법에 대해서는 익스텐션 관리에 대한 SketchUp 문서를 참고하세요. Ruby 코드 에디터 익스텐션을 설치하면 SketchUp 메인 메뉴에서 창(Window) > Ruby 코드 에디터(Ruby Code Editor) 로 이동하여 액세스할 수 있습니다.

지정된 폴더에서 SketchUp 파일을 모두 익스포트하려면 다음 코드를 실행합니다.

       target_dir = 'C:\temp\udatasmithExports'
       source_directory = 'E:\path\to\folder'
       Dir.foreach(source_directory) do |filename|
         ext = File.extname(filename)
         if ext == '.skp' then
             name = File.basename(filename, ext)
             path = File.join source_directory, filename
             Sketchup.active_model.close true
             Sketchup.open_file path
             puts "Exporting '#{filename}' as '#{name}' to '#{target_dir}'"
             EpicGames::Datasmith.export name, target_dir
       end
     end

또한 코드에서 단일 파일을 익스포트할 수도 있습니다. 이는 데이터스미스 툴바에서 익스포트(Export) 버튼을 클릭하는 것과 같습니다.

   Sketchup.open_file 'E:\path\to\file\sketchup_file.skp'
   EpicGames::Datasmith.export "hello", 'C:\temp'
   # 이렇게 하면 C:\temp\hello.udatasmith 파일이 생성됩니다.

다이렉트 링크 워크플로

언리얼 엔진에서 SketchUp 씬의 변경 사항을 실시간으로 프리뷰하기 위해 둘 사이에 데이터스미스 다이렉트 링크를 구성할 수 있습니다. 이렇게 하면 변경 사항이 발생할 할 때마다 전체 씬을 언리얼 엔진에 다시 임포트할 필요가 없습니다. 자세한 내용은 데이터스미스 런타임 문서를 참고하세요.

언리얼 엔진의 경우 데이터스미스 다이렉트 링크는 다음 SketchUp 버전을 사용하는 경우 UE 4.27 이상 버전에서만 지원됩니다.

  • SketchUp 2020(Windows 및 macOS)

  • SketchUp 2021(Windows 및 macOS)

설치 노트

데이터스미스 익스포트 플러그인 페이지에서 SketchUp용 데이터스미스 익스포터(Datasmith Exporter for SketchUp) 플러그인을 다운로드하여 설치해야 SketchUp 콘텐츠를 익스포트할 수 있습니다.

플러그인이 지원하는 SketchUp 버전을 확인하려면 데이터스미스 지원 소프트웨어 및 파일 타입 페이지를 참고하세요.

데이터스미스 익스포터 플러그인은 현재 SketchUp Pro 에서만 작동합니다. SketchUp Free 또는 중단된 SketchUp Make는 지원하지 않습니다.

데이터스미스 익스포트 플러그인 다운로드 링크는 조직 내외부에 제한 없이 공유할 수 있습니다. 하지만 데이터스미스 익스포트 플러그인 자체를 배포하는 것은 허용되지 않습니다.

SketchUp 플러그인용 데이터스미스 익스포터를 설치하기 전에 다음 사항을 확인합니다.

  • SketchUp이 실행 중이 아니어야 합니다.

  • 사용하려는 언리얼 엔진 버전에 맞는 익스포터 플러그인용 인스톨러를 다운로드해야 합니다.

  • SketchUp 플러그인용 데이터스미스 익스포터의 이전 버전을 먼저 모두 삭제해야 합니다.

인스톨러를 다운로드한 후 더블클릭하여 연 다음에 화면의 지시 사항을 따릅니다.

SketchUp 플러그인용 데이터스미스 익스포터를 제거해야 하는 경우 다른 애플리케이션과 같이 다음 단계를 따릅니다.

  • Windows: 제어판(Control Panel) 에서 플러그인을 삭제합니다.

  • macOS: 파인더(Finder) 에서 플러그인을 찾아 도크의 휴지통 아이콘으로 드래그하거나 우클릭 후 휴지통으로 이동(Move to Trash) 을 선택합니다.

데이터스미스 툴바 사용

데이터스미스 플러그인을 설치하면 SketchUp에 도킹 가능한 툴바가 추가됩니다.

SketchUp의 데이터스미스 툴바

데이터스미스 툴바에서 다음 액션을 수행할 수 있습니다.

액션

버튼

설명

다이렉트 링크로 동기화(Synchronize with DirectLink)

dst-synchronize-button.png

선택한 모델을 다이렉트 링크 연결을 통해 언리얼 엔진 또는 트윈모션으로 푸시합니다.

연결 관리(Manage Connections)

dst-connections-button.png

연결 상태(Connection Status) 대화창을 실행합니다.

데이터스미스 파일로 익스포트(Export to Datasmith File)

dst-export-button.png

기존 .udatasmith 익스포터를 실행하여 .udatasmith 파일을 디스크에 저장합니다.

메시지 표시(Show Messages)

dst-messages-button.png

메시지 및 로깅 창을 실행합니다. 오류, 누락된 텍스처, 기타 정보를 보고하는 데 유용합니다.

SketchUp의 메인 메뉴에서도 익스텐션(Extensions) > 데이터스미스 로 이동하여 이 명령을 사용할 수 있습니다.

지오메트리를 스태틱 메시로 변환

데이터스미스는 SketchUp 지오메트리를 스태틱 메시 에셋으로 나누며, 같은 컴포넌트 또는 그룹에 있는 모든 연결 폴리곤 면은 하나의 스태틱 메시로 합칩니다. 이 전략을 알고 있으면 생성되는 스태틱 메시 작업에 도움이 됩니다.

언리얼의 스태틱 메시가 매우 크다면, 씬의 스태틱 또는 스테이셔너리 라이트를 구울 때 좋은 결과를 얻기가 힘들 수 있습니다. 메시가 크면 라이트맵 텍스처도 그만큼 커야 모델 각 부분의 빛과 그림자 정보를 기록하기 충분할 만큼의 텍스처 공간을 확보할 수 있습니다. 큰 스태틱 메시에 라이트맵 해상도를 높여볼 수는 있지만, 그러면 굽는 시간과 런타임 메모리 요구량도 늘어납니다. 라이트맵 UV 레이아웃 방식에 따라 결과가 전혀 좋게 나오지 않을 수도 있습니다. 이 경우 SketchUp에서서 다수의 컴포넌트나 레이어에 걸쳐있는 큰 지오메트리를 분할하면 언리얼에서 처리하기 쉬운 스태틱 메시를 만들 수 있습니다.

인스턴싱

데이터스미스가 SketchUp 씬에서 같은 컴포넌트의 사본을 다수 발견한 경우, 그 컴포넌트에 대한 스태틱 메시 에셋 세트는 하나만 만들고, 씬에 그 스태틱 메시의 인스턴스를 다수 배치합니다. 보통 프로젝트의 런타임 메모리 요구량과 퍼포먼스 측면에서 더 좋을 뿐만 아니라, 콘텐츠 브라우저의 스태틱 메시 에셋 수를 관리하기도 쉬워집니다.

가능하면 씬의 (창문, 문, 체인 같은) 반복 요소를 SketchUp에서서 재사용 가능 컴포넌트로 만들어 이 기능을 활용하는 것이 좋습니다.

빌보드

데이터스미스는 SketchUp 씬의 회전하는 빌보드를 평평한 스태틱 메시로 익스포트하고, 그 평평한 스태틱 메시의 인스턴스를 레벨에 배치합니다.

레벨 내 각 스태틱 메시의 방향은 씬을 익스포트할 당시 SketchUp 카메라의 시점에 따라 결정됩니다. 언리얼 엔진의 레벨 내 카메라 위치가 SketchUp의 원본 카메라 위치와 같은 경우, 평평한 스태틱 메시는 SketchUp의 회전하는 빌보드와 같은 방식으로 나타납니다. 하지만 언리얼 엔진에서 카메라를 움직이는 경우, 스태틱 메시 회전 값이 SketchUp에서서의 카메라 현재 시점에 일치하도록 업데이트되지는 않습니다.

트라이앵글이 향하는 방향

SketchUp은 지오메트리가 향하는 방향에 대해 매우 관대합니다. "단면", 즉 두께가 없는 지오메트리를 만들어 양쪽에서 볼 수도 있고, 심지어 각 평면의 각기 다른 면에 각기 다른 머티리얼을 적용할 수도 있습니다.

언리얼 엔진에서는 다른 접근법을 사용합니다. 모든 지오메트리에 두께가 있다 가정하고 모델링합니다. 카메라 반대쪽을 향하는 트라이앵글은 표면의 뒷면을 나타내며, 그 표면의 정면에서 봤을 때 숨길 수 있을 것으로 가정합니다. 런타임에 최고의 퍼포먼스를 이끌어내기 위해, 항상 그 뒷면을 향하는 트라이앵글을 컬링 하여 실제 보이지 않는 트라이앵글을 렌더링하느라 GPU 사이클을 낭비하지 않도록 합니다.

항상 두께를 주고 3D 오브젝트를 모델링할 것을 권장합니다. 그래야 언리얼에서 예상대로 작동합니다. 하지만 SketchUp에서서 단면 지오메트리를 사용한다면, 데이터스미스는 최선을 다해 의도를 파악해서 스태틱 메시의 트라이앵글이 향하는 방향과 머티리얼을 설정합니다.

  • SketchUp의 표면 한 쪽에만 머티리얼이 할당된 경우, 그 표면을 언리얼에서 트라이앵글이 향하는 방향으로 선택합니다.

  • 그렇지 않으면, 데이터스미스는 SketchUp의 표면 정면을 언리얼에서 향하는 방향으로 선택합니다.

  • 양쪽 면 모두 머티리얼이 할당된 경우, 데이터스미스는 정면의 머티리얼만 임포트합니다.

기본적으로 단면 지오메트리의 트라이앵글은 언리얼 씬에서 뒷면에서 보면 나타나지 않는다는 뜻입니다. 게다가 그 뒤쪽을 향하는 면은 그림자를 드리우지도 않습니다.

SketchUp

언리얼

위 예제에서 각 박스의 측면과 하단은 바깥쪽을 향합니다. 왼쪽의 경우, 바깥을 향하는 쪽에는 단일 머티리얼이 할당되어 있습니다. 가운데의 경우, 양쪽에 하나씩 두 개의 머티리얼이 할당되어 있습니다. 오른쪽의 경우, 전체 그룹에 빨강 머티리얼이 할당되어 있고, 박스의 한 쪽에만 다른 머티리얼이 할당되어 있습니다. 바깥을 향하는 쪽의 색은 전부 언리얼로 변환되지만, 반대를 향하는 쪽의 색은 박스를 반대편에서 봤을 때만 보입니다.

이를 처리하는 가장 좋은 방법은 SketchUp에서 오브젝트에 두께를 주어 수정하는 것입니다. 하지만 언리얼에서 고치려면, 다른 옵션이 있습니다. 자세한 내용은

[데이터스미스 임포트 프로세스 소개](WorkingWithContent/Importing/Datasmith/Overview/ImportProcess#trianglefacingdirection)
를 참고하세요.

SketchUp 머티리얼

SketchUp 씬의 다양한 머티리얼 각각에 대해, 데이터스미스는 언리얼 엔진 프로젝트에서 새 머티리얼 인스턴스를 생성하면서 SketchUp 머티리얼을 최대한 유사하게 복제하려고 시도합니다. 이 머티리얼 에셋 각각은 데이터스미스가 프로젝트의 Materials/Master 폴더에 만드는 부모 머티리얼의 인스턴스이기도 합니다. 데이터스미스는 언리얼 엔진의 물리 기반 렌더러에서 SketchUp로 렌더링할 때 볼 수 있는 것과 동일한 결과를 얻기 위해 이 부모 머티리얼 각각에 대해 머티리얼 그래프를 생성합니다.

모든 인스턴스드 머티리얼마다 부모가 있는 것은 아닙니다. 가급적 두 개의 머티리얼 인스턴스가 같은 머티리얼 그래프를 공유할 수 있다면, 데이터스미스는 그 두 머티리얼 인스턴스에 하나의 부모 머티리얼을 사용하도록 시도합니다.

언리얼에서 보이는 머티리얼 프로퍼티는 SketchUp 머티리얼이 구성된 방법에 따라 달라집니다. 부모 머티리얼의 PBR 그래프를 편집하여 머티리얼 프로퍼티를 더 추가할 수 있습니다.

SketchUp에서 씬을 리임포트하면 이 프로퍼티는 덮어씌워집니다.

부모 머티리얼을 편집하여 아래 프로퍼티를 추가하거나 오버라이드할 수 있습니다.

컬러 및 텍스처 이미지

기본적으로 임포트한 머티리얼은 SketchUp에 있던 텍스처 또는 컬러를 유지합니다. 이 값을 덮어쓰면 머티리얼이 단색 또는 텍스처를 사용하도록 할 수 있습니다.

  • Color (컬러) 옵션 아니면 Use Texture Image (텍스처 이미지 사용) 옵션을 활성화합니다. (Color 옵션이 아예 안보이면, Use Texture Image 옵션을 먼저 비활성화하세요).

  • 단색을 사용하려면, RGB 색 값을 설정하여 원하는 색을 만듭니다. datasmith-sketchup-material-color.png 참고로 A 채널은 사용하지 않습니다. 알파 블렌딩은 별도의 Opacity (오파시티) 옵션으로 제어합니다 (아래 참고).

  • 텍스처 이미지를 사용하기로 했다면, Texture 프로퍼티가 보입니다. 여기에 사용하려는 텍스처 에셋을 지정할 수 있습니다. (이미 언리얼 프로젝트에 있지 않은 텍스처는 먼저 콘텐츠 브라우저에 끌어 놓아 프로젝트에 임포트해야 합니다.) datasmith-sketchup-material-usetexture.png Texture Scale (텍스처 스케일) 컨트롤을 통해 표면의 텍스처 타일링 방식도 바꿀 수 있습니다. R 값은 가로 스케일 (UV 공간의 U 축), G 값은 세로 스케일 (UV 공간의 V 축)을 제어합니다. BA 값은 사용하지 않습니다.

다양한 텍스처 스케일 세팅의 효과입니다.

오파시티 및 블렌드 모드

머티리얼의 베이스 컬러에 단색을 사용하든 텍스처 맵을 사용하든, Opacity (불투명도, 오파시티) 컨트롤을 통해 스태틱 메시 뒤로 배경이 보이는 정도를 결정할 수 있습니다.

기본적으로 SketchUp의 머티리얼에 오파시티 값이 100% 미만인 경우, 언리얼의 머티리얼에 그 값을 제대로 가져옵니다.

오파시티 세팅을 기존의 투명 머티리얼 이외의 것으로 설정하려면, 머티리얼의 블렌딩 모드를 변경해야 합니다. 일반(General) 섹션에서 머티리얼 프로퍼티 오버라이드(Material Property Overrides) 그룹을 펼치고, 블렌드 모드(Blend Mode) 옵션을 체크한 뒤 값을 반투명(Translucent) 으로 설정합니다.

UE 확장 프로퍼티

기본적으로 임포트한 모든 머티리얼은 메탈릭이 아닌 것으로, 러프니스 값은 중간인 0.5 로 설정합니다. 하지만 언리얼에서 씬 렌더링의 사실감을 높이려면 다양한 머티리얼에 이 값을 조정하는 것이 쉽습니다. 이 값은 프로퍼티의 UE 확장(UE Extended) 그룹에서 찾을 수 있습니다.

UE 확장 프로퍼티 그룹

  • 금속으로 이루어진 오브젝트의 경우, 메탈릭 옵션을 사용합니다. 베이스 컬러나 텍스처가 표면에 닿는 입사광에 영향을 주는 방식에 미묘한 차이가 생깁니다.

기본

메탈릭 켬

  • 오브젝트 표면이 특히 무광 또는 유광인 경우, Roughness (러프니스) 옵션을 체크하고 값을 높이거나 낮춥니다.

기본 러프니스 0.5

러프니스 0.05

  • 오브젝트의 여러 부분에 광택이 다른 경우, Roughness Map (러프니스 맵을) 대신 사용할 수 있습니다. 러프니스 맵이란 무광 부분은 하양, 유광 부분은 검정으로 나타내는 회색조 텍스처 이미지입니다.

  • 러프니스 및 메탈릭 값과 광택 표면의 상관 관계에 대한 상세 정보는

    [반짝이는 머티리얼 생성하기](RenderingAndGraphics/Materials/HowTo/ShinyMaterials)
    를 참고하세요.

  • 추가로 임포트한 머티리얼에 노멀 맵을 구성할 수 있습니다. 그러면 렌더러에 지오메트리의 작은 스케일 표면 디테일 관련 힌트를 줄 수 있습니다.

노멀 맵 없음

노멀 맵 있음

Adobe Photoshop 같은 2D 이미지 소프트웨어에서 노멀 맵과 러프니스 맵을 만들 수 있습니다. 위 텍스처와 마찬가지로 경우에 따라 머티리얼의 베이스 컬러 텍스처를 바탕으로 노멀 맵과 러프니스 맵을 사용할 수도 있습니다.

메타데이터

SketchUp 컴포넌트 또는 SketchUp 그룹의 엔티티 정보는 표준

[데이터스미스 메타데이터](WorkingWithContent/Importing/Datasmith/Overview/UsingDatasmithMetadata)
로 익스포트됩니다. 언리얼 엔진은 SketchUp 컴포넌트 또는 SketchUp 그룹의 루트를 나타내는 액터에 메타데이터를 저장합니다.

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