⭐ Unreal Engine/UE 개념정리
[UE] GameMode / GameState / Player State / Player Controller / Pawn
[UE] GameMode / GameState / Player State / Player Controller / Pawn
2023.12.31글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 GameMode / GameState / Player State / Player Controller / Pawn 비교 GAME MODE GAME STATE Player State Player Controller Server Only Server & all Clients Server & all Clients Server & Owning Client - Default Classes Pawn PlayerController HUD - Rul..
[UE] Subsystem 종류: UEngineSubsystem, UEditorSubsystem, UGameInstanceSubsystem, ULocalPlayerSubsystem, UWorldSubsystem
[UE] Subsystem 종류: UEngineSubsystem, UEditorSubsystem, UGameInstanceSubsystem, ULocalPlayerSubsystem, UWorldSubsystem
2023.12.11글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 Subsystem Subsystem 종류 UEngineSubsystem UEditorSubsystem UGameInstanceSubsystem ULocalPlayerSubsystem UWorldSubsystem Subsystem 타입 Life Time Engine UEngineSubsystem - Editor, In-game - 시작 Engine Subsystem의 Module이 로드 → Module의 Startup() 함수 반환 →..
[UE] BindWidget, BindWidgetOptional, BindWidgetAnim
[UE] BindWidget, BindWidgetOptional, BindWidgetAnim
2023.12.04UMG와 C++(UserWidget) 연동 시 사용하는 UPROERTY 키워드로는 BindWidget, BindWidgetOptional, BindWidgetAnim이 있다. 아래는 키워드 각각의 특징과 사용법을 정리하였다. UMG와 코드에서 선언한 변수를 연동할 때 상황에 맞는 키워드를 사용하자. 목차 UMG와 C++(UserWidget) 연동 시 사용하는 UPROERTY 키워드 UPROPERTY( meta = (BindWidget, BindWidgetOption, BindWidgetAnim) BindWidget 이 메타데이터 태그는 주로 UMG(언리얼 모션 그래픽) 위젯 클래스에서 사용한다. 이 태그를 사용하면, 위젯 디자이너에서 생성된 위젯 요소를 해당 변수에 바인딩할 수 있다. 이를 통해 코드에서..
[UE] 빌드 환경설정(Build Mode): Debug, DebugGame, Development, Shipping
[UE] 빌드 환경설정(Build Mode): Debug, DebugGame, Development, Shipping
2023.11.15UnrealBuildTool은 *.build.cs 및 *.target.cs 파일을 사용하여 게임 프로젝트를 빌드한다. 목차 빌드 환경설정 UnrealBuildTool(UBT)은 *.build.cs 및 *.target.cs 파일을 사용하여 게임 프로젝트를 빌드한다. 빌드 환경 - 상태 상태 Debug - 엔진과 게임 코드 모두 빌드 - 속도 느림 - 디버깅에 좋음 DebugGame - 최적화 없이 게임 코드만 빌드 - 게임 모듈만 디버깅하는 경우 좋음 Development - 최적화 없이 엔진과 게임 코드 모두 빌드 - 컴파일시 코드변경사항이 Editor에 반영됨 Test - Shipping과 동일하지만 - console commands, stats, profiling tools 유지 Shipping - ..
[Unreal] 리플리케이션 (Replication), Remote Procedure Call (RPC)
[Unreal] 리플리케이션 (Replication), Remote Procedure Call (RPC)
2023.11.08언리얼 C++에서 서버와 클라이언트 각각에서 실행되는지 여부를 잘 체크해야 한다. PROPERTY Replication과 RPC의 사용방법에는 차이가 있다. 두 방법의 차이점을 파악하고 상황에 맞게 활용하자. 목차 리플리케이션 (Replication) 액터 리플리케이션 (Actor Replication) 리플리케이션은 액터(Actor)를 기준으로 실행된다. Server는 액터 목록을 유지하고, Client에서 (리플리케이트되도록 마킹된) 각 액터에 대한 근접 추정치를 유지할 수 있도록 클라이언트를 주기적으로 업데이트한다. 액터 업데이트 방식: 프로퍼티 업데이트, RPC 액터의 업데이트 방식: 변수 리플리케이션 (PROPERTY Update)RPC (Remote Procedure Call) 프로..
[Unreal] 언리얼의 서버모델: 리슨서버, 데디케이티드 서버, 리플리케이션(Replication)
[Unreal] 언리얼의 서버모델: 리슨서버, 데디케이티드 서버, 리플리케이션(Replication)
2023.09.15리슨 서버는 사용자의 클라이언트 자체가 서버 호스트가 되는 서버모델이다. 클라이언트 중 한명이 호스트를 담당하여 서버의 역할을 수행한다. 데디케이트 서버는 호스트 역할만을 전담하는 하나의 시스템이 모든 클라이언트를 수용하는 중앙집권식 방식의 서버모델이다. 목차 언리얼의 서버모델 Network Mode Network Mode 독립형(Standalone) - 게임이 원격 클라이언트 접속을 허용하지 않는 서버로 실행 - 게임에 참여하는 모든 플레이어는 로컬 플레이어 뿐이다. - 이 모드는 싱글 플레이어 및 로컬 멀티플레이 게임에 사용된다. - Server 측 로직과 Client 측 로직 모두를 로컬 플레이어에 맞게 실행. 클라이언트(Client) - 게임이 네트워크 멀티플레이어 세션으로 서버에 접속된 클라이언..
[Unreal] 컴파일 과정 (UBT, UHT 호출시점)
[Unreal] 컴파일 과정 (UBT, UHT 호출시점)
2023.09.11언리얼에서 빌드를 시작하면 컴파일러가 컴파일을 수행하기 전에 언리얼 빌드 툴(UBT)과 언리얼 헤더 툴(UHT)이 콜 되어먼저 실행된다. 일반적으로 UBT가 먼저 호출되며, 필요에 따라 UHT가 호출된다. 이후 실제 C++ 컴파일 과정이 진행된다. 목차 Unreal Engine의 컴파일 과정 C++과 언리얼 C++의 컴파일 과정의 차이점은? 컴파일 과정 컴파일 과정 C++ 전처리 과정 - 컴파일 과정 - 어셈블리 과정 - 링킹 과정 Unreal C++ 전처리 과정 - UBT - UHT (헤더 처리) - 컴파일 과정 (cpp 처리) - 어셈블리 과정 (obj 파일) - 언리얼 Module → 결과 .dll파일 언리얼에서 빌드를 시작하면 컴파일러가 컴파일을 수행하기 전에 언리얼 빌드 툴(UBT)과 언리얼 헤..
[Unreal] Assert란? Assert 3종류: Check, Verify, Ensure
[Unreal] Assert란? Assert 3종류: Check, Verify, Ensure
2023.06.13Assert란 주어진 코드 조각이 가정하는 상황을 검증하는 도구다. 포인터의 NULL 여부를 검증하는 간단한 것에서부터, 특정 함수에 재진입했는지와 같은 복잡한 검증도 가능하다. 목차 Unreal Engine의 Assert란? Assert란? Assert란 주어진 코드 조각이 가정하는 상황을 검증하는 도구다. 포인터의 NULL 여부를 검증하는 간단한 것에서부터, 특정 함수에 재진입했는지와 같은 복잡한 검증도 가능하다. 특정 빌드 환경설정 하에서는 컴파일시 제외시킬 수 있도록 Macro로 되어 있는데, 퍼포먼스 상의 이유거나 최종 빌드에서는 필요치 않기 때문이다. Assert Macro 위치 /UE4/Engine/Source/Runtime/Core/Public/Misc/AssertionMacros.h Ru..
[Unreal] 언리얼엔진 상속관계(=계층구조)
[Unreal] 언리얼엔진 상속관계(=계층구조)
2023.04.11언리얼 엔진에서 클래스의 상속 관계는 매우 중요한 부분을 차지한다. 언리얼 엔진은 객체 지향 프로그래밍의 특징을 가지고 있기 때문에, 상속은 코드 재사용, 확장성 및 유지 관리를 신경써야 한다. 아래에 언리얼 엔진에서 일반적으로 사용되는 몇 가지 주요 클래스와 그들 사이의 기본적인 상속 관계에 대한 설명을 적었다. 목차 Unreal 상속관계 Unreal 상속관계와 특징 ("Is A" vs "Has A" 관계) 데이터 level에 배치 시각적 실체 Contorller에 의해 빙의 가능 Character movement component Character 전용 기능 UObject O X X X X X AActor O O O X X X APawn O O O O X X ACharacter O O O O O O ..
[Unreal] Unreal Authority
[Unreal] Unreal Authority
2023.04.06글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자를 적어주세요. 글의 요약 설명 부분. 150자입니다 목차 Unreal Authority 언리얼에서의 Authority란? Udemey link - Authority and Replication 설명 https://www.udemy.com/tutorial/unrealmultiplayer/authority-and-replication/ 언리얼 공식문서 https://docs.unrealengine.com/4.27/ko/Resources/ContentExamples/Networking/1_2/ ..
RPC (Remote Procedure Call) - 네트워크를 통한 함수 리플리케이션 지정하기
RPC (Remote Procedure Call) - 네트워크를 통한 함수 리플리케이션 지정하기
2023.04.06목차 RPC (Remote Procedure Call) 네트워크를 통한 함수 리플리케이션 지정하기 RPC (Remote Procedure Call)란? RPC(Remote Procedure Call)는 네트워크를 통해 원격 위치에 있는 다른 컴퓨터 또는 서버에 함수를 호출하도록 허용하는 프로토콜이다. 주로 멀티플레이어 게임에서 사용되며, 클라이언트와 서버 간의 상호작용을 가능하게 한다. RPC의 핵심 개념은 함수가 로컬 시스템에서 실행되지 않고, 네트워크를 통해 전송된 후 원격 시스템에서 실행된다는 것이다. RPC 기능은 언리얼 엔진의 Replication 시스템과 밀접하게 연관되어 있다. Replication은 네트워크 멀티플레이어 환경에서 게임 오브젝트와 그 상태들 사이의 동기화를 담당한다. RPC의..
[Unreal] 이벤트 디스패처 Event Dispatcher
[Unreal] 이벤트 디스패처 Event Dispatcher
2023.04.02이벤트 디스패처는 게임이나 애플리케이션에서 애니메이션 트리거, 사운드 재생, UI 요소 업데이트 또는 체크포인트 또는 레벨 전환과 같은 게임 이벤트 트리거와 같은 다양한 용도로 사용할 수 있다. 코드의 다른 부분을 분리하고 프로젝트를 모듈식으로 확장할 수 있는 유연하고 강력한 방법이다. 목차 이벤트 디스패처 Event Dispatcher 이벤트 디스패처란? 언리얼 엔진에서 이벤트 디스패처는 게임이나 애플리케이션에서 서로 다른 객체와 시스템 간의 통신을 위한 강력한 도구이다. 기본적으로 이벤트 디스패처는 이벤트가 트리거될 때 실행되어야 하는 함수 또는 메서드 목록을 보유할 수 있는 변수 유형이다. 이벤트가 발생하면 목록의 모든 함수가 순서대로 호출되어 여러 개체가 동일한 이벤트에 다른 방식으로 응답할 수 ..