분류 전체보기
-
[UE5] GameFeatureUE5/Lyra Clone Coding 2025. 2. 7. 01:03
GameFeature GameFeature 시스템은 Unreal Engine의 Modular Gameplay 시스템에서 제공하는 기능 중 하나로, 게임의 특정 기능이나 콘텐츠를 동적으로 로드하고 관리할 수 있도록 도와주는 시스템이야. 이를 활용하면 게임의 핵심 로직을 독립적인 모듈로 구성하고, 필요할 때 활성화하거나 비활성화할 수 있다. GameFeature는 언리얼에서 추구하는 모듈화의 끝판왕이라고 볼 수 있다. 핵심 개념 독립적인 기능 모듈특정 게임 기능(예: 새로운 무기 시스템, UI 확장, 캐릭터 능력 추가 등)을 별도의 모듈로 제작 가능.기능을 독립적으로 개발하고 관리할 수 있음.동적 로드 가능특정 상황에서만 로드하거나, DLC처럼 선택적으로 활성화 가능.예를 들어, PvP 모드는 멀티플레이어 ..
-
[UE5] CommonUserUE5/Lyra Clone Coding 2025. 2. 6. 20:37
Portal을 통과할 때 맵을 이동할 수 있도록, 즉 Experince를 변경할 수 있도록 설정해보자. Lyra에서는 이를 CommonUser라는 플러그인을 만들어서 진행하고 있다. CommonUser 플러그인은 Lyra에서 사용자 계정과 설정 관리를 담당하는 핵심적인 플러그인인데, 멀티 환경을 감안하여 플러그인으로 설정되어 있다. 우리는 이중에서 싱글플레이에서 사용하는 부분만 들고와서 사용할 것이다. SubSystem CommonSessionSubsystem은 GameInstanceSubsystem을 상속받아서 만드는데, 일단 이 SubSystem이란 무엇일까? 게임의 전역적인 기능이나 서비스 로직을 관리하기 위해 설계된 모듈화된 시스템인데, 게임의 어디서나 쉽게 접근할 수 있는 매니저 역할을 한다...
-
[UE5] CameraUE5/Lyra Clone Coding 2025. 2. 5. 18:04
Lyra의 Camera의 궁극적인 목표는 결국 Camera Component의 모듈화이다.CameraManager(CameraManager 상속), CameraComponent(CameraComponent 상속), CameraMode(UObject 상속)를 생성하는 것으로 시작한다. CameraManager CameraManager에서는 FOV(시야각), PITCH_MAX, PITCH_MIN(상하로 회전하는 각도)의 기본값을 설정해준다.AZSPlayerCameraManager::AZSPlayerCameraManager(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer){ DefaultFOV = ZS_CAMERA_DEFAULT_..
-
[UE5] PawnExtension(2) - 구성 요소 분석UE5/Lyra Clone Coding 2025. 2. 3. 19:24
PawnExtensionComponent의 구성 요소를 하나하나 분석해보도록 하자. const FName UZSPawnExtensionComponent::NAME_ActorFeatureName("PawnExtension");이 문자열은 Feature Name으로 사용되며, 주로 초기화 상태 등록(Init State Feature Registration)이나 기능 구현 등록 시 식별자로 활용된다.virtual FName GetFeatureName() const final { return NAME_ActorFeatureName; }헤더 파일에서 GetFeatureName함수는 위와 같이 override되는데, 이 때문에 RegisterInitStateFeature 함수가 호출되면 GetFeatureName이..
-
[UE5] PawnExtensionUE5/Lyra Clone Coding 2025. 1. 31. 23:12
Pawn의 생성을 위해 먼저 Pawn의 초기화를 담당하는 컴포넌트를 만들어야 한다. Lyra Experience의 특징은 추상화 레벨이 매우 높다는 것에 있다. 예를 들어, 보통 기존에는 Character의 입력을 위해 Character.cpp 파일의 SetupPlyaerInputComponent에서 캐릭터의 입력을 지정해주는 일을 했다. 그러나 이는 입력이 캐릭터에 종속이 된다는 것을 의미한다. 따라서 컴포넌트를 활용해서 부착하는 형식으로 항상 갈아낄 수 있도록 구조를 만들어 준다. 컴포넌트 초기화에 있어 순서 또한 중요한데, 생성 시에 이 순서가 보장되지 않는다. 따라서 GameplayTag를 활용해 순서를 지정해주어야한다.void UZSGameInstance::Init(){ Super::Init()..
-
[UE5] ExperienceUE5/Lyra Clone Coding 2025. 1. 23. 21:53
Experience란?Experience는 Lyra에서 게임플레이 경험을 정의하는 핵심 시스템이다.Experience는 게임의 특정 모드(예: 팀 데스매치, 배틀로얄 등)를 정의하는 설정 집합Gameplay Experience Definition (DataAsset) 형태로 저장되며, UExperienceDefinition 클래스를 기반으로 함게임이 시작될 때, 현재 적용할 Experience를 결정하고, 해당 Experience가 로드되면서 관련된 모든 설정(Abilities, Input Mapping, UI 등)이 적용 Experience의 장점모듈화된 시스템게임 규칙(GameMode)뿐만 아니라 **UI, Input, 캐릭터 능력(Ability)**까지 통합하여 관리 가능.런타임에서 변경 가능게임 ..
-
[UE5] AssetManager ScanUE5/Lyra Clone Coding 2025. 1. 21. 15:06
Experience란? Experience는 Unreal Engine의 Lyra 프로젝트에서 도입된 개념으로, 게임의 플레이 스타일이나 규칙을 GameMode를 변경하지 않고 동적으로 전환할 수 있도록 하는 시스템이다.일반적으로 GameMode를 변경하면 게임의 규칙이 바뀌지만, Lyra에서는 GameMode를 고정하고, Experience를 변경하는 방식을 사용한다. Experience정의// Fill out your copyright notice in the Description page of Project Settings.#pragma once#include "CoreMinimal.h"#include "Engine/DataAsset.h"#include "ZSExperienceDefinition.g..
-
[UE5] AssetManagerUE5/Lyra Clone Coding 2025. 1. 21. 00:05
AssetManager란? UAssetManager는 Unreal Engine에서 에셋(Assets)을 효율적으로 로드 및 관리하는 시스템이다. 📌 주요 기능:✅ 게임 내 특정 리소스를 동적으로 로드 & 언로드 (메모리 최적화)✅ Primary Asset Type을 기반으로 에셋을 그룹화하여 관리✅ 비동기(Async) 로딩 지원 → 게임 실행 중 성능 최적화 가능✅ 패키징과 쿠킹을 최적화하여 빌드 크기를 줄일 수 있음 즉, UAssetManager는 게임이 실행될 때 필요한 에셋만 로드하여 메모리 사용을 최적화하고, 필요하지 않은 리소스를 제거하여 성능을 최적화하는 시스템이다. AssetManager의 필요성 AssetManager를 사요하지 않고 ConstructorHelpers::FObjectFi..