채널톡 아이콘

인프런 커뮤니티 질문&답변

이다인님의 프로필 이미지

작성한 질문수 1

이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해

15강 게임의 완성

프로젝트명 변경 또는 이주 시 발생하는 문제를 여쭤보고 싶습니다.

작성

·

37

·

수정됨

0

프로젝트명을 변경할 때 겪는 문제들로 인해 삭제하고 다시 생성하느라 시간을 많이 소비하고 있습니다.

제가 겪고 있는 문제점들을 짚어보겠습니다! 공식적으로 편리하게 이주 또는 프로젝트명 변경을 할 수 있는 방법을 알고싶습니다.

버전은 5.4.4 사용 중입니다.

 

기존 프로젝트명: ArenaBattle
변경한 프로젝트명: BEAD

 

프로젝트명 변경 이후 기본적으로 진행한 작업들

  • DefaultEngine.ini에 Redirect할 경로들 모두 적은 후 .uasset 데이터들 옮기기

  • 소스코드 내 모든 모듈명 교체, .uproject 명세서 내 모듈명 교체, Build.cs 내 모듈명 교체 (버전 확인도 제대로 수행)

  • Saved, Intermmidate, DerivedDataCache, Binaries, 솔루션 삭제 후 generate -> Rebuild

  • 에디터 내 Content 폴더 우클릭 > Update Redirector References

  • C++ 클래스 생성자 내 참조하는 경로 모두 변경한 프로젝트 경로로 설정 & 에디터의 모든 블루프린트 내 Parent 경로 Redirect한 것으로 적용된 것 확인

  • 에픽게임즈 라운처 > 언리얼 엔진 > 검증 수행

 

질문 모음

1. Redirect를 시도했는데도 불구하고 "행동 트리"와 "데이터 애셋"의 경우, 참조하는 클래스가 새로운 프로젝트명의 클래스를 찾지 못하는 문제

시도한 내용:

Redirect 사용 시 Widget Blueprint 등은 Parent 경로는 잘 찾았으나
Behavior Tree 내 클래스 경로데이터 애셋의 경로는 제대로 찾지 못해 삭제하고 다시 생성해야 하는 경우가 발생했습니다. (물론, Redirect 작성 이후 .uasset을 옮기고 캐시 삭제 및 generate 수행)

// DefaultEngine.ini //
[CoreRedirects]
+ClassRedirects=(OldName="/Script/ArenaBattle.ABComboActionData", NewName="/Script/BEAD.ABComboActionData") // 애셋 데이터
+ClassRedirects=(OldName="/Script/ArenaBattle.BTService_Detect",NewName="/Script/BEAD.BTService_Detect") // 행동트리
... 이하 생략

 

2. Animation Montage의 경우, 정보들은 그대로 잘 옮겨져 Notifies도 제대로 배치되어 있지만

삭제하고 다시 설치하지 않으면 C++ 클래스 내 Notify 함수가 호출되지 않는 현상

아래 AM_ComboAttack 몽타주는 Redirect를 사용하여 정상적으로 열리고, 모든 내용들이 잘 배치가 되어 있으나

아래 AttackHitCheck 노티파이를 삭제하고 다시 배치하지 않으면 C++ Notify 함수가 재생되지 않는 현상이 발생합니다.

image.png

 

3. 기존 모듈명은 이미 수정하여 어느 곳에도 존재하지 않는데 자꾸 VerifyImport: Failed to find script package for import object 'Package/Script/ArenaBattle' 경고가 뜨는 현상

모든 소스코드와 명세서, 그리고 블루프린트 내에도 이전 모듈명과 관련된 내용이 없는데도 엔진을 실행하면 아래 경고문이 나옵니다.
(당연히 캐시 삭제와 generate, rebuild, update redirector references 수행했습니다.)
물론, BP_ABGameMode.uasset을 다시 지우고 생성하면 해결되겠지만
위의 질문들을 포함해서 Redirect를 사용하고 코드를 전부 수정해도 자꾸 적용이 안되는 게 생기고 아래 오류가 생기니 새로 삭제하고 다시 만들어야 하는 번거로움이 있습니다 ㅜ 해결방법을 알고싶습니다.

LogLinker: Warning: [AssetLog] D:\4.Unreal\BEAD\Content\ArenaBattle\Blueprint\BP_ABGameMode.uasset: VerifyImport: Failed to find script package for import object 'Package / Script / ArenaBattle'
image.png

 



답변 1

0

이득우님의 프로필 이미지
이득우
지식공유자

음.. 많은 분들이 기존 프로젝트에서 이름을 바꾸는 방식을 시도하는데, 이 방식은 보시는 것처럼 문제가 많고 버전마다 대응하는 방법이 달라서 제가 정확히 조언드리가 어렵습니다.
조금 시간이 걸리더라도 프로젝트를 처음부터 만들고, 코드는 이동하는게 생각보다는 오래 걸리지 않아요.
저라면 신규 프로젝트를 만들고 복습하는겸 하나씩 다시 생성해볼 것 같습니다.