코어 리디렉션

코어 리디렉션은 언리얼 엔진 시스템으로, 게임과 에디터가 애셋 경로를 일반적인 위치가 아닌 다른 위치에서 찾도록 지시할 수 있습니다.

자세한 내용은 여기에서 확인하거나 언리얼 문서에서 확인하십시오. 언리얼 문서의 일부 내용은 부정확하며 PackageRedirects의 OldName이 슬래시 없이 작동한다고 주장합니다. 대신 여기 또는 언리얼 디렉티브 문서 페이지의 예제를 따르십시오.

코어 리디렉션 설정하기

우리는 전체 게임이 아닌 언리얼 플러그인을 만들고 있으므로, 리디렉션을 위해서는 몇 가지 추가 단계를 거쳐야 합니다.

리디렉션 작성하기

먼저 리디렉션을 통해 이동해야 할 패키지 또는 애셋을 식별합니다.

코어 리디렉션을 보관할 새 파일 모드참조/Config/Engine.ini 를 생성해야 합니다.

이 파일을 만드는 과정은 여기에서 확인할 수 있습니다.

예시: 모드 참조 변경

코어 리디렉션의 예시 사용 사례는 모드의 모드 참조를 변경해야 하지만, 사용자의 건물이나 이전 모드 참조의 다른 콘텐츠가 지속되기를 원하는 경우입니다.

이것은 건물 자원 노드 Redux 모드에서 모든 건물을 원활하게 포팅하는 데 사용되었습니다.

이 코어 리디렉션은 플레이어의 저장 파일에 저장된 모든 애셋을 이전 BuildableResourceNodes 플러그인에서 새로운 BuildableResourceNodesRedux 플러그인으로 리디렉션합니다. 이 특정 예에서는 이전 모드의 모든 FGBuildables가 플레이어가 새로운 모드 참조가 있는 모드로 업데이트할 때 사라지지 않도록 합니다.

[CoreRedirects]
+PackageRedirects=(OldName="/BuildableResourceNodes/",NewName="/BuildableResourceNodesRedux/",MatchSubstring=true)

예시: 애셋이 이동할 때 건물과 해금이 유지되도록 하기

이것은 Fluid Extras 모드에서 사용되어, 사용자의 저장 파일에 이미 존재하는 특정 유형의 빌더(파이프의 90도 구부러짐)가 개발자가 건물의 애셋을 한 위치에서 다른 위치로 이동한 후에도 지속되도록 합니다.

이를 위해 3개의 서로 다른 애셋을 재배치합니다:

  • 저장 파일에 실제로 저장된 빌더

  • 잠금 해제된 제작법 목록에 저장된 제작법, 다른 모드에서 참조될 수 있음

  • 다른 모드에서 참조될 수 있는 디스크립터

  • (이 특정 경우에는 도면을 리디렉션할 필요가 없었습니다)

[CoreRedirects]
+ClassRedirects=(OldName="/AB_FluidExtras/PipeJunc_Bend/Recipe_PipeJunc_Bend.Recipe_PipeJunc_Bend_C",NewName="/AB_FluidExtras/Junctions/PipeBend-90/Recipe_PipeBend-90.Recipe_PipeBend-90_C")
+ClassRedirects=(OldName="/AB_FluidExtras/PipeJunc_Bend/Build_PipeJunc_Bend.Build_PipeJunc_Bend_C",NewName="/AB_FluidExtras/Junctions/PipeBend-90/Build_PipeBend-90.Build_PipeBend-90_C")
+ClassRedirects=(OldName="/AB_FluidExtras/PipeJunc_Bend/Desc_PipeJunc_Bend.Desc_PipeJunc_Bend_C",NewName="/AB_FluidExtras/Junctions/PipeBend-90/Desc_PipeBend-90.Desc_PipeBend-90_C")

패키징 설정 수정하기

언리얼에게 코어 리디렉션을 플러그인과 함께 패키징하도록 지시하려면, 플러그인의 모드참조/Config/PluginSettings.ini 에 한 줄을 추가해야 합니다. 이 줄은 모드의 파일과 함께 Engine.ini 를 포함하도록 지시합니다.

이 파일을 만드는 과정은 여기에서 확인할 수 있습니다.

[StageSettings]
+AdditionalNonUSFDirectories=Config

속성 "+AdditionalNonUSFDirectories"는 알파킷에게 모드 패키징 중에 디렉토리를 포함하겠다고 지시합니다.

모드를 패키징하고 테스트하기

코어 리디렉션의 구문을 잘못 입력하기 쉬우므로, 실제로 작동하는지 확인하기 위해 게임을 실행하고 테스트해야 합니다.

코어 리디렉션을 테스트할 때는 매번 모드를 재패키징할 필요가 없습니다. 게임 설치 디렉토리의 모드 플러그인 폴더에 있는 Engine.ini 를 간단히 수정하고 게임을 다시 실행하면 됩니다. 모드를 다시 패키징하면 이 파일에 대한 모든 변경 사항이 덮어쓰여지므로 주의하십시오!

작동하지 않는 것 같으면 구문이 올바른지 확인하십시오. 예를 들어, 클래스 리디렉션은 일반적으로 OldName 및 newName 필드에 _C 접미사가 있습니다.

테스트 중에 -DebugCoreRedirects 실행 인수가 유용할 수 있습니다. 이 인수는 UE 로그에 추가 정보를 추가하여 코어 리디렉션 문제를 식별하는 데 도움을 줍니다. 실행 인수로 게임을 시작하는 방법은 FAQ 페이지에서 확인하십시오.

에디터에서 코어 리디렉션 사용하기

업데이트 후 애셋의 부모 클래스가 커피 스테인 또는 다른 모드 개발자가 클래스의 위치를 이동하여 변경되었을 수 있습니다.

언리얼에게 새로운 부모 클래스의 위치를 알리기 위해 코어 리디렉션을 설정할 수 있으며, 이를 통해 에디터에서 애셋을 다시 열 수 있게 될 수 있습니다.

이 경우, 클래스 리디렉션을 사용하는 것이 좋습니다. 자세한 내용은 위의 링크된 문서 페이지를 참조하세요.

이번에는 리디렉션이 최종 사용자에게 필요하지 않으므로, ProjectFolder/Config/DefaultEngine.ini 파일에 리디렉션을 추가해야 합니다. 이 외에는 실제 리디렉션의 구문은 플러그인 Engine.ini 파일에 있는 것과 동일합니다.