코어 리디렉트란 무엇인가?
코어 리디렉트는 런타임 시점에서 기존의 클래스, 열거형, 함수, 패키지, 속성, 구조체 등을 새로운 이름이나 위치로 매핑하는 기능입니다. 이를 통해 이전에 생성된 에셋이 새로운 코드 구조를 인식하고 정상적으로 로드될 수 있도록 합니다.
코어 리디렉트의 필요성
개발 도중 코드 구조를 변경하거나 리팩토링할 때, 기존 에셋이 참조하는 클래스나 구조체의 이름이 변경되면 에셋 로딩 시 오류가 발생할 수 있습니다. 이러한 문제를 방지하기 위해 코어 리디렉트를 설정하면, 엔진이 자동으로 이전 이름을 새로운 이름으로 매핑하여 에셋 로딩 문제를 해결합니다.
코어 리디렉트 설정 방법
코어 리디렉트는 프로젝트의 DefaultEngine.ini 파일의 [CoreRedirects] 섹션에 설정할 수 있습니다. 예를 들어, 클래스 이름을 변경한 경우 다음과 같이 설정할 수 있습니다:
[CoreRedirects] +ClassRedirects=(OldName="이전클래스이름", NewName="새로운클래스이름")
이러한 설정을 통해 엔진은 에셋 로딩 시 이전 클래스를 새로운 클래스로 자동 매핑합니다.
언리얼 엔진에서 코어 리디렉트를 활용하여 애니메이션 인스턴스 마이그레이션하기
언리얼 엔진에서 프로젝트를 개발하다 보면, 기존의 애니메이션 인스턴스를 다른 프로젝트로 마이그레이션해야 하는 상황이 발생할 수 있습니다. 특히, Lyra 샘플 프로젝트의 애니메이션 인스턴스를 클론 코딩 프로젝트에 가져오려는 경우, 부모 클래스의 부재로 인해 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 코어 리디렉트(Core Redirects) 기능을 활용할 수 있습니다.
문제 상황
Lyra 샘플 프로젝트의 애니메이션 인스턴스는 LyraAnimInstance라는 부모 클래스를 기반으로 합니다. 그러나 클론 코딩한 프로젝트에는 해당 클래스가 존재하지 않기 때문에, 애니메이션 인스턴스를 그대로 마이그레이션하면 부모 클래스를 찾을 수 없다는 오류가 발생합니다.
해결 방법: 코어 리디렉트 설정
이러한 문제를 해결하기 위해, 기존의 LyraAnimInstance 클래스를 새로운 프로젝트의 UJHAnimInstance 클래스로 매핑하는 코어 리디렉트를 설정할 수 있습니다. 이를 위해 프로젝트의 DefaultEngine.ini 파일에 다음과 같은 설정을 추가합니다:
그렇다면 JHAnimInstance이라는 애님 인스턴스를 사용하고 있는데 이때 할 수 있는 방법이 코어 리디렉트입니다.
여기서 OldName은 기존 클래스의 경로이며, NewName은 새로운 클래스의 경로입니다. 이 설정을 통해 엔진은 LyraAnimInstance에 대한 참조를 자동으로 UJHAnimInstance로 변경합니다.
이렇게 코어 리디렉트를 알아 봤는데 이러한 단계를 통해, 클래스나 구조체 등의 이름 변경으로 인한 에셋 로딩 문제를 효과적으로 해결할 수 있습니다.
'언리얼' 카테고리의 다른 글
[UE5] Subsystem (0) | 2025.04.08 |
---|---|
[UE5] TSubclassOf (0) | 2025.04.06 |
[UE5] 머티리얼 동적으로 바꾸는 법 SetCustomPrimitiveDataFloat (0) | 2025.02.12 |
[UE5] Common UI 마우스 인풋 안먹을 때 (0) | 2025.02.09 |
[UE5] 언리얼 커스텀 로그 만들기 (1) | 2024.11.14 |