데이터스미스에 Rhino 사용

데이터스미스로 McNeel Rhinoceros 3D 에서 씬을 임포트할 때 적용되는 특수 사항을 설명합니다.

Windows
MacOS
Linux

이 글은 데이터스미스가 McNeel Rhinoceros (Rhino) 의 씬을 언리얼 에디터로 임포트하는 방식을 설명합니다. 데이터스미스 개요, 데이터스미스 임포트 프로세스에 대하여 에 설명된 기본 프로세스를 따르는 것은 물론, Rhino 전용 특수 변환 동작도 약간 추가되어 있습니다. 데이터스미스를 사용해서 Rhino 씬을 언리얼 에디터로 임포트할 계획이라면, 이 글이 씬 변환 방식과 그 작업물을 언리얼 에디터에서 사용하는 방법을 이해하는 데 도움이 될 수 있습니다.

Rhino 워크플로

데이터스미스는 Rhino 에 Direct (직접) 워크플로를 사용합니다. 즉 Rhino 씬을 .3dm 파일로 저장하기만 하면 그 파일을 데이터스미스 임포터로 언리얼 에디터에 가져올 수 있다는 뜻입니다. 데이터스미스 콘텐츠를 언리얼 엔진 4 에 임포트 문서를 참고하세요.

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

데이터스미스는 Rhino 파일의 메시, 입체, 표면 하나마다 별개의 스태틱 메시 애셋을 생성합니다. Rhino 의 (아래 이미지 왼편에 보이는) Properties 패널에서 Name 프로퍼티에 설정한 이름이 있는 오브젝트의 경우, 데이터스미스는 스태틱 메시 애셋에 그 이름을 사용합니다 (아래 이미지 오른편에 보입니다). 데이터스미스가 레벨에 생성한 액터 중 그 스태틱 메시 애셋을 참조하는 액터 역시 똑같은 이름을 사용합니다.

인스턴싱

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

가능하면 씬의 (창문, 문, 체인같은) 반복 요소를 Rhino 에서 재사용 가능 블록으로 만들어 이 기능을 활용하는 것이 좋습니다. 자세한 내용은 Rhino documentation 을 참고하세요.

테셀레이션 및 렌더 메시

데이터스미스는 다른 유형의 CAD 파일에 사용하는 것과 똑같은 프로세스를 사용해서 Rhino 씬의 오브젝트 표면을 트라이앵글 메시로 테셀레이트합니다.

언리얼 엔진의 최종 트라이앵글 메시가 소스 씬의 원본 표면에 최대한 비슷해 보이도록 제어하는 데 사용할 수 있는 세팅과, 이 프로세스 관련 자세한 내용은 데이터스미스에 CAD 파일 포맷 사용 문서를 참고하세요.

트라이앵글이 향하는 방향

Rhino 는 보통 모든 표면을 양면으로 표시하며, 표면 노멀 방향과 상관 없습니다. 하지만 언리얼 엔진에서는 카메라를 향하지 않는 트라이앵글을 자동으로 컬링합니다. 그러면 특정 각도에서 봤을 때 씬의 지오메트리가 사라질 수 있습니다.

예를 들어 아래 이미지는 표면 노멀이 안쪽을 향하도록 모델링된 바퀴집 커버입니다. 씬을 언리얼로 임포트한 후, 처음에는 면이 없는 것처럼 보입니다. 이 경우 오브젝트의 노멀 방향을 뒤집으면 면이 나타날 수 있습니다.

뒷면을 향한 경우

앞면을 향한 경우

자세한 내용과 추천 해법은 데이터스미스 임포트 프로세스에 대하여 문서를 참고하세요.

Rhino 머티리얼

