본문 바로가기
언리얼

[UE5] Core Redirect

by 안선생 2025. 4. 9.

코어 리디렉트란 무엇인가?

코어 리디렉트는 런타임 시점에서 기존의 클래스, 열거형, 함수, 패키지, 속성, 구조체 등을 새로운 이름이나 위치로 매핑하는 기능입니다. 이를 통해 이전에 생성된 에셋이 새로운 코드 구조를 인식하고 정상적으로 로드될 수 있도록 합니다.

코어 리디렉트의 필요성

개발 도중 코드 구조를 변경하거나 리팩토링할 때, 기존 에셋이 참조하는 클래스나 구조체의 이름이 변경되면 에셋 로딩 시 오류가 발생할 수 있습니다. 이러한 문제를 방지하기 위해 코어 리디렉트를 설정하면, 엔진이 자동으로 이전 이름을 새로운 이름으로 매핑하여 에셋 로딩 문제를 해결합니다.

코어 리디렉트 설정 방법

코어 리디렉트는 프로젝트의 DefaultEngine.ini 파일의 [CoreRedirects] 섹션에 설정할 수 있습니다. 예를 들어, 클래스 이름을 변경한 경우 다음과 같이 설정할 수 있습니다:

[CoreRedirects] +ClassRedirects=(OldName="이전클래스이름", NewName="새로운클래스이름")
 
 

이러한 설정을 통해 엔진은 에셋 로딩 시 이전 클래스를 새로운 클래스로 자동 매핑합니다. 

 

언리얼 엔진에서 코어 리디렉트를 활용하여 애니메이션 인스턴스 마이그레이션하기

언리얼 엔진에서 프로젝트를 개발하다 보면, 기존의 애니메이션 인스턴스를 다른 프로젝트로 마이그레이션해야 하는 상황이 발생할 수 있습니다. 특히, Lyra 샘플 프로젝트의 애니메이션 인스턴스를 클론 코딩 프로젝트에 가져오려는 경우, 부모 클래스의 부재로 인해 문제가 발생할 수 있습니다. 이러한 문제를 해결하기 위해 코어 리디렉트(Core Redirects) 기능을 활용할 수 있습니다.

 

문제 상황

Lyra 샘플 프로젝트의 애니메이션 인스턴스는 LyraAnimInstance라는 부모 클래스를 기반으로 합니다. 그러나 클론 코딩한 프로젝트에는 해당 클래스가 존재하지 않기 때문에, 애니메이션 인스턴스를 그대로 마이그레이션하면 부모 클래스를 찾을 수 없다는 오류가 발생합니다.

 

해결 방법: 코어 리디렉트 설정

이러한 문제를 해결하기 위해, 기존의 LyraAnimInstance 클래스를 새로운 프로젝트의 UJHAnimInstance 클래스로 매핑하는 코어 리디렉트를 설정할 수 있습니다. 이를 위해 프로젝트의 DefaultEngine.ini 파일에 다음과 같은 설정을 추가합니다:

 

 

그렇다면 JHAnimInstance이라는 애님 인스턴스를 사용하고 있는데 이때 할 수 있는 방법이 코어 리디렉트입니다.

 

여기서 OldName은 기존 클래스의 경로이며, NewName은 새로운 클래스의 경로입니다. 이 설정을 통해 엔진은 LyraAnimInstance에 대한 참조를 자동으로 UJHAnimInstance로 변경합니다.

 

 

 

 

이렇게 코어 리디렉트를 알아 봤는데 이러한 단계를 통해, 클래스나 구조체 등의 이름 변경으로 인한 에셋 로딩 문제를 효과적으로 해결할 수 있습니다.