FBX 애셋 메타데이터 파이프라인

FBX 를 통해 언리얼로 커스텀 사용자 정의 어트리뷰트를 가져오는 방법, 언리얼 에디터에서 블루프린트와 Python 으로 그 데이터를 처리하는 방법을 설명합니다.

Choose your operating system:

Windows

macOS

Linux

실시간 3D 제작의 크기와 복잡도가 증가하고, 최근 제작 파이프라인을 이루는 툴의 수도 증가함에 따라, 똑똑한 자동화를 통해 아티스트 효율을 높이는 것이 더욱 중요해지고 있습니다. 파이프라인 인텔리전스에 기반한 워크플로를 만드는 작업은 일반적으로 메타 데이터에 크게 의존합니다. 즉 프로젝트 안에서 애셋의 의미를 부여하는 데 관련된 사용자 정의 프로퍼티를 말합니다.

아티스트 또는 제작자는 일반적으로 애셋을 처음 만드는 데 사용한 앱에서 메타데이터 프로퍼티를 추가합니다. 그 메타데이터는 해당 애셋에 연관되어 있으며, 파이프라인 뒷부분의 앱에서 그 메타데이터를 읽어 그 애셋을 처리하는 방법을 결정할 수 있습니다.

언리얼 에디터에서 블루프린트와 Python 스크립트를 사용하여 애셋의 메타데이터 키와 값을 설정하고 구할 수 있습니다. 설명은 애셋 메타데이터 페이지를 참고하세요. 이렇게 하면 전적으로 언리얼 프로젝트 컨텍스트 안에서만 애셋 관리 작업을 하는 데 도움이 됩니다.

하지만 애셋에 있는 메타데이터의 진정한 가치는 외부 앱과의 상호운용성, 그리고 다수의 앱에 걸친 대규모 애셋 관리 파이프라인을 만들 수 있는 능력에 있습니다. 이를 위해 언리얼 FBX 임포터는 FBX 파일에서 일정 유형의 애셋 메타데이터를 가져와, 그 메타데이터를 언리얼 에디터 안에서 사용할 수 있도록 합니다.

이 메타데이터는 프로젝트의 애셋에 할당되므로, 런타임 게임플레이 코드에서 바로 접근할 수 없습니다. 주로 언리얼 에디터에서 애셋 관리 작업 스크립트를 짜기 위한 용도입니다.

메타데이터 소스

FBX 파일얼 언리얼로 임포트할 때, 임포터는 그 파일의 오브젝트에 붙은 FbxProperty 값을 읽어, 생성할 언리얼 애셋에 딕셔너리 또는 태그-값 짝 매핑으로 붙입니다.

FbxProperty 시스템을 통해 FBX 파일로 커스텀 사용자 정의 메타데이터 익스포트를 지원하는 것으로 알려진 앱은 다음과 같습니다.

Autodesk Maya

Maya 에서 애셋의 메타데이터를 만들려면, 오브젝트에 부가 커스텀 어트리뷰트를 추가합니다. 그 방볍 관련 자세한 내용은 Maya Help 페이지를 참고하세요.

이제 커스텀 어트리뷰트가 Maya Attribute Editor 에서 오브젝트의 Extra Attributes 리스트에 나타날 것입니다. 예를 들어, 이 오브젝트에는 두 개의 커스텀 어트리뷰트가 생성되어 있는데, 스트링 프로퍼티 하나와 숫자 프로퍼티 하나입니다.

Maya 커스텀 어트리뷰트의 메타데이터

Autodesk 3ds Max

3ds Max 에서 애셋의 메타데이터를 만들려면, Object Properties 대화창의 User Defined 탭에 추가합니다.

3ds Max 사용자 정의 프로퍼티의 메타데이터

현재 3ds Max 의 메타데이터는 User Defined 테스트 박스의 완성 콘텐츠가 들어있는 단일 스트링으로 임포트되며, FBX.UDP3DSMAX 메타데이터 태그로 액세스할 수 있습니다. 이 스트링 값을 언리얼 에디터 Python 또는 블루프린트 스크립트에서 읽을 때는 직접 분리해야 할 것입니다.

언리얼의 3ds Max 메타데이터

임포트 이후 메타데이터

언리얼에서 애셋 메타데이터가 나타나는 방식에 대해 알아야 할 것이 몇 가지 있습니다.

  • 모든 메타데이터 키와 값은 외부 앱에서 설정할 당시 원래 유형과 상관 없이 언리얼 엔진에서 스트링으로 저장합니다. 예를 들어 Maya 에서 22 같은 숫자로 메타데이터를 설정한 경우, 언리얼에서 스크립트로 읽을 때 "22" 라는 값이 들어있는 스트링이 됩니다. 이 값을 숫자로 만들려면, 블루프린트 변환 노드 Utilities > String > String to Int 또는 String to Float 를 사용하거나, Python 내장 스트링 파싱 함수 int() 또는 float() 를 사용하면 됩니다.

  • 소스 앱에서 공백이 있는 태그 이름을 생성한 경우, FBX 가 공백을 제거합니다.

  • 일반적으로 태그 이름에는 값의 소스를 나타내는 접수사가 있습니다. FBX 를 통해 임포트한 애셋의 접두사는 FBX. 입니다. 다른 앱이나 플러그인은 접두사가 다를 수 있습니다. 예를 들어 언리얼 Shotgun 통합에서는 SG. 접두사를 사용합니다.

  • 스켈레탈 메시 작업을 할 때, 스켈레톤의 각 본에 여러 다양한 메타데이터 값을 할당할 수 있습니다. 이 경우, FBX 임포트 프로세스는 여전히 모든 메타데이터 값을 스켈레탈 메시 애셋에 할당하지만, 메타데이터 태그 이름의 접두사에 본 이름이 포함되어 각 개별 본에 적용되는 값을 구분할 수 있습니다. 예를 들어, 스켈레탈 메시에 FBX.Right_Arm.tag_name , FBX.Right_Hand.tag_name 같은 태그가 보일 수 있습니다.

즉 Maya 에서 Created By 라는 이름으로 만든 태그는 언리얼에서 FBX.CreatedBy 로 사용할 수 있습니다.

이렇게 임포트한 메타데이터를 언리얼 엔진에서 사용하는 방법 관련 자세한 정보는

[](WorkingWithContent/AssetMetadata)
문서를 참고하세요.

언리얼 엔진 문서의 미래를 함께 만들어주세요! 더 나은 서비스를 제공할 수 있도록 문서 사용에 대한 피드백을 주세요.
설문조사에 참여해 주세요
건너뛰기