데이터스미스 리임포트 워크플로에 대하여

데이터스미스를 사용하여 언리얼에 콘텐츠를 리임포트할 때 벌어지는 일, 이 반복처리형 워크플로를 활용하는 방법에 대해 설명합니다.

Windows
MacOS
Linux

데이터스미스의 역할은 다양한 소스 프로그램에서 언리얼 엔진으로 디자인 데이터를 가져오는 것으로, 보통 그 데이터를 활용하여 실시간 시각화 및 체험을 만듭니다. 하지만 언리얼에서 시각화와 체험을 만드는 과정에서, 새로운 요구 사항을 충족시키거나 이해 관계자의 의견을 반영하기 위해 작업의 토대가 되는 씬 또는 디자인 데이터를 변경해야 하는 경우가 종종 있습니다. 힘들고 값비싼 재작업을 피하려면, 언리얼 에디터에서 지금까지 해 온 작업을 잃지 않고 그 상향식 변경 사항을 통합할 수 있어야 합니다.

여기서는 데이터스미스 콘텐츠 업데이트를 언리얼 프로젝트에 끌어 오는 여러가지 방법과, 그 과정에서 애셋과 액터에 벌어지는 일에 대해 설명합니다. 옵션은 둘입니다.

  1. 전체 데이터스미스 씬을 리임포트합니다. 그러면 데이터스미스 씬 애셋에 소스 씬의 최신 변경 사항 전부가 들어가도록 업데이트하며, 언리얼 에디터에서 지금까지 한 변경 작업을 조정(reconcile) 시도합니다. 아래 전체 씬 리임포트 섹션을 참고하세요.

  2. 데이터스미스로 임포트한 개별 애셋을 리임포트합니다. 예를 들면 스태틱 메시, 머티리얼, 텍스처 등입니다. 그러면 나머지 데이터스미스 씬에 영향을 주지 않고 선택한 애셋의 변경 사항을 처리할 수 있습니다. 아래 개별 애셋 리임포트 섹션을 참고하세요.

언리얼 에디터에서 이 임포트 워크플로를 사용하는 방법 안내는 데이터스미스 콘텐츠 리임포트 문서를 참고하세요.

전체 씬 리임포트

데이터스미스 씬 애셋 리임포트

전체 데이터스미스 씬을 한꺼번에 리임포트할 수 있습니다. 이 접근법은 데이터스미스가 콘텐츠 브라우저에 만든 모든 애셋이 소스 프로그램 또는 데이터 파일의 최신 변경 사항에 맞도록 업데이트합니다. 여기서 레벨의 데이터스미스 씬 액터를 선택적으로 업데이트하여 데이터스미스 씬 애셋이 유지한 새로운 씬 계층구조로 동기화할 수 있습니다.

씬 계층구조의 변경

데이터스미스 씬을 리임포트할 때, 데이터스미스 씬 애셋 에 들어있는 씬 계층구조는 소스 씬의 최신 변경 사항을 전부 반영하여 즉시 업데이트합니다. 임포트 후, 데이터스미스 씬 애셋의 씬 계층구조는 씬을 처음 새로 임포트한 것과 동일한 정보를 그대로 갖습니다.

하지만 씬 계층구조의 그 변경 사항이 데이터스미스 씬이 들어있는 언리얼 엔진 레벨에 반드시 반영되지는 않습니다. 프로젝트의 레벨에 배치한 데이터스미스 씬의 인스턴스는 업데이트된 애셋으로 동기화 할 때까지 레벨의 씬 계층구조는 구버전 상태입니다.

동기화는 데이터스미스 씬 액터와 월드 아웃라이너의 그 자손의 정보를 업데이트하며, 그 때 일치시키는 애셋은 다음과 같습니다.

  • 수정한 액터. 언리얼 에디터에서 수정하지 않은 액터는 리임포트한 데이터스미스 씬에서 그와 관련한 최신 정보에 일치하도록 즉시 업데이트합니다. 언리얼 엔진에서 수정한 액터는 리임포트한 데이터스미스 씬의 최신 정보에 일치하도록 업데이트하며, 데이터스미스가 오버라이드로 추적한 변경 사항은 예외입니다.

  • 새 액터. 지난 번 임포트 이후 소스 파일에 추가된 오브젝트는, 레벨에 액터를 새로 추가하여 표현합니다.

  • 삭제된 액터. 소스 파일에서 삭제한 오브젝트는 다른 오버라이드가 없는 한 언리얼 레벨에서 그에 해당하는 액터를 제거합니다. 삭제된 오브젝트에 해당하는 언리얼 액터에 오버라이드가 있으면 레벨에서 삭제되지 않으며, 직접 지워야 합니다.
    언리얼 레벨에서는 삭제했지만 소스 파일에는 존재하는 액터는 레벨에 기본으로 다시 추가하지 않습니다. 하지만 레벨의 데이터스미스 씬 액터를 리임포트한 데이터스미스 씬 애셋과 동기화할 때 이 옵션을 활성화할 수 있습니다.

  • 부모 관계 설정. 레벨의 액터 부모 계층구조는 소스 파일의 변경 사항에 일치시킵니다.

