unreal 30

[UE]Pawn/Character

순서Pawn이란?Chacracter란?Pawn과 Character의 차이Pawn란?플레이어 또는 AI가 Possess하여 제어 가능한 상위 클래스엔진에서 무언가를 조종한다고 할 때 기본이 되는 형태이동 로직이나 충돌 처리, 중력, 네트워크 이동을 위한 기능들이 포함되어 있지는 않음비행기, 드론 등의 보통 Character의 이동 방식이 아닌 특수한 로직을 자유롭게 구현할 때 유용함Character란?Pawn을 확장한 보행 특화 클래스로 캡슐 충돌체, 스켈레탈 메시, CharacterMovementComponet 등 보행용 기능이 기본 제공됨이동, 회전, 점프, 중력, 지형 따라가기, 네트워크 동기화 등 보행형 캐릭터에게 필요한 기능이 이미 구현되어 있어, 사람이 달리거나 점프하는 등의 형태의 캐릭터를 쉽..

Unreal Engine 2025.09.11

[UE]RPC

순서RPC란?RPC의 용도RPC의 종류서버로 RPC를 보내기 위한 조건RPC(Remote Procedudre Call) 란?원격 프로시저 호출을 말하며 호출하는 PC와 실행하는 PC가 달라도 되게끔 해주는 통신 기법이라고 할 수 있음.언리얼 엔진에서 게임 클라이언트와 서버 간에 정보를 주고받고, 특정 행동을 요청하거나 수행하기 위한 핵심적인 네트워킹 메커니즘으로 사용되거나 서버에서 함수를 호출하거나 클라이언트에서 함수를 호출하는 등 다양한 방식으로 사용됨.RPC의 용도모든 클라이언트에게 일괄적으로 메시지를 전달하거나 네트워크 기반의 액션과 동기화함.게임에 큰 영향을 끼치지 않는 일시적인 효과들에 사용하는 편으로 주로 코스메틱(사운드, 파티클)에 사용됨큰 영향을 끼치는 것들은 프로퍼티 레플리케이션을 사용..

Unreal Engine 2025.09.04

[UE] 언리얼 네트워크 롤

순서네트워크 롤이란?네트워크 롤의 종류네트워크 롤의 속성액터에 따른 롤의 특징네트워크 롤이 중요한 이유네트워크 롤이란?액터의 네트워크 소유권 및 역할을 나타내는 중요한 속성으로, 서버와 클라이언트 간의 데이터 처리 및 권한을 정의함.서버에 스폰 된 액터가 가진 NetRole 속성 값은 언제나 Authority로 서버에 스폰 된 액터에서 수행될 로직은 권한을 가지고 있다는 뜻임.반대로 NetRole이 Authority인 액터가 클라이언트로 복제되었을 때, 클라이언트에 복제된 액터의 NetRole 속성 값은 Proxy네트워크 롤의 종류None: 액터가 존재하지 않음 => 서버에서 스폰 되고 레플리케이션 되지 않는 액터. 클라이언트에서 스폰 된 액터Authority: 게임에 중대한 영향을 끼칠 수 있는 로직 ..

Unreal Engine 2025.09.03

[UE]네트워크 넷 모드

순서네트워크 넷 모드란?주요 넷 모드넷 모드 설정이 중요한 이유네트워크 넷 모드란?플레이어들이 네트워크 환경에서 어떻게 접속하고 게임을 실행할지를 결정하는 설정멀티 게임의 네트워크 아키텍처를 구성하는 핵심 요소로, 서버-클라이언트 관계와 연결을 제어하여 통신을 관리함.리슨서버나 클라이언트모드 등 다양한 모드가 있으며, 월드 속성 중 하나인 NetMode를 통해 설정됨.주요 넷 모드Dedicated Server: 전용 서버 모드로 게임 호스트 역할을 하는 플레이어가 없어도 서버가 게임의 모든 로직을 처리하여 공정한 환경을 제공하며, 대규모 멀티플레이어 게임이나 배틀로얄 장르에 주로 사용됨.Listen Server: 하나의 플레이어가 서버 역할과 클라이언트 역할을 동시에 수행하는 방식Client: 서버에 접..

Unreal Engine 2025.09.03

[UE] 비헤이비어 트리와 FSM

순서비헤이비어 트리란?비헤이비어 트리의 장단점FSM이란?FSM의 장단점비헤이비어 트리와 FSM 비교비헤이비어 트리란?Behaviour Tree는 게임 AI에서 행동 결정을 트리 구조로 표현한 것임노드 기반으로 행동을 구성함루트 노드 > AI가 실행 시작Composite Node > Sequence, Selector 같은 제어 노드Decorator Node > 조건 검사, 실행 제한Task Node > 실제 행동 수행특징: 행동을 계층적으로 구성하여 복잡한 AI 행동을 모듈화 가능함비헤이비어 트리의 장단점장점유연성: 행동을 트리 구조로 쉽게 조합 가능함모듈화: 노드 단위로 재사용 가능조건 기반 실행: Decorator로 실행 조건 제어 가능디버깅 용이: 트리 구조라 시각화 가능단점상태 유지 어려움: 이전 ..

Unreal Engine 2025.08.29

