에픽게임즈에서는 언리얼 엔진(UE) 의 주요 릴리즈마다 라이라 스타터 게임(Lyra Starter Game) 을 업데이트합니다. 이러한 업데이트에서는 엔진의 최신 기능을 활용하며 라이라 관련 문제를 수정합니다. 이 페이지에서는 각 엔진 버전에 대한 라이라의 주요 변경사항을 설명하고 언리얼 엔진 최신 릴리즈로 기존 게임을 업그레이드하는 데 유용한 정보가 포함되어 있습니다.
최신 엔진 릴리즈로 업그레이드하기
라이라를 포함하여 C++ 코드가 포함된 게임이 언리얼 엔진의 새로운 주요 릴리즈에서 제대로 작동하려면 수동으로 업데이트해야 합니다. 예를 들어, 5.0.x에서 5.1.x로 엔진의 주요 업그레이드가 이루어지면서 이전의 기능이나 세팅이 지원 중단될 수 있으며, 프로젝트에서 사용하는 기존 함수와 변수가 변경될 수 있습니다. 따라서, 업그레이드 이후에도 제대로 작동하도록 일부 게임 관련 코드와 데이터를 업데이트해야 합니다. 라이라를 예시로 삼아, 아래 단계에 따라 게임을 업데이트하세요.
-
새 엔진 버전에 대한 출시 노트(what-is-new/unreal-engine-5-2-release-notes)를 읽고 게임에 영향을 줄 수 있는 주요 변경사항 및 업그레이드 노트를 확인합니다.
-
새 엔진 버전을 다운로드하고 설치합니다.(understanding-the-basics/installing-unreal-engine) 게임의 이전 버전과 새 버전을 비교할 수 있도록 현재 엔진 버전과 다른 디렉터리에 새 버전을 설치할 수 있습니다.
-
어떻게 업데이트되었는지 확인하기 위해 새 엔진 버전에 맞는 새 버전의 라이라 스타터 게임 샘플(https://www.unrealengine.com/marketplace/ko/product/lyra?sessionInvalidated=true)을 다운로드하고 설치합니다. 다른 디렉터리에 설치하면, 구버전과 비교해볼 수 있습니다.
-
최신 엔진 버전과의 호환성을 확인하려면 언리얼 엔진 5 마이그레이션 가이드(what-is-new/unreal-engine-5-migration-guide)를 참조하세요.
-
C++ 코드 에디터에서 프로젝트를 로드하고 컴파일합니다. 컴파일이 실패할 것입니다.
-
폐기 메시지에 포함된 지침에 따라 모든 폐기 경고를 수정합니다.
-
유효하지 않거나 누락된 클래스 또는 구조체에 대한 모든 오류의 경우, 파일 상단에
#include줄을 새로 추가해야 합니다. Visual Studio를 사용하는 경우, 편집(Edit) > 찾기 및 대체(Find and Replace) > 파일에서 찾기(Find In Files) 로 이동한 다음, 누락된 타입 이름을 검색합니다. 해당 타입을 정의하는 헤더 파일을 찾아#include를 새로 추가합니다. -
가상 함수 오버라이드에 대한 오류의 경우, 헤더와
.cpp파일 모두에서 오버라이드된 함수의 파라미터를 업데이트해야 합니다. -
클래스 또는 구조체의 유효하지 않은 변수에 대한 모든 오류의 경우, 해당 변수에 다른 액세스 메서드를 사용해야 합니다. 보통 실제 값을 반환하는
Get()또는GetVariableName()같은 접근자 함수를 호출하면 해결됩니다. -
오류 수정 방법을 잘 모르겠다면, 출시 노트(what-is-new/unreal-engine-5-1-release-notes)를 찾아보거나 커뮤니티 포럼(https://forums.unrealengine.com/)에 자세한 내용을 문의해 보세요.
라이라 스타터 게임의 이전 버전과 새 버전을 비교하면 소스 코드에 대한 복잡한 변경사항을 처리할 방법을 알 수 있습니다. 라이라의 코드나 콘텐츠가 포함된 경우, 아래의 버전별 정보가 게임 업그레이드에 도움이 될 것입니다.
언리얼 엔진 5.2
언리얼 엔진 5.2에서 라이라 샘플 게임은 지원을 계속 받았습니다. 이제 라이라 샘플 게임은 엔진에 추가된 최신 기능과 수정 사항을 활용합니다.
5.2 업그레이드 노트
-
컴파일 시간이 짧아지도록 엔진 헤더가 재구성되었습니다. 이번 개선으로 라이라에서 헤더가 누락된 사례가 드러났습니다. 예를 들어
CommonUserSubsystem.h는OnlineError.h를 포함하도록 변경되어야 했습니다. -
5.1 버전의 라이라는 Iris 네트워킹 시스템을 선택적으로 지원했으나, 이제는 엔진에 기본적으로 컴파일됩니다. 5.2에서 이전 버전 라이라를 컴파일하면 네트워킹 링커 오류가 발생하는데,
LyraGame.build.cs에"SetupIrisSupport(Target);"를 추가하여 수정할 수 있습니다.
5.2 개선 사항
-
LyraGame게임플레이 태그가LyraGameplayTags네임스페이스 내에 있는 태그를 사용하도록 변경되었습니다. 덕분에 오브젝트 초기화 중에 해당 태그를 사용할 수 있게 되었습니다. -
매치 종료 시 또는 PlayNextGame 콘솔 명령 치트 사용 시 맵 전달에 이제 심리스 트래블(Seamless Travel)을 사용합니다.
-
이제 라이라에서 로컬 멀티플레이어를 실험적으로 지원합니다. 로컬 멀티플레이어를 활성화하려면 두 번째로 연결된 같은 타입의 컨트롤러에서 시작 버튼을 누르거나 메인 메뉴에서 플레이어 추가(Add Player) 버튼을 누릅니다.
-
데디케이티드 서버에 대한 지원이 개선되었습니다.
-server명령으로 실행되는 에디터 게임이나 패키지로 만든 LyraServer가ALyraGameMode::TryDedicatedServerLogin의 코드를 사용하여 기본 맵을 호스팅하기 시작합니다. -
리플리케이션 그래프(Replication Graph), Iris 및 패킷 암호화에 대한 네트워킹 지원이 추가되었습니다. 기본적으로 비활성화됩니다.
-
일부 플랫폼에서 트리거 저항 및 컨트롤러 컬러와 같은 입력 디바이스 프로퍼티를 포함하도록 햅틱 피드백이 변경되었습니다.
- 컨트롤러 컬러가 팀 컬러(빨강 또는 파랑)와 일치하게 됩니다.
- 무기 장착 시 무기 인스턴스에 디바이스 프로퍼티가 추가될 수 있습니다. 예를 들어, 산탄총을 장착한 동안 PlayStation DualSense 컨트롤러에서 트리거 저항이 커집니다.
-
라이라를 패키징하면 이제 여러 개의
.pak파일이 생성됩니다. 이는 게임 피처 플러그인 내의 프라이머리 에셋 라벨(Primary Asset Labels)을 사용하여 구성됩니다.
5.2 버그 수정
-
심리스 트래블 및 로컬 멀티플레이어를 지원하는 동시에 많은 네트워킹 및 UI 문제가 수정되었습니다.
-
캐릭터 이동 중 애니메이션 끊김이 수정되었습니다. 이는 원래 5.1.1에서 수정된 문제입니다.
-
몇 가지 LyraClient 빌드 타깃 관련 문제가 수정되었습니다. 이제 LyraClient 빌드 타깃이 데디케이티드 서버에 참여할 수 있습니다.
-
빌드 스크립트가 LyraGame이 되도록 기본 게임 타깃이 수정되었습니다.
-
버전 관리 상태를 알 수 없는 에셋에 대한
EditorValidator_SourceControl경고 빈도가 감소되었습니다.
언리얼 엔진 5.1
언리얼 엔진 5.1에서 샘플 관련 문제를 수정하고 엔진에 추가된 최신 기능을 활용하도록 라이라 샘플 게임이 업데이트되었습니다.
5.1 업그레이드 노트
-
컴파일 시간이 짧아지도록 몇 개의 엔진 헤더가 재구성되었습니다. 재구성하면서 라이라 소스 파일에서 몇 가지 문제가 나타났습니다. 이러한 문제는
#pragma once줄을 누락된 헤더에 추가하고 누락된 타입에 대한 오류가 있는 소스 파일에#include EditorStyle.h와 같은 줄을 추가하면 해결할 수 있습니다. -
게임플레이 프레임워크 클래스의 몇 가지 원시 포인터 프로퍼티가
TObjectPtr또는TWeakObjectPtr을 사용하도록 변경되었습니다.Get()함수 호출을 추가하여 원시 포인터가 필요한 모든 코드를 수정할 수 있습니다. -
ENSURE_ABILITY_IS_INSTANTIATED_OR_RETURN매크로가GameplayAbility.h에서 제거되었습니다. 이 매크로는GameplayAbility.cpp에서 다른 어빌리티 소스 코드 파일로 복사할 수 있습니다. -
새 파라미터를 추가하도록 게임 피처 플러그인에 관련된 몇 가지 가상 함수가 수정되었습니다.
ULyraGameFeaturePolicy같은 클래스의 오버라이드된 함수를 업데이트해야 합니다. -
지오메트리 메시 블루프린트
Tools/BakedGeneratedMeshSystem/BaseClasses/BakedGeneratedMeshActor가 5.1용으로 업데이트되었습니다. 5.0 에셋은 계속 작동하지만, 5.1 버전을 사용하지 않으면 나나이트 세팅이 제대로 구성되지 않을 것입니다.
5.1 개선 사항
-
LyraHeroComponent및LyraPawnExtensionComponent의 폰 초기화 흐름이 새로운IGameFrameworkInitStateInterface및GameFrameworkComponentManager의 Init 스테이트 시스템을 사용하도록 재작성되었습니다. 이를 통해 네트워크 리플리케이션의 몇 가지 경쟁 조건이 수정되었으며, 새로운 기능별 컴포넌트로 확장하는 것이 더 쉬워졌습니다. -
다양한 기능이 있는 디바이스에 대한 Android 디바이스 프로필이 추가되고 기타 플랫폼 세팅이 조정되었습니다.
-
에디터 툴바에 일반 맵 로딩 UI가 추가되었습니다.
-
에픽 온라인 서비스를 사용한 멀티플레이어 게임 초대에 대한 기본 처리가 추가되었습니다.
-
새 ShooterExplorer 및 ShooterTest 플러그인에 프로토타입 및 테스트 콘텐츠가 추가되었습니다.
-
이미 할당된 키를 바인딩하면 경고 화면이 뜨도록 키바인딩 화면이 개선되었습니다.
5.1 버그 수정
-
LyraGame.Target.cs의ShouldEnableAllGameFeaturePlugins함수가false를 반환하도록 변경되었습니다. 따라서, 이제 게임 피처 플러그인이 일반 플러그인처럼 활성화됩니다. 이를 통해 엔진의 커스텀 컴파일 버전과 런처 설치 버전 모두에서 똑같이 작동하도록 플러그인이 수정됩니다. -
라이라 실행 시 다른 프로젝트의 에디터에서 플레이(Play In Editor) 종료에 대한 키바인드가 변경되는 문제가 수정되었습니다.
-
체력(Health)에 마이너스 모디파이어를 적용하는 대신 치유(Healing) 및 대미지(Damage) 어트리뷰트를 제대로 사용하도록 어빌리티가 변경되었습니다.
-
폐기된 컨트롤러 ID 대신 새 PlatformUser 및 InputDeviceId 타입을 사용하도록 코드와 블루프린트가 업데이트되었습니다.
언리얼 엔진 5.0
라이라 샘플 게임의 5.0 버전을 5.0.2와 함께 업데이트하여 원래 릴리즈의 몇 가지 버그를 수정했습니다. 이러한 수정 사항은 샘플의 향후 모든 릴리즈에 포함됩니다.
5.0.2 버그 수정
-
다른 설치 디렉터리를 처리하도록 자동화 스크립트가 수정되었습니다.
-
반전 마우스 세팅이 수정되었습니다.
-
마네킹 리타기팅 및 컨트롤 릭 에셋이 업데이트되었습니다.
-
모바일 디바이스 프로필의 안티 에일리어싱 세팅이 업데이트되었습니다.
-
누락된 에디터 아이콘이 추가되었습니다.