예를 들어 다음과 같은 전후 상황을 그려봅시다.

  1. 소스 씬에서 삭제된 오브젝트, 즉 리프트 오브젝트를 삭제한 경우 데이터스미스 씬에서 제거합니다.

  2. 소스 씬의 오브젝트 부모 구조 변경, 즉 새 부모 아래 라이트를 그룹으로 묶은 경우 데이터스미스 씬에 반영합니다.

  3. 소스 씬에 오브젝트 추가, 즉 툴박스를 추가한 경우 데이터스미스 씬에 추가합니다.

데이터스미스 씬 계층구조 리임포트 전후

데이터스미스 씬 액터를 그 애셋과 동기화하는 방법은 두 가지입니다.

  • 데이터스미스 씬 애셋을 리임포트할 때, 해당 애셋에서 생성된 현재 열린 레벨의 데이터스미스 씬 액터가 있으면 자동 업데이트할 수 있습니다. 레벨 하나에만 데이터스미스 씬을 추가한 경우 잘 통하는 간단한 접근법입니다.

  • 레벨의 데이터스미스 씬 액터를 언제든 요청 시 데이터스미스 씬 애셋과 동기화할 수 있습니다. 프로젝트에 데이터스미스 씬의 인스턴스가 들어있는 레벨이 여럿이고, 소스 씬의 변경 사항을 전부 반영해야 하는 경우 이 접근법을 사용해야 합니다.

자세한 내용은 데이터스미스 콘텐츠 리임포트 문서를 참고하세요.

지오메트리, 머티리얼, 텍스처의 변경

데이터스미스 씬을 리임포트할 때:

  • 스태틱 메시, 텍스처, 머티리얼 인스턴스 애셋 재생성은 오직 지난 번 씬 임포트 이후 소스 파일을 수정했을 때만 합니다.

  • 모든 부모 머티리얼 애셋 재생성은 항상, 소스 파일의 수정 여부와 관계없이 합니다.

데이터스미스가 애셋을 재생성할 때, 언리얼에서 해당 애셋에 대한 변경 사항을 덮어쓸 수 있습니다!

보통 데이터스미스가 오버라이드로 추적하는 정보, 또는 씬의 오브젝트에 대한 언리얼 표현 관련 정보는 잃지 않습니다. 하지만 데이터스미스가 가져왔지만 오버라이드로 추적하지는 않는 정보를 언리얼에서 변경한 사항은 잃을 수 있습니다. 예를 들어 애셋을 덮어쓰면 언리얼에서 부모 머티리얼 그래프 내부 또는 스태틱 메시 애셋의 지오메트리에 대한 변경 사항을 잃습니다.

언리얼에서 애셋에 대한 변경 사항을 잃지 않는 방법은 두 가지입니다.

  • 리임포트할 때 리임포트 옵션 대화창에서 해당 애셋 유형의 Process (처리) 체크박스를 해제하면 그 애셋 유형 리임포트를 하지 않습니다. 예를 들어 언리얼에서 임포트된 머티리얼 그래프를 조금 수정했는데 그 변경 사항을 잃고 싶지 않다면, Materials & Textures (머티리얼 & 텍스처) 옵션을 해제하면 됩니다. 하지만 소스에서 업데이트하고 하는 다른 머티리얼 애셋이 있는 경우, 이 접근법은 통하지 않습니다. 이 경우 해당 애셋 유형 중 업데이트하려는 애셋만 선택적으로 업데이트할 수도 있습니다. 개별 애셋 리임포트 섹션을 참고하세요.

  • 데이터스미스로 임포트한 애셋을 수정해야 할 때마다 수정하려는 애셋을 다른 폴더에 복제하고 그 사본을 수정합니다. 그런 다음 원본 애셋을 사용한 곳에 사본을 사용하도록 업데이트합니다. 리임포트할 때, 원본 애셋은 덮어써도 사본은 그대로입니다.

