Unreal Engine, 글로벌 Asset Manager 사용하지 않기

실제 사용할 예정인 에셋을 글로벌 Asset Manager 연결하여 임시적으로 사용했었다.

이제 이 에셋을 공용 Asset Manager 에서 관리하지 않고, 특정 데이터 에셋이 실행하면 에셋이 로딩되도록 할 것이다.


  1. 언리얼 에디터 Edit > Project Settings 열기
  2. Game - Asset Manager 메뉴 열기
  3. LyraExperienceDefinition 아래의 B_Experience_DebugGame 에셋을 꺽새를 눌러 제거 하기
    1. 해당 에셋은 임시 사용으로 이 곳에 두었다.

파일, 폴더 정리 - GameData 에셋 추가

에셋 정리 전 미리 에셋을 상속 받아 세워두는 용도로 몇 가지 만들거나 옮기도록 한다.

WarriorCore Content
  ├─WarriorCore
  └─Data
    ├─Hero_WarriorGame
    ├─Input_Hero_Warrior
    └─Game_WarriorGame (+)

Game_WarriorGame 에셋을 추가하도록 한다. 상속은 Lyra Game Data 이다.

  • Data 폴더에 3개가 생겼다.

파일, 폴더 정리 - 폴더 정리 고도화

WarriorCore Content
  ├─WarriorCore
  └─Data
    ├─Character (+)
    │  └─Hero (+)
    │     ├─Hero_WarriorGame (*)
    │     └─Input_WarriorGame (*)
    └─Game_WarriorGame

  • Hero_WarriorGame 과 Input Hero Warrior 새로만든 Character > Hero 폴더로 이동하도록 한다.
WarriorCore Content
  ├─WarriorCore
  └─Data
    ├─Character (+)
    │ └─Hero (+)
    │   ├─Pawn_Hero (*)
    │   └─Input_Hero (*)
    └─Game_WarriorGame

  • 이름도 변경 해주도록 한다.
  • Hero_WarriorGame > Pawn_Hero 으로 이름 변경
  • Input_Hero_Warrior > Input_Hero 으로 이름 변경

PawnData 임시 에셋 추가

PawnData 이 없어서 실행이 안되어 테스트할 수 없으니 임시 파일을 만들도록 한다.

Lyra 공용 폴더에서 진행하도록 한다.

All
└─Content
   └─System
      └─PawnData (+)
  • System 아래의 PawnData 를 만들도록 한다.
  • Lyra Pawn Data 상속을 받은 데이터 에셋을 생성한다.
  • DefaultPawnData 이름으로 변경한다.
  • Ctrl + C 를 눌려 경로를 기억하도록 한다.

DefaultGame.ini 파일을 편집하여 추가한 DefaultPawnData를 등록하도록 한다.

  • 방금 추가한 DefaultPawnData 정상적으로 가리키도록 편집하였다.

Game Core 에셋에 리소스 할당하기

이전 시간에 게임 시작 시 실행되도록 Game Feature의 Core 를 생성한 적이 있다. Core 실행 시 에셋들을 로딩되도록 해주도록 한다.

Core 위치

WarriorCore Content
  └─WarriorCore (*)

해당 Core 데이터 에셋을 열어주도록 한다.

  • Asset Manager 배열을 늘리면서 로딩하고 싶은 에셋들을 추가하도록 한다.

Game Core 에셋에 리소스 할당하기 - Map

특정 Map 에셋들을 로딩되도록 할 것이다. 에셋 위치는 Maps 폴더 전체를 가르키도록 할 것이다.

WarriorCore
├─Content
│  ├─WarriorCore
│  └─Maps (*)
  • Asset Manager [+] 클릭하여 Primary Asset Types to Scan 객체 배열 늘리기
  • Primary Asset Type: Map 식별자 지정
  • Asset Base Class: World 클래스를 검색하여 지정
  • Directories: 본인 디렉토리의 "/Maps" 폴더의 에셋들을 가르키도록 지정

Game Core 에셋에 리소스 할당하기 - Experience

  • Asset Manager [+] 클릭하여 Primary Asset Types to Scan 객체 배열 늘리기
  • Primary Asset Type: LyraExperienceDefinition
  • Asset Base Class: LyraExperienceDefinition 클래스 지정
  • Has Blueprint Classes: 캡처에는 누락되어있는데, 체크하도록 한다.
    • Blueprint Claases 라는 것을 알려주지 않으면 VS 2022 에디터 구동 시 오류가 발생한다.
    • VS 2022 경고 문구: "[[2024.12.24-05.20.38:731][ 0]]LogOutputDevice: Error: Ensure condition failed: TypeData.Info.AssetBaseClassLoaded == BaseClass && TypeData.Info.bHasBlueprintClasses == bHasBlueprintClasses && TypeData.Info.bIsEditorOnly == bIsEditorOnly [File:D:\build++UE5\Sync\Engine\Source\Runtime\Engine\Private\AssetManager.cpp] [Line: 926]"
    • 오류 나는 이유는 Primary Asset ID 찾는 도중 Blueprint 에셋인데, 미체크로 인해 Cpp인 상속자 LyraExperienceDefinition 으로 스캔되고 Edit > Project Settings > AssetManager 자원과 충돌한 것이다.
  • Directories: 배열 하나 추가 후 Experiences 지정
  • Directories: 배열 하나 추가 후 System/Experiences 지정

Game Core 에셋에 리소스 할당하기 - UserFacingExperience

사용 예정되어 있는 에셋으로 미리 만들어두도록 한다.

  • Primary Asset Type: LyraUserFacingExperienceDefinition 식별자로 입력
  • Asset Base Class: LyraUserFacingExperienceDefinition 클래스로 지정
  • Directories: 배열 하나 추가 후 Experiences 지정

Game Core 에셋에 리소스 할당하기 - ExperienceActionSet

  • Primary Asset Type: LyraExperienceActionSet 식별자로 입력
  • Asset Base Class: LyraExperienceActionSet 클래스로 지정

Game Core 에셋에 리소스 할당하기 - GameData

앞서 만든 Game_WarriorGame 에셋을 등록할 차례이다.

  • Primary Asset Type: LyraGameData 식별자로 입력
  • Asset Base Class: LyraGameData 클래스로 지정
  • Specific Assets: 생성한 Game_WarriorGame 에셋을 선택한다.