[UE5] Universal Scene Description(USD) Error

ChangJin·2025년 3월 3일
1

Unreal Engine5

목록 보기
119/122
post-thumbnail

글에 사용된 모든 그림과 내용은 직접 만들고 작성한 것입니다.

글의 목적

언리얼 엔진의 사용 도중 발생한 USD 에러의 해결 방법을 정리하기 위함.

알게 된 점

  1. USD 에러는 컴퓨터가 멈추게 되는 오류이다.
  2. 해결 방법은 엔진 내부의 폴더를 찾아내서 삭제하고 GenerateProjectFiles.bat을 다시 실행하는 것이다.

참고한 문서

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/universal-scene-description-usd-in-unreal-engine
https://www.youtube.com/watch?v=YNY_YPruYlA

내용

🎯 USD에 대해

  • 공식 홈페이지에서는 Property Replication을 다음처럼 소개하고 있습니다.

    "유니버설 씬 디스크립션(Universal Scene Description, USD) 교환 포맷은 여러 요소 에셋으로 구성된 임의의 3D 씬을 안정적이고 스케일 조절 가능한 방식으로 교환 및 보강하기 위해 Pixar에서 개발한 오픈 소스 포맷입니다."

우리가 3D 오브젝트를 다룰 때 FBX 파일 포맷을 자주 접할 수 있는데요. FBX는 Autodesk가 소유한 포맷이고, USD는 픽사 애니메이션에서 소유한 포맷입니다.

🎯 USD 오류

엔진을 사용하던 도중, 컴퓨터가 갑자기 꺼진 이후 다시 부팅해서 엔진을 빌드해보니 USD 관련 오류가 발생했습니다.
빌드를 74%에서 이런 오류 메시지를 출력합니다. 읽어보면 USDWrapper에 어떤 포맷 관련된 문제인거 같습니다.

UnrealUSDWrapper::GetAllSupportedFileFormats() UnrealUSDWrapper.cpp:642
FUnrealUSDWrapperModule::StartupModule() UnrealUSDWrapper.cpp:1262
FModuleManager::LoadModuleWithFailureReason(FName, EModuleLoadResult &, ELoadModuleFlags) ModuleManager.cpp:854

코드 부분으로 찾아 들어가보니 다음의 부분에서 오류 메시지를 표시해주고 있는데요. UsdUsdFileFormatTokens을 제대로 가져오지 못하고 있습니다. 파일을 살펴보니, USD 플러그인을 로드하는 도중 충돌이 발생했습니다.

// Ignore formats that don't target "usd"
pxr::SdfFileFormatConstPtr Format = pxr::SdfFileFormat::FindByExtension(Ext, pxr::UsdUsdFileFormatTokens->Target);

다음의 경로에 있는 폴더가 문제가 생겼다고 알려주고 있습니다.

UnrealEngine\Engine\Binaries\ThirdParty\USD\ 

🎯 USD 해결방법

우선, 클린 빌드의 대상은 아님을 알려드립니다. Intermediate, Saved, Binaries를 삭제하고 다시 빌드를 해도, 저 경로의 파일은 엔진의 바이너리 파일이므로 현재 작업 중인 프로젝트와는 관련이 적습니다.

에픽 게임즈에서 다운 받은 언리얼 엔진 버전이라면, 다음의 검증 기능을 사용하면 손쉽게 해결할 수 있습니다. 하지만 이것도 시간이 꽤 걸립니다.

가장 빠르고 좋은 방법은 저 USD 폴더를 삭제해버리고 GenerateProjectFiles.bat을 실행시켜 엔진을 다시 재빌드하면 됩니다.

profile
게임 프로그래머

0개의 댓글