소스 파일의 오브젝트나 머티리얼을 삭제한 이후 씬을 리임포트할 때, 데이터스미스는 그 오브젝트에 대해 기존에 생성한 애셋을 삭제하지 않습니다. 애셋은 콘텐츠 브라우저에 남아 있어, 데이터스미스 씬 밖에서도 독립형 애셋으로 언리얼 에디터에서 계속 사용할 수 있습니다. 하지만 레벨 중 하나의 데이터스미스 씬 액터가 리임포트한 데이터스미스 씬 애셋에 일치하도록 동기화하면, 그 삭제된 애셋의 인스턴스는 (다른 오버리아드가 없으면) 제거됩니다.

다음 전후 이미지는 씬을 리임포트할 때 스태틱 메시에 어떤 일이 발생하는지 보여줍니다.

  1. 소스 씬에서 수정한 오브젝트, 이 예제에서 라이트 구체는 언리얼에서 재생성하여 구버전 애셋을 덮어씁니다.

  2. 소스 씬에서 삭제한 오브젝트, 이 예제에서 리프트 요소들은 프로젝트의 콘텐츠 브라우저에서 제거하지 않습니다.

  3. 소스 씬에서 추가한 오브젝트, 이 예제에서 툴박스는 콘텐츠 브라우저에 새 애셋으로 추가합니다.

언리얼 엔진에서 애셋을 변경하면, 그 변경 사항은 그 애셋을 사용한 모든 곳에 즉시 반영된다는 점 기억하시죠. 데이터스미스가 리임포트 도중 애셋을 재생성하거나 수정할 때도 마찬가지입니다. 예를 들어 소스 프로그램에서 오브젝트의 지오메트리를 변경한 경우, 그에 해당하는 스태틱 메시 애셋을 리임포트하면 그 스태틱 메시 애셋을 인스턴스화하는 모든 레벨의 모든 액터는 새 지오메트리를 표시하도록 자동 업데이트됩니다.

전체 씬 리임포트 사용 시기

대부분의 경우 전체 씬 리임포트 사용을 권장합니다. 특히 전체 씬을 리임포트해야만 하는 경우는 다음과 같습니다.

  • 기존에 언리얼에 존재하지 않던 오브젝트나 머티리얼을 소스 씬에서 새로 가져와야 하는 경우.

  • 3D 공간의 씬 오브젝트 레이아웃이 바뀐 경우, 또는 오브젝트의 씬 계층구조에 새로운 부모 관계를 언리얼에 반영하려는 경우.

  • 애셋을 개별 리임포트할 수 없는 경우. 하나씩 작업하기에는 소스 파일에 변경된 오브젝트 수가 너무 많거나, 어떤 애셋이 변경되었는지 모르거나 입니다.

개별 애셋 리임포트

단일 데이터스미스 애셋 리임포트

전체 데이터스미스 씬을 리임포트하는 대신, 데이터스미스 임포트 프로세스가 생성한 언리얼 엔진 애셋을 선택 리임포트할 수 있습니다. 예를 들어 개별 스태틱 메시 애셋, 머티리얼, 텍스처 단위입니다.

이 옵션을 사용하면, 위 지오메트리, 머티리얼, 텍스처의 변경 섹션에서 설명한 상황 거의 그대로가 선택한 단일 애셋에 발생합니다. 차이점은 다음과 같습니다.

  • 애셋은 소스 씬에서 수정하지 않았어도 항상 처음부터 재생성합니다. 예를 들어 스태틱 메시 애셋의 경우, 스태틱 메시의 지오메트리를 항상 리빌드하므로, 언리얼에서 지오메트리 변경 내용을 잃습니다.

  • 데이터스미스 씬 애셋은 변하지 않아, 씬을 배치한 어느 레벨의 씬 계층구조도 바뀌지 않으며, 그 레벨의 데이터스미스 씬 액터를 다시 동기화해도 마찬가지입니다.

  • 데이터스미스 씬 애셋은 변하지 않으므로, 계속해서 지난 번 전체 씬 임포트를 기준으로 애셋에 대한 오버라이드를 추적합니다. 즉 리임포트한 애셋에 오버라이드를 리셋하면, 전체 데이터스미스 씬을 임포트한 시점의 상태로 돌아갑니다.

개별 애셋 리임포트 사용 시기

개별 애셋 리임포트가 좋은 경우는 다음과 같습니다.

  • 소수 애셋의 변경사항을 가져오려는데, 전체 데이터스미스 씬에는 다른 애셋이나 씬 계층구조의 변경사항 중 가져오고 싶지 않은 것이 있는 경우.

  • 특정 애셋에 전체 데이터스미스 씬을 임포트했을 때와 다른 데이터스미스 임포트 세팅을 적용하려는 경우.