데이터스미스가 Rhino 씬에서 찾은 머티리얼과 각기 다른 표면 색과 머티리얼마다 언리얼에서 같은 이름의 머티리얼 애셋 을 별도 생성하고, 그 머티리얼을 데이터스미스 씬 애셋 옆 Materials 폴더에 배치합니다.

  • Materials 폴더의 각 머티리얼은 머티리얼 인스턴스 이며 Rhino 파일에 설정된 컬러 값, 텍스처 맵 등의 프로퍼티를 노출합니다. 노출된 이 프로퍼티를 변경하여 머티리얼을 표면에 적용했을 때 모양을 수정할 수 있습니다. 데이터스미스는 생성하는 스태틱 메시 애셋에 이 머티리얼 애셋을 할당하여 표면이 Rhino 렌더와 같아 보이도록 만듭니다.

    데이터스미스는 Rhino 오브젝트에서 언리얼 엔진으로 머티리얼만 임포트합니다. Rhino 디스플레이 컬러는 완전 무시합니다. 이런 식으로 언리얼 엔진으로 임포트한 시각적 결과가 Rhino 렌더링과 최대한 일치하도록 합니다.

  • 데이터스미스는 Materials/Master 폴더에도 부모 머티리얼 세트를 생성합니다. 이 각각은 Materials 폴더의 머티리얼 애셋 최소 하나의 부모입니다. 이 부모 머티리얼을 편집하면 각 표면이 나타나는 방식을 정의하는 머티리얼 그래프를 더욱 세밀히 제어하고, 추가 파라미터를 자손 머티리얼에 노출하거나, 렌더링 도중 노출된 파라미터를 고려하는 방식을 변경할 수 있습니다.

    부모 머티리얼을 변경하면 그 보무를 상속하는 모든 머티리얼 인스턴스가 자동 변경됩니다. 보통 부모 머티리얼을 수정하기 전 먼저 복제한 뒤 그 사본을 변경하고, 마지막에 특정 머티리얼 인스턴스만 새 사본을 부모로 사용하도록 업데이트하는 것이 좋습니다. 자세한 내용은 데이터스미스 마스터 머티리얼 수정 문서를 참고하세요.

데이터스미스 씬 계층구조 만들기

데이터스미스가 Rhino 모델에서 씬 계층구조를 만드는 방식은 다음과 같습니다.

  • Rhino 씬의 각 레이어에 대해, 데이터스미스는 언리얼에 액터를 만들어 그 레이어의 모든 오브젝트에 대한 부모로 만듭니다.
    참고로 언리얼 에디터의 Layers (레이어) 패널에 생성된 레이어와 달리, 액터의 이 계층구조는 평탄화되지 않습니다. 액터는 Rhino 씬의 레이어와 똑같이 중첩됩니다.

  • 각 레이어를 나타내는 액터 아래, 해당 레이어의 모든 인스턴스 블록은 다른 액터로 나타납니다.

    경고: Rhino 블록의 피벗 포인트는 현재 월드 스페이스에 잘못된 위치로 임포트됩니다.

  • 마지막으로 각 레이어와 각 블록을 나타내는 액터에는, 그 레이어 또는 블록을 이루는 실제 지오메트리 오브젝트를 나타내는 스태틱 메시 액터가 들어갑니다.

  • Rhino 의 그룹은 언리얼 씬 계층구조에 영향을 주지 않는데, 씬 계층구조의 중요 요소라기 보단 선택 도우미로 간주하기 때문입니다.

예를 들어 아래 이미지에서, Rhino 계층구조의 모든 레이어는 언리얼에 그에 해당하는 액터가 있는 것을 볼 수 있습니다. Rhino 의 지오메트리 오브젝트만 들어있는 lights > turn signals 같은 레이어에는 언리얼의 해당 스태틱 메시 액터만 들어갑니다. Rhino 의 lights 레이어에도 블록 인스턴스 둘, left_headlightright_headlight 가 들어있습니다. 그 각각은 언리얼에서 중첩 액터로 나타나며, 여기에는 그 블록을 이루는 지오메트리 오브젝트가 들어갑니다.

크레딧: 이 페이지에 사용된 모델은 Turbosquid 사용자 tomashorin.design 님이 제공해 주셨습니다.

Select Skin
Light
Dark

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

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

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

네이버 카페
공식 포럼