UE5 54

서버 시작하기

게임 종류 별 언리얼 멀티플레이어 적합성 언리얼은 기본적으로 리얼타임 세션에 적합하다. 서버 연결 세션은 크게 세 가지로 나눌 수 있다. 1.Discovery연결할 사람을 찾고 2.Connection세션에 참여하여 클라이언트에 연결한다. 3. Synchronisation동기화하는 것이다.즉 네트워크 연결을 통해 동일한 화면을 보여주는 것이다. CMD를 이용하여, 본인 IP로 서버 여는 방법 정상 실행 화면

UE5 2024.10.14

TSubclassOf와 TSoftObjectPtr의 차이점, 그리고 FSoftObjectPaths

비동기 애셋 로딩에 사용되는 TSoftObjectPtr, FSoftObjectPaths  FSoftObjectPaths 와 TSoftObjectPtr는 아티스트 혹은 디자이너가 하드 포인터와 같은UI를 사용해서 특정 애셋에 대한 레퍼런스를 만들되, 항상 로드되지 않도록 사용하기 위한 것이다.(= 좀 더 가볍게 쓰기 위한 것) FSoftObjectPaths는 UObject* 프로퍼티와 비슷하게 쓰는 것이고TSoftObjectPtr은 기본적으로 FSoftObjectPaths 를 감싸는 TWeakObjectPtr입니다.  TSubclassOf와 TSoftObjectPtr의 차이점 TSubclassOf와 TSoftObjectPtr는 즉UE에서 애셋과 클래스를 참조하는 데 사용되는 두 가지 서로 다른 방법입니다...

UE5 2024.09.26

디버깅에 도움되는 메소드 ensure 사용법

c++용법에서 Assert 매크로가 있는데ue5에도 이와 비슷하게 응용할 수 있다. 1. Check(표현식) assert결과가 false면 실행을 중지시킨다. 2. Ensure (표현식) ensure을 사용하여 오류를 디버깅 하는 방법에는 3가지가 있다. 1. ensure( 표현식 )표현식을 검증하여 실패하는 그 지점까지 이르는 콜스택을 생성한다. 2.ensureMsgf(표현식, TEXT("")) 해당 표현식 검증이 실패되면 TEXT에 써져있는 구문으로 오류를 체크할 수 있다. 3. if문을 사용하는 표현식 위 3가지 방식을 코드화하면 다음과 같다.

UE5 2024.09.22

1. GameplayAbilitySystem 플러그인 소개

게임 플레이 시스템은 MOBA 타이틀 또는 RPG에서 찾을 수 있는유형의 능력과 속성을 구축하기 위한 매우 유연한 프레임워크입니다. 게임 속 캐릭터가 사용할 수 있는 액션이나 패시브 능력,이러한 액션으로 인해 다양한 속성이 쌓이거나 닳아 없어질 수 있는 상태 효과인'쿨타운' 타이머 또는 리소스 비용을 구현하여위와 같은 방법으로 액션의 사용을 규제하고, 각 레벨에서 해당 기능의 수준과 효과를 변경할 수 있습니다.또한 입자 또는 음향 효과 등 역시 게임플레이 어빌리티 시스템으로 활성화 할 수 있습니다. 간단히 말해, 이 시스템은 현대 RPG 또는 MOBA 타이틀에 설정된캐릭터의 능력에 대해서 복잡한 게임 내 능력을 설계하고 구현할 때 효율적으로 네트워크화 하는데 도움이 될 수 있도록 만들어진 것입니다. 게임..

UE5/GAS 2024.09.19

Enhanced Input System Input Binding Process (향상된 인풋 시스템 인풋 바인딩 과정)

1. Native Gameplay Tags- Define input tags(입력 태그 정의) 입력 태그를 정의해줍니다. 입력 태그는 점프, 이동, 발사 등 다양한 입력 동작을 나타내는 식별자입니다. 이러한 입력 태그는 소스 파일에서 다음과 같은 형태로 정의해줄 수 있습니다.// 해더 파일 class UInputAction; class UInputMappingContext; USTRUCT(BlueprintType) struct FLucyInputActionConfig { GENERATED_BODY() public: UPROPERTY(EditDefaultsOnly, BlueprintReadOnly, meta = (Categories = "InputTag")) FGameplayTag InputTag; UPR..

