Unreal Engine 에러 failed to resolve into an asset ID

문제 발생

언리얼 에디터로 게임 구동 시 장문의 에러가 발생하였다

/UEDPIE_0_DevMap.DevMap:PersistentLevel.LyraWorldSettings.DefaultGameplayExperience is /WarriorCore/Experiences/B_Experience_DebugGame.B_Experience_DebugGame_C but that failed to resolve into an asset ID (you might need to add a path to the Asset Rules in your game feature plugin or project settings

해당 오류는 Asset ID 를 받아오는 검증을 실패해 발생하는 문제로 보인다.

사용자 환경

  • 언리얼 엔진 5.4
  • Lyra 소스코드
  • 작업중인 내용: Level 구성 및 Experience 구성 중
  • 언리얼 엔진 에디터에서 에러가 발생한 시점 위로 확인해봐야 한다.
  • VS2022 해당 소스코드를 열고 Ctrl+F 로 에러 문구를 "failed to resolve into an asset ID" 입력하였다.
  • 하단에 File 과 몇 줄에서 발생하는지 자세히 알려주어서 찾았다.
  • 소스코드에 UE_LOG 로그를 발생 시켰고, if(!Result.IsValid()) 로 되어있는데 검증에 실패한 것으로 보인다.
  • Result 객체를 무엇으로부터 받아오는지 살펴볼 필요가 있다.
  • 상단에 Result = UAssetManager.. 할당하는 코드가 있다.
  • DefaultGameplayExperience 자세히 보기위해서는 Ctrl + 마우스좌클릭으로 이동할 수 있다.
  • 이동한 데이터를 살펴보면 TSoftClassPtr 이 있다.
  • 커서를 가져다보면 어떤 용도인지 설명을 확인할 수 있다.
    • 일종의 wrapper 용도로 보인다.
  • 결정적으로 Default Experience 에서 AssetManager 에셋을 불려오지 못하는 것이니, 언리얼 에디터에서 확인해보도록 한다.

  • 언리얼 엔진 입장에서 B_Experience_DebugGame 를 설정을 확인했으나, 실제 에셋을 찾지 못하는 것이니 찾을 수 있도록 설정하도록 한다.

사용자가 해결했던 방법

  • 언리얼 에디터 Edit > Project Settings 클릭
  • Project Settings 메인화면 우측LNB메뉴 Game > Asset Manager 이동
  • "Primary Asset Types to Scan" 항목에서 Lyra Experience Definition 을 찾을 수 있다. 해당 객체를 펼치도록 한다.
  • Specific Assets 배열을 추가하고 B_Experience_DebugGame 를 넣어주도록 하였다.
    • 차선책으로 Directories 로 설정된 경로에 본인이 만든 B_Experience_DebugGame 를 넣으면 동작할 것으로 보인다.