이 워크플로는 임포트 시 테셀레이션이 필요한 CAD 모델에 특히 유용할 수 있습니다. 데이터스미스 씬 다른 부분에 다른 세팅을 적용할 수 있기 때문입니다. 각 스태틱 메시 애셋의 트라이앵글 수를 제어하여 씬의 퍼포먼스를 최적화는 데도 도움이 될 수 있습니다. 예를 들어 CAD 파일을 저해상도 세팅으로 임포트한 다음 중요한 스태틱 메시 애셋 몇 개만 고해상도로 리임포트할 수 있습니다.

선택된 스태틱 메시 애셋을 리임포트하는 대신 테셀레이션을 다시 하는 것으로 똑같은 목적을 이룰 수 있습니다. 리임포트와 달리 테셀레이션은 다시 해도 CAD 씬 파일에서 애셋의 지오메트리를 리임포트하지 않습니다. 지난 번 임포트한 지오메트리를 기반으로 스태틱 메시 애셋의 트라이앵글형 메시를, 제공한 새 세팅을 사용해 재생성합니다. 자세한 내용은 Retessellating CAD Geometry 문서를 참고하세요.

데이터 보존

전체 데이터스미스 씬을 리임포트하든 개별 애셋을 리임포트하든, 언리얼에서 한 작업 다수가 리임포트 프로세스에 보존됩니다. 예를 들어:

언리얼 엔진 프로퍼티

언리얼 전용 애셋 및 액터의 프로퍼티, 즉 데이터스미스가 소스 파일에서 임포트하지 않은 프로퍼티에 대한 변경 사항은 절대 잃지 않습니다.

예를 들어 데이터스미스를 사용하여 씬을 임포트한 다음 언리얼 에디터에서 임포트된 스태틱 메시 액터 중 하나의 Cast Shadows (그림자 드리우기) 프로퍼티를 비활성화했다 칩시다. 데이터스미스 씬 애셋을 리임포트하고 레벨에서 데이터스미스 씬 액터를 동기화할 때, 그 그림자 드리우기 프로퍼티는 꺼진 상태로 유지됩니다.

데이터스미스 오버라이드

데이터스미스 씬 또는 애셋을 리임포트할 때, 데이터스미스가 override (오버라이드)로 인식한 언리얼 애셋 또는 액터에 대한 변경 사항은 절대 잃지 않습니다. 오버라이드의 예는 스태틱 메시 애셋 또는 액터에 할당한 머티리얼, 데이터스미스 씬의 일부로 생성된 레벨 내 액터의 3D 트랜스폼 정보입니다.

오버라이드로 간주되는 변경사항 관련 자세한 정보는 데이터스미스 개요 문서를 참고하세요.

다음에 데이터스미스 씬을 리임포트한 이후 애셋 또는 액터에 대한 오버라이드를 리셋하면, 언리얼 애셋 또는 액터는 원본 값이 아닌 리임포트 이후 값으로 리셋됩니다. 예:

  • 씬에 "Chair" (의자) 스태틱 메시 애셋이 있고, 초기 데이터스미스 임포트 이후 "Color_00000000" 머티리얼을 할당받았다 가정합시다.

  • 언리얼 에디터에서 이 애셋이 새로운 물리 기반 머티리얼 "Black Leather" 를 사용하도록 수정했습니다. 데이터스미스는 이 변경 사항을 오버라이드로 추적합니다.

  • 이제 소스 씬에서 의자의 컬러 프로퍼티를 변경하고, 의자가 들어있는 데이터스미스 씬 또는 애셋을 리임포트합니다. 처음에 리임포트한 애셋은 언리얼에서 할당한 "Black Leather" 머티리얼 그대로입니다.

  • 애셋에 오버라이드를 리셋하면 원본 "Color_00000000" 머티리얼로 되돌리는 것이 아닌, 데이터스미스가 의자의 새로운 컬러 프로퍼티에 맞게 생성한 새 머티리얼 애셋을 사용하도록 되돌립니다.

자동 리임포트

언리얼 에디터가 선택된 폴더를 모니터링하다 애셋이 변경되면 자동 리임포트하도록 구성할 수 있습니다.

데이터스미스 씬 애셋, 또는 데이터스미스가 생성한 개별 애셋에는 이 시스템을 사용하지 않는 것이 좋습니다. 프로젝트에 추가한 다른 종류 모델이나 애셋에만 자동 리임포트를 사용하세요. 데이터스미스 모델 주변 부가적인 세트 드레싱으로 별도 임포트하는 FBX 파일을 예로 들 수 있습니다.

데이터스미스 이외 콘텐츠에 이 시스템을 설정하는 방법 관련 자세한 내용은 자동 리임포트 문서를 참고하세요.

태그
Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