WU:RE Core Library는 WU:RE 게임 개발에 공통으로 사용되는 Unreal Engine 게임플레이 및 UI에 대한 C++ 플러그인입니다. 게임 프로젝트에서 상속하거나 Blueprint로 호출해서 씁니다.
UAsyncLevelStreamingSubsystem: (GameInstance 서브시스템, Abstract)BP 자식 클래스에서 LevelTable을 지정해서 씁니다.
RequestLoadLevelByRowName(RowName, Location, Rotation, DisplayedLevelText)를 부르면 레벨 테이블에서 row를 찾고, 지금 스트리밍된 레벨을 모두 언로드한 뒤 그 row의 레벨들을 비동기로 로드합니다.OnLevelStreamingProgress로 알려 줍니다.TargetSpawnTag가 붙은 액터 위치에 배치하고 OnPlayerPawnReady를 발생시킵니다.FLevelListStruct (DataTable row)한 row에 다음 항목이 들어갑니다.
PawnClassOverride(이 레벨에서 쓸 Pawn 클래스)AWuReGameModeBase현재 row 설정에 따라 기본 Pawn 클래스와 PlayerStart를 고릅니다. 그래서 타깃 레벨에서 바로 PIE를 실행해도 맞게 동작합니다.
WaitForPlayerPawn (비동기 BP 노드): 레벨 진입 처리가 끝날 때까지 기다렸다가 올바른 Pawn을 돌려줍니다. BeginPlay에서 GetPlayerCharacter를 쓰는 대신 이 노드를 쓰면 됩니다.UWuReLevelLoadingWidget: 로딩 화면 위젯의 베이스 클래스입니다. 진행률, 목적지 레벨 이름 표시, 로딩 완료 이벤트를 제공합니다.ULocalizationSubsystem한국어/영어(ESupportedLanguage) 전환과 OnLocaleChanged 이벤트를 제공합니다.
UI용 테이블과 대사용 테이블을 따로 둡니다.
FWuReLocalizationStruct (DataTable row)ContextKoKr, ContextEnGb, 보이스라인 사운드, 수동 표시 시간(ManualDuration)이 들어갑니다.
UWuReTextBlock디테일 패널의 Text 칸에 row 이름(텍스트 코드)을 넣으면 현재 언어에 맞는 번역문을 표시합니다. 언어가 바뀌면 자동으로 갱신됩니다. 해당 키가 없으면 코드 문자열을 그대로 보여 줘서 누락된 번역을 바로 알 수 있습니다.
UWuReSubtitleWorldSubsystem + UWuReSubtitleTextBlock자막을 큐에 넣어 차례로 재생합니다. 보이스라인을 지정한 액터에 붙여 재생하고, 자막 텍스트 블록이 그에 맞춰 갱신됩니다.
UWuReGameUserSettings (UGameUserSettings 확장)다음 값을 config 파일에 저장합니다.
UDLSSSettingsSubsystem (Win64 전용 모듈에 의존)현재 GPU의 DLSS 지원 범위를 조회합니다(FDLSSCapabilities: SR, FG, RR, MFG, Reflex). 지원되는 모드 목록도 알려 줍니다.
DLSS, NIS, 엔진 내장 업스케일과 AA 설정을 CVar로 적용합니다.
지원하는 프레임 생성 모드: 2X~6X, Dynamic.
USoundVolumeSubsystemSound Mix에서 Ambient, SFX, Music 세 사운드 클래스의 볼륨을 조절하고 설정에 저장합니다.
UWuReStatics의 레이트레이싱 함수들: 하드웨어가 지원하는지, 지금 실제로 켜져 있는지 확인하고 켜거나 끌 수 있습니다.
UWuReRootWidget게임플레이용과 ESC 메뉴용, 두 개의 CommonActivatableWidgetStack을 관리합니다. ESC 메뉴가 열려 있는 동안에는 게임플레이 위젯을 숨깁니다.
UWuReUserWidget (CommonActivatableWidget를 상속한 베이스 위젯)UWuReWidgetButton현지화되는 텍스트를 갖춘 CommonButton입니다.
AWuRePlayerControllerUWuReStatics (BP 함수 라이브러리)다음 기능의 진입점을 한곳에 모아 둔 클래스입니다.
Froyok Blog의 포털 시스템을 참고하여 UE 5.8에 맞게 작성된 포털 기능
AWuRePortal플레이어가 포털면을 통과하는지 판정하고, 액터를 Target 위치로 텔레포트합니다.
AWuRePortalManager모든 포털이 함께 쓰는 SceneCapture 하나와 렌더 타깃을 관리합니다. 플레이어가 보고 있는 포털 중 가장 알맞은 포털의 시점을 렌더링합니다.
UWuRePortalStatics한 액터 기준의 위치·방향·회전을 다른 액터 기준 공간으로 변환하는 유틸리티 함수들입니다.
UWuReLocalPlayer텔레포트할 때 카메라 컷을 걸어 TAA/TSR와 모션 블러 히스토리를 초기화합니다. Project Settings의 Local Player Class에 지정해야 동작합니다.
AWuRePlayerCharacter카메라 앵커와 카메라를 갖춘 포털용 기본 캐릭터입니다.
WURELOG, WURELOG_S, WURELOG_OBJ(런타임 클래스와 인스턴스 이름 포함), WURELOG_DISPLAY(화면 출력)DLSS 기능은 Windows, RTX 20 및 이후 GPU에서만 지원하며, macOS에서는 DLSS 서브시스템이 생성되지 않습니다. 따라서, Windows 이외 플랫폼에도 플러그인을 포함하여 프로젝트를 배포한다면 서브시스템 메소드를 호출하기 전 서브시스템 포인터/레퍼런스에 대한
IsValid체크가 선행되어야 합니다.
The Following modules are mission or built with a different engine version: WuReCoreLibrary. Would you like to rebuild them now? 팝업이 발생한다면 Yes를 클릭하여 플러그인 모듈을 다시 빌드합니다.YOURPROJECTNAME.Build.cs에서 PublicDependencyModuleNames에 WuReCoreLibrary를 추가합니다.// ...
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", /* ... */ ,"WuReCoreLibrary" });
// ...
클래스를 상속받아 프로젝트에서 사용하십시오.