UE5 2024.09.16

TObjectPtr 은 뭐고 왜 쓸까?

TObjectPtr 이란? TObjectPtr은 원시 포인터를 대체하기 위한 UObject용 포인터입니다.언리얼에서는 공식적으로C++ 라이선스 사용자의 프로젝트에 원시 오브젝트 포인터를 사용하거나,TObjectPtr을 선택적으로 사용할 수 있도록 합니다. UE5에서는템플릿 기반 64비트 포인터 시스템인 TObjectPtr를 도입하여 에디터 빌드를 지원합니다. TObjectPtr의 기능 1. 에디터 빌드에 다이나믹 해상도와 액세스 트래킹을 추가하면서( = 에디터 빌드에서 수행하는 기능이 있으며,)비에디터 빌드의 원시 포인터와 동일한 역할을 수행합니다.( = 비에디터 빌드에서 장애가 되지 아니함) 2. TObjectPtr 변수는 함수로 전달되가나 로컬 변수에 저장될 때자동으로 원시 포인터로 변환됩니다.(기능..

UE5 2024.09.14

Experience

Experience 가 뭔가? - 게임 모드가 변경되는 것 처럼 쓰는 것 Experience 를 왜 쓰는가? - 게임 모드가 무거워서 게임 모드 하나만 두고 쓴다. -> 해당 이유 : 게임 모드가 무겁다는 뜻은 내부적으로 세팅하고 있는 값이 많기 때문이다. 4에서 5로 넘어올 때 언리얼에서 백워드 컴포터블을 위해 게임모드에다가 이것 저것 넣었다. 그래서 게임모드 말고 게임모드 베이스라고 하나 있는데, 게임 모드가 무거우니까 적당히 덜어내서 가볍게 쓰라 라고하는 것이 게임모드 베이스이다. 하지만 이 게임모드 베이스도 교체하는 단계에서 굉장히 무거워진다. 모든 월드에서 동일한 게임모드를 쓰지만, Experience에서 새로운 개념을 사용하여 게임모드의 변경은 일어나지 않지만, 하나의 게임모드를 대체하는 작은..

UE5 2024.09.07

UE Fundamentals core elements (언리얼 엔진의 기본 핵심 구성요소)

언리얼 엔진 기본 핵심 구성 요소 GameInstanceHUD & WidgetsPlayer ControllerPlayer StatePawnGame StateGameMode Any object we can see in the level is an actor.레벨에서 볼 수 있는 모든 객체는 엑터입니다.It can be anything like a rock or a simple cube or even the player charcter itself.그건 바위나 단순한 큐브, 심지어 플레이어 캐릭터 그 자체일 수도 있습니다. The character is an advanced version of a pawn with a lot of inbuilt features provided by Unreal Engine...

UE5/Lyra 2024.09.06

StaticClass, TSubClassOf, FSoftObjectPath, FScopeLock

StaticClassA라는 클래스를 만들면 A::StaticClass(); 이런 문법이 가능한데C#에는 리플렉션이 가능하다.리플렉션이라면 자기스스로 참조할 수 있도록 하는 것인데,C++에는 없는 문법이다.얘를 들어 C#에서는 해당 이름을 가진 변수가 필드에 있다면 값을 넣어주는 함수가 가능하다.이처럼 필드에 있다면 특정 이름을 통해 리플렉션해서 해당 변수를 찾을 수 있다는 것이다. StaticClass는 결국 UClass라는 것인데,이는 즉 메타데이터를 뜻한다.즉 클래스들은 해당 메타데이터를 이용하여 필드에서 리플렉션 할 수 있다. 변수 이름이 뭔지, 함수 이름이 뭔지, id는 뭔지 등등을 알 수 있다.실제로 C++에서 이를 추적하면 필드가 나오고, 그 필드를 타고 들어가면 이름이 뭔지, ID가 뭔지 정..

UE5 2024.09.06