[Unreal/C++] 블루프린트 부모 클래스 변경
Unreal Engine 5 에서 클래스 작업을 하던 도중 이름이 마음에 들지 않아 클래스 파일의 이름을 바꿨습니다.
해당 클래스를 부모로 가지고 있던 위젯 블루프린트는 부모 클래스를 찾지 못해 다음과 같은 에러를 발생시켰습니다.
위젯 블루프린트가 유효하지 않은 클래스에서 파생되어 로드할 수 없습니다.
이 블루프린트의 부모 클래스가 제거되지는 않았는지 확인해보세요!
먼저 이에 대한 해결책은 언리얼 포럼에서 찾을 수 있었습니다.
이 방법을 제외하고 가장 간편하고 직관적인 해결책은
이전 변경된 클래스나 삭제된 클래스를 다시 만들어서 연결시켜준 후 부모클래스를 변경하는 것 입니다.
이 간편한 방법이 당시에는 생각나지 않아서 고생했지만 결과적으로 다른 해결책을 찾았으니 다행입니다.
위 방법을 사용하기 위한 방법은 다음과 같습니다.
1. Unreal 엔진과 Visual Studio 등 도구를 종료합니다.
2. 프로젝트 폴더 내에 Config->DefaultEngine.ini 를 메모장으로 열어줍니다.
3. 내용 중 [CoreRedirects] 항목이 없다면 가장 하단에 항목을 추가해줍니다.
4. CoreRedirects 항목 아래에 변경사항을 추가합니다.
[CoreRedirects]
+ClassRedirects=(OldName="OldClassName",NewName="NewClassName")
5. 추가가 완료되면 편집기를 닫고 솔루션 파일을 다시 생성합니다.
6. 엔진을 다시 실행시킵니다.
* 변경사항이 조정되지 않는다면 Binaries 파일이나 Intermediate 파일을 삭제하고 솔루션 파일을 다시 생성하여 테스트합니다.
Config
DefaultEngine
Open
Ex_Content
Edit DefaultEngine
Generate Visual Studio project files
꼭 필요한 작업은 아니지만, DefaultEngine의 갱신이 일어나기 전에 수정되는 작업이 영향을 끼치지 않도록 하려면 수정했던 파일을 원복해야합니다.
1. 정상적으로 열렸다면 부모 블루 프린트를 다시 한 번 변경해주고 컴파일->저장 합니다.
2. 언리얼 엔진과 편집기를 닫습니다.
3. 수정했던 DefaultEngine의 CoreRedirects 항목을 지워줍니다.
4. 언리얼 엔진을 다시 열고 부모 클래스가 여전히 정상적인지 확인합니다.
'Unreal > Solution' 카테고리의 다른 글
Unreal UseBlackboard TObjectPtr 문제 (0) | 2023.12.18 |
---|---|
Unreal C++ 생성자 사용시 주의할 점 (0) | 2023.12.16 |
Unreal Layered Blend per bone 본 별 레이어 블렌딩 이상함 (0) | 2023.12.04 |
Unreal Animation Montage에서 Particle이 재생되지 않음 (0) | 2023.12.04 |
Unreal C++ Error: CDO Constructor (Assets): Failed to find (0) | 2023.12.01 |