[UE] UE의 string 클래스

순서언리얼 주요 문자열 클래스의 종류FStringFNameFTextANSICHAR/TCHAR 배열용도별 클래스언리얼 주요 문자열 클래스의 종류언리얼 주요 문자열 클래스의 종류로 FString, FName, FText, ANSICHAR/TCHAR 배열이 있음.FString동적 문자열 클래스로 TCHAR 기반임.복사, 덧붙이기, 포맷 등 다양한 연산을 제공함FName주로 식별자 용도로 사용함문자열 데이터를 해시 기반으로 관리하여 비교가 매우 빠름동적 문자열 연산에는 부적합함.(문자열 덧붙이기, 포맷 등)FText로컬라이제이션, UI용 문자열문자열 자체와 문화권별 번역 데이터를 포함하며 런타임 번역과 포맷을 지원함연산이 비교적 무거워 대량 문자열 연산에는 비추천함ANSICHAR/TCHAR 배열TCHAR*, A..

Unreal Engine 2025.08.29

[UE] 언리얼 빌드 툴/헤더 툴

순서빌드 툴(UBT)이란?헤더 툴(UHT)이란?빌드 파이프라인빌드 툴(UBT)이란?빌드 툴은 프로젝트 전체 빌드 관리를 담당함무엇을 하는가?C++ 소스 코드 컴파일 및 링크 과정을 제어하는 빌드 시스템.프로젝트의 .Build.cs 파일을 읽어서 모듈, 종속성, 빌드 설정 등을 해석Makefile 같은 역할을 한다고 생각하면 됨주요 기능소스 코드 컴파일 및 링크 관리(각 모듈 단위로 처리)필요한 경우 UHT 실행 > 리플렉션 메타데이터 생성플랫폼별/빌드 타입별 세팅 적용병렬 빌드, 캐시 활용으로 빌드 속도 최적화헤더 툴(UHT)이란?헤더 툴은 리플렉션 메타데이터 생성을 담당함무엇을 하는가?C++ 코드에서 UCLASS, USTRUCT, UENUM, UPROPERTY, UFUNCTION 등의 매크로를 파싱함...

Unreal Engine 2025.08.29

[UE] 언리얼 엔진의 GC

순서가비지 컬렉션 GC란?GC의 동작 원리GC가 보는 참조와 보지 못하는 참조객체 생명주기 관련 포인트GC로 인해 자주 겪는 문제C++의 GC와 UE의 GC 차이가비지 컬렉션 GC란?UObject 기반 객체들의 메모리를 자동으로 정리하는 도달성 기반의 마크-앤-스윕 시스템이다.UObject들 간의 레퍼런스를 따라 도달 가능한 객체는 살리고, 도달 불가능한 객체는 수거함.도달성이란?특정 객체가 아직 사용중이라고 간주할 수 있는지를 뜻함.도달 가능한 객체: 현재 실행 중인 코드에서 경로를 따라 접근할 수 있는 객체 > 살려둠도달 불가능한 객체: 어느 곳에서도 참조하지 않는 객체 > 필요없는 메모리로 판단 > 수거대상GC의 동작 원리루트(Root) 수집엔진이 시작.유지하는 지속적 객체들, AddToRoot()..

Unreal Engine 2025.08.28

[UE] 언리얼의 클래스들

순서GameMode 클래스GameInstance 클래스GameState 클래스PlayerState 클래스GameMode 클래스역할: 게임 규칙과 규칙 실행자특징GameMode는 서버 전용 클래스로 서버에서만 존재하며 클라이언트에서는 존재하지 않음 > 클라이언트에서는 GameState로 동기화만 받도록 함GameMode는 레벨마다 1개만 존재함클라이언트만 있는 싱글 플레이의 경우 클라이언트 프로세스 안에 서버 역할도 함께 실행을 시킴 => 로컬 서버 + 로컬 클라이언트가 같은 프로세스 안에 동시에 존재하는 구조로 로컬 서버 부분에서 GameMode가 생성됨.로컬 클라이언트는 내부적으로 서버가 가진 GameMode의 규칙을 그대로 따름.어떤 플레이어 캐릭터를 사용할지, 플레이어가 어떻게 스폰되지, 점수 규칙..

Unreal Engine 2025.08.28

[트러블 슈팅] UnrealEngine에서 ObjectPool을 제작했을 때

문제 기능 : ObjectPoolManager문제개요오류 상황: ObjectPool로 관리중인 오브젝트 사용시 오브젝트의 Mesh가 렌더링되지 않는 현상 및 Hit Event 물리기능 미작동발생 배경: 무기를 사용하여 ProjectileObject를 Get하여 사용할 때 발생원인 분석오류 원인: Object를 관리하는 ObjectPoolManager를 Actor 또는 ActorComponent를 상속시켜 사용하면 Level 이동시 파괴되는 이유로 SubSystem을 상속시켜 사용함.구조적 이해:렌더링 문제: 렌더링은 UPrimitiveComponent가 Scene에 등록되어야 동작함 => SubSystem 내부에서 RegisterComponent()가 호출되지 않아 렌더 파이프라인에 연결되지 않음Phys..

C++/트러블슈팅 2025.08.21