언리얼 엔진/언리얼 엔진 개념 10

Unreal Engine - Delay가 함수와 반복문에서 작동하지 않는 이유

[언리얼 블루프린트 기초] Delay가 함수와 반복문에서 작동하지 않는 이유언리얼 엔진의 블루프린트를 사용할 때 가장 자주 겪는 혼란 중 하나는 다음과 같습니다:"왜 **함수 안에서는 Delay 노드가 작동하지 않지?""왜 **For문이나 While문에서는 Delay로 깜빡이기 같은 걸 구현할 수 없지?"이번 글에서는 언리얼 블루프린트의 이벤트 흐름과 실행 구조를 이해하고, Delay 노드가 가지는 한계를 구체적으로 설명드립니다.⏱ Delay 노드의 작동 원리언리얼의 Delay 노드는 일반적인 프로그래밍 언어의 "sleep"과는 다릅니다.Delay는 틱(Tick) 기반 이벤트 흐름에 따라,현재 실행을 일시 중지하고, 지정된 시간 후 다시 이어서 실행합니다.즉, Delay는 비동기적 흐름 제어를 위해 설계..

Unreal Engine - 네트워크 최적화 핵심 정리

✅ 대용량 데이터 Replication 최적화FastArraySerializer변경된 부분(delta)만 전송하여 대역폭과 CPU 부하 감소자주 변하는 데이터에 적합 (Inventory, Player List 등)Replication Conditions특정 조건 만족 시에만 Replication 수행 (COND_InitialOnly, COND_OwnerOnly 등)Chunking & RPC Streaming대용량 데이터를 작은 조각으로 나누어 전송 후 클라이언트에서 재조립Object Referencing & Dynamic SpawningID나 참조만 전달, 클라이언트가 미리 준비된 데이터를 로딩🚀 Network Bandwidth 관리 (Dormancy & Relevancy)Actor Relevancy거..

Unreal Engine - 멀티플레이어 개념 정리

1. Server-Client 모델 개요Unreal Engine의 멀티플레이어 시스템은 Server-Client 구조를 기반으로 동작합니다.서버(Server): 게임의 상태를 관리하고 최종적인 권한(Authority)을 가짐클라이언트(Client): 서버의 상태를 반영하여 게임을 플레이하는 개별 플레이어데이터 흐름: 클라이언트는 요청(Request)을 보내고, 서버가 이를 검증한 후 응답(Response)하여 변경된 상태를 전달함이 구조를 유지하는 이유는 게임의 일관성을 유지하고 해킹을 방지하기 위해서이며, "Never Trust the Client" 원칙이 적용됩니다.2. 실행 모드 종류Unreal Engine에서는 네트워크 환경에 따라 여러 실행 모드를 제공합니다.실행 모드 설명Standalone싱글..

Unreal Engine - 모듈 관리: Public과 Private 의존성 이해하기

Unreal Engine에서 C++ 기반 프로젝트를 개발할 때, 모듈 의존성을 올바르게 설정하는 것이 중요합니다. 모듈 의존성을 적절히 관리하면 프로젝트의 빌드 시간을 줄이고 유지보수성을 높일 수 있습니다. Unreal은 모듈 시스템을 사용하며, 특정 기능을 사용하려면 해당 기능이 포함된 모듈을 프로젝트에 추가해야 합니다. 이를 위해 PublicDependencyModuleNames와 PrivateDependencyModuleNames를 사용합니다. 이번 글에서는 이 두 가지 개념과 역할에 대해 알아보겠습니다.1. 모듈 설정 위치 (Build.cs 파일)Unreal Engine에서 모듈을 설정하려면 프로젝트의 Build.cs 파일에서 지정할 수 있습니다. Build.cs 파일은 프로젝트의 빌드 설정을 정..

Unreal Engine - 헤더 파일 정리

Unreal Engine에서 C++로 개발할 때, 기본적으로 포함하는 주요 헤더 파일 세 가지를 정리해보겠습니다.왜 이것들이 궁금해졌을까?처음 #include "BaseItem.generated.h"가 항상 마지막에 있어야 한다는 규칙을 접했을 때, 왜 그래야 할까? 라는 의문이 들었습니다. 만약 반드시 마지막에 있어야 한다면, 다른 #include 문들은 어떤 역할을 하는 걸까? 이 궁금증에서 출발하여 CoreMinimal.h, GameFramework/Actor.h, 그리고 BaseItem.generated.h가 각각 어떤 역할을 하는지 정리해보았습니다.1. #include "CoreMinimal.h"🔹 역할Unreal Engine의 **핵심 기능(Core Features)**을 포함하는 헤더 파일..

Unreal Engine - Pawn 클래스 설정하기

