SubTitle : 난 데이터 테이블 누락인줄 알았어
static ConstructorHelpers::FObjectFinder<UDataTable> CharacterTable(TEXT("/Script/Engine.DataTable'/Game/Blueprints/Data/DT_CharacterData.DT_CharacterData'"));
if (CharacterTable.Succeeded() && CharacterTable.Object)
{
CharacterData = CharacterTable.Object;
}
캐릭터 데이터 테이블을 생성자에서 FObjectFinder를 사용해 불러오고, BeginPlay() 함수에서 캐릭터 스탯의 초기화에 사용하고 있는데, 에디터에서는 정상적으로 작동하지만 빌드만 뽑으면 자꾸 Fatal Error가 뜨면서 시작하자마자 게임이 꺼지는 현상이 있었다.
[2024.08.21-05.18.18:011][638]LogWindows: Error: === Critical error: ===
[2024.08.21-05.18.18:011][638]LogWindows: Error:
[2024.08.21-05.18.18:011][638]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION writing address 0x00000000000008b0
[2024.08.21-05.18.18:011][638]LogWindows: Error:
[2024.08.21-05.18.18:011][638]LogWindows: Error: [Callstack] 0x00007ff632815df1 TrapperProject.exe!ATrapperPlayer::ApplyCharacterData() [E:\GA5thFinalProject_Trapper\5_Project\TrapperProject\Source\TrapperProject\Character\TrapperPlayer.cpp:710]
ApplyCharacterData() 여기서 자꾸 예외가 뜨길래 데이터 테이블이 패키징에 포함되지 않는 것 같았다.
분명 Additional Asset Directories to Cook 에 디렉토리 경로를 잘 넣어주고 있는데... 그래서 패키징된 파일에 데이터 테이블이 잘 들어가있는지 확인이 필요했다. 그 확인하는 과정을 남겨두면 좋을 것 같아서 기록하는 포스팅.
먼저 명령 프롬포트를 킨 뒤, UnrealPak이 설치된 폴더로 이동하자.
C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\Win64
그리고 패키징된 파일이 있는 곳으로 이동해서 Pak 폴더를 찾아준다.
(생략)\Windows\TrapperProject\Content\Paks
내 경우엔 여기에 위치한다.
UE5 기준으로 이렇게 세개의 파일을 찾을 수 있었다.
만약 포함된 에셋의 리스트만 출력하고 싶다면, 명령 프롬포트에
UnrealPak.exe "출력해야 하는 Pak 파일 경로" -List
이렇게 써주면 된다.
C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\Win64>UnrealPak.exe "E:(생략)\Windows\TrapperProject\Content\Paks\TrapperProject-Windows.pak" -List
(예시 커맨드)
그럼 이렇게 쭉쭉 출력된다.
만약 압축을 풀어서 폴더로 확인하고 싶다면,
UnrealPak.exe "출력해야 하는 Pak 파일 경로" -Extract "압축 풀 경로"
이렇게 넣어주면 된다.
C:\Program Files\Epic Games\UE_5.3\Engine\Binaries\Win64>UnrealPak.exe "E:(생략)\Windows\TrapperProject\Content\Paks\TrapperProject-Windows.ucas" -Extract "C:\Users\user\Desktop\PakTest"
(예시 커맨드)
나는 pak 확장자가 아닌 ucas 확장자를 압축해제 해줬는데, pak을 풀어봤을 때 에셋이 포함되어 있지 않았기 때문.. Content 폰트만 들어있었어서, 용량이 더 큰 ucas를 풀어보니 거기에 에셋이 다 있었다.
이렇게.. Extract 한 폴더에 들어가보면 쭉쭉 뜨기 때문에, 에셋이 누락되었는지 다른 문제인건지 확인할 수 있게된다.
아무튼 사진을 보면 알 수 있듯, 나는... 다른 문제였다..
데이터 테이블 너무 예쁘게 들어가있구.. 애먼 데이터 테이블만 탓하고 있었음 :)
뭐 그래도 덕분에 UnrealPak 사용법도 알게되고 럭키비키자나...!