멈추지 않고 끈질기게

[Unreal] 최종 프로젝트 9일차 - 파일 경로 수정, 에셋 탐색 본문

포트폴리오

[Unreal] 최종 프로젝트 9일차 - 파일 경로 수정, 에셋 탐색

sam0308 2024. 5. 23. 10:17

※ 해당 포스팅은 개인의 공부 정리용 글입니다. 틀린 내용이 있다면 추후 수정될 수 있습니다.

※ 해당 포스팅은 청년취업사관학교 교육 과정의 최종 프로젝트에 관한 내용을 포함하고 있습니다.

 

※ 해당 포스팅은 Unreal 5.4.1 버전을 기준으로 작성되었습니다.

 

 

 

 

0. 서론

 오늘은 운영측의 에셋 지원 신청 기간의 마감이 내일까지라 회의하며 필요한 에셋을 탐색하는 데에 많은 시간을 할애하여 작업량이 다소 부족합니다. 다만 짚고 넘어갈만한 내용이 있어 일지는 작성하려고 합니다.

 

 

1. 파일 경로 수정(폴더 추가)

 파이썬 AI 코드를 담당하시던 분이 슬슬 언리얼에서 작업을 하려고 하시면서 현재 기준 테스트 방법을 물어보셔서 알려드리려 했는데, 몇가지 문제점이 있었습니다. AudioCaptureComponent를 통한 wav 파일 저장 경로가 프로젝트경로/Saved/BouncedWaveFiles 인데, git ignore에 걸려 깃으로 공유되지 않는 폴더다 보니 처음 실행하는데 문제가 좀 있었습니다. 또한 MediaSoundComponent가 BeginPlay()에서 한번은 꼭 실행해주어야 동작하는 문제 때문에 아무 소리도 없는 Default.wav 파일을 한번 실행하도록 했는데, 해당 경로를 하드코딩 해놓고 고치지 않는 바람에 팀원 분의 PC에서는 실행되지 않는 이슈가 발생했습니다. 하드코딩의 폐해를 다시 한 번 체감하는 순간이었습니다.

void ANPCBase::BeginPlay()
{
	Super::BeginPlay();

	NPCController = CastChecked<ANPCController>(GetController());

	AnimInstance = Cast<UNPCAnimInstance>(GetMesh()->GetAnimInstance());
	ensure(AnimInstance);

	MediaPlayer = NewObject<UMediaPlayer>();
	MediaPlayer->OnEndReached.AddDynamic(this, &ANPCBase::OnPlayEnded);

	// 경로 하드코딩
	PlayTTS(TEXT("D:/Projects/victroyShip/Saved/BouncedWavFiles/Speech.wav"));
}

 

 

 해당 이슈들을 해결하기 위해 우선 회의 후에 프로젝트 폴더에 임의의 폴더를 생성하고, Content 폴더 외에 별도로 저장할 파일들은 해당 폴더에 넣기 하였습니다. 그리고 AuidoCaputreComponent로 저장할 파일의 경로를 해당 폴더로 변경하였습니다. Default.wav 등의 파일도 해당 폴더로 이동하고, 하드코딩한 경로는 모두 UKismetSystemLibrary::GetProjectDirectory()로 가져온 프로젝트 경로를 이용한 방식으로 수정하였습니다.

void ANPCBase::BeginPlay()
{
	Super::BeginPlay();

	NPCController = CastChecked<ANPCController>(GetController());

	AnimInstance = Cast<UNPCAnimInstance>(GetMesh()->GetAnimInstance());
	ensure(AnimInstance);

	MediaPlayer = NewObject<UMediaPlayer>();
	MediaPlayer->OnEndReached.AddDynamic(this, &ANPCBase::OnPlayEnded);

	// 경로 수정
	const FString DefaultPath = UKismetSystemLibrary::GetProjectDirectory() + TEXT("Extras/WavFiles/Default.wav");
	PlayTTS(DefaultPath);
}

 

사진 1. 저장할 파일 경로 변수로 설정

 

 

 

2. 에셋 탐색(배경, 애니메이션)

 오후 시간 대부분은 내일까지 요청할 에셋을 고르느라 회의하는 데 소비하였습니다. 다른 에셋들은 그래도 내일 다시 검토하면 되는데, 마켓플레이스의 5월 할인이 오늘까지라는 소식을 듣고 몇몇 에셋은 급하게 오늘 바로 구매 요청드렸습니다.

npc 캐릭터 모델링들도 필요하긴 한데 퀄리티가 높은건 너무 비싸고, 가격이 합리적인건 퀄리티가 너무 떨어져서 mixamo나 기타 무료 에셋들을 이용하게 될 것 같습니다. 대신에 애니메이션 팩을 구매하여 npc에 다양한 애니메이션을 추가하고, 감정 표현을 좀 더 풍부하게 만들 예정입니다.