Unreal Engine - Pawn 클래스에서 기본 컴포넌트 추가하기언리얼 엔진에서 Character 클래스를 사용하면 기본적으로 CapsuleComponent, SkeletalMeshComponent, ArrowComponent등이 자동으로 설정됩니다. 하지만 Pawn 클래스를 사용하면 이러한 컴포넌트들이 기본적으로 포함되지 않기 때문에, 직접 추가하고 설정해야 합니다. 이번 글에서는 Pawn 클래스를 생성한 후, 필요한 컴포넌트를 추가하고 올바르게 설정하는 과정을 정리하겠습니다.1. Pawn 클래스 생성 후 필요한 컴포넌트 추가기본적으로 제공되지 않는 컴포넌트Pawn 클래스로 캐릭터를 만들면, Character 클래스에서 자동으로 제공되던 컴포넌트들이 없습니다. 따라서 다음과 같은 컴포넌트들을 직접..

Unreal Engine - CallInEditor 정리 및 활용 방법

CallInEditor란?**CallInEditor**는 Unreal Engine에서 **UFUNCTION()**의 속성 중 하나로, 에디터에서 디테일 패널을 통해 특정 함수를 실행할 수 있도록 만들어줍니다. 이를 통해 게임 실행 없이도 간단한 작업이나 테스트를 에디터 환경에서 바로 수행할 수 있습니다.사용 예제다음은 CallInEditor를 사용하여 액터의 위치를 초기화하는 간단한 함수 예제입니다.코드 예제: 액터 위치 초기화헤더 파일UCLASS()class MYPROJECT_API ATransformableObject : public AActor{ GENERATED_BODY()public: // 에디터에서 호출할 수 있는 함수 UFUNCTION(CallInEditor, Category..

Unreal Engine - CDO(Class Default Object)와 임시 객체 생성, 그리고 최적화의 원리

1. 왜 이 주제를 탐구했을까?이번 탐구를 시작하게 된 계기는 레벨에 액터를 배치하고 로그를 찍어본 경험에서 시작되었습니다.아래는 로그 출력 결과입니다:LogSparta2: Warning: Item2_2 TableRound Actor ConstructorLogSparta2: Warning: Item2_2 TableRound Actor DestroyedLogSparta2: Warning: Item2_3 TableRound Actor Constructor이 로그를 보면, Item2_2라는 객체가 생성된 뒤 파괴되고, 이후에 Item2_3이라는 객체가 새로 생성된 것을 확인할 수 있었습니다.처음에는 "왜 Item2_2가 파괴된 뒤, Item2_3이 생성될까?"라는 의문이 생겼습니다.그리고 **'파괴된 객체와 ..

Unreal Engine - 액터 라이프사이클과 실행 순서 정리

1. 액터 라이프사이클 순서언리얼 엔진에서 액터의 라이프사이클은 다음과 같은 단계를 따릅니다:Constructor (생성자)액터가 메모리에 생성될 때 호출됩니다.초기 속성 설정 및 기본 컴포넌트를 추가하는 데 사용됩니다.PostInitializeComponents액터에 포함된 모든 컴포넌트가 초기화된 후 호출됩니다.컴포넌트 간의 관계를 설정하거나 추가 초기화 작업을 수행할 수 있습니다.BeginPlay게임이 시작되거나 레벨이 로드된 후 액터가 동작을 시작할 때 호출됩니다.게임 로직의 초기 설정을 처리하는 데 사용됩니다.Tick (프레임 단위로 호출)매 프레임마다 호출됩니다.애니메이션, 물리 계산, 시간 기반 작업 등을 처리합니다.Destroyed액터가 명시적으로 삭제될 때 호출됩니다.리소스 정리와 같은 ..

Unreal이란 무엇인가?

1. 게임 엔진이란 무엇인가요?게임 엔진은 게임 개발에 필요한 도구와 기능을 제공하는 소프트웨어 플랫폼입니다. 주요 구성 요소는 그래픽 렌더링, 물리 시뮬레이션, 오디오, AI, UI 개발, 스크립팅 등이 포함됩니다. 이를 통해 개발자는 엔진 위에서 게임의 아이디어를 구현하고, 다양한 플랫폼에 배포할 수 있습니다.2. Unreal Engine의 주요 기능과 PUBG, 로스트아크를 통한 예시1. 그래픽 렌더링설명: 언리얼 엔진은 사실적인 그래픽과 화려한 비주얼 효과를 구현하는 데 강점을 가짐.PUBG 예시:광활한 맵 디자인: 에란겔, 미라마 등의 맵에서 보이는 자연환경과 거리의 디테일한 표현.날씨 효과: 안개, 비, 햇빛 반사 등 환경의 변화를 사실적으로 구현.로스트아크 예시:화려한 스킬 이펙트: 캐릭터의..