분류 전체보기
-
[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..
-
[CS] 프로세스(Process)와 스레드(Thread)의 차이CS 2025. 1. 20. 01:48
프로세스(Process)운영체제가 관리하는 프로그램의 실행 단위.실행 중인 프로그램은 독립된 메모리 공간(Code, Data, Heap, Stack 등)를 가짐.하나의 프로세스는 여러 개의 스레드를 포함할 수 있음. ✅ 프로세스의 특징독립적인 실행 환경을 가짐 → 한 프로세스가 종료되어도 다른 프로세스에는 영향 없음.CPU 스케줄링을 통해 실행됨.프로세스 간 데이터 공유가 어렵고, IPC(Inter-Process Communication)를 사용해야 함.문제가 발생하면 개별 프로세스만 영향을 받음.1. 크롬(Chrome)을 실행하면 하나의 프로세스가 실행됨.2. 크롬에서 여러 개의 탭을 열면, 각각의 탭이 개별 프로세스로 실행됨.3. 한 탭이 충돌해도 다른 탭에는 영향을 미치지 않음 (Sandboxing..
-
[CS] DLL(Dynamic Link Library)CS 2025. 1. 20. 01:19
DLL(Dynamic Link Library) DLL(Dynamic Link Library)은 동적 링크 라이브러리로, Windows 운영체제에서 여러 프로그램이 공용으로 사용할 수 있도록 기능을 묶어놓은 파일이다. 확장자는 .dll이며, 주로 실행 파일(.exe)과 함께 동작하며 코드, 데이터, 리소스(예: 아이콘, 이미지)를 공유하는 데 사용된다. dll의 주요 특징 🔹 코드 재사용성여러 프로그램에서 동일한 코드를 공유하여 중복을 줄일 수 있음.예를 들어, Windows에서 User32.dll, Kernel32.dll 같은 시스템 DLL을 여러 프로그램이 공동으로 사용.🔹 메모리 절약DLL을 사용하는 프로그램들은 실행 시 필요한 코드만 메모리에 로드함.중복되는 코드를 각각 포함하는 것보다 메모리..
-
[UE5] Development Editor에서 효과적으로 디버깅하는 방법UE5 2025. 1. 17. 14:19
UE5와 같은 큰 프로젝트에서는 Debug 모드에서 컴파일을 하게 되면 굉장히 속도가 느리다. 따라서 Development 모드에서 컴파일을 하되, 특정 매크로를 사용하면 해당 코드에 관하여 원활히 디버깅을 할 수 있다. PRAGMA_DISABLE_OPTIMIZATION / PRAGMA_ENABLE_OPTIMIZATION 디버깅을 하고 싶은 코드 앞뒤로 해당 매크로를 지정해주면 된다. 1. 디버깅을 위해컴파일러 최적화(O1, O2, O3, Os, Oz 등)가 적용되면 일부 코드가 최적화되거나 제거될 수도 있음.특히 디버깅 중 변수 값이 이상하게 보이거나, 특정 코드가 실행되지 않는 것처럼 보이는 문제를 방지하기 위해 사용.최적화를 끄면 컴파일러가 코드를 변경하지 않고 그대로 유지하므로, 디버깅이 더 쉬..