UE5 61

언리얼 문자열 처리 FString과 FName, FText 사용 이유

언리얼의 문자열 처리 FString과 FName, FText 언리얼에서는 문자열 처리를 위해 FString을 제공한다.문자열을 다룰 때 사용하는 FString과 TCHAR를 변환하는 메커니즘을 사용하도록언리얼에서는 권장하고 있다. 간단히 FString과 TCHAR를 설명하자면,TCHAR는 문자열 배열 FString는 클래스라는 차이가 있다.  그런데 문자열 관리를 위해 FString을 제공하는데왜 Fname, FText를 또 제공할까? FName & FText의 제공 용도  FName과 FText는 주로 에셋관리를 위해서 사용되는 문자열 체계이다. 우리가 어떤 애셋을 빠르게 찾고 싶을 때이름을 지정해주는 게 명확하다.이 때, FName과 FText를 사용하는 것이다. 즉 언리얼에서 제공하는 둘의 사용 용..

UE5 2025.03.08

Unreal Object Handling

언리얼 오브젝트 핸들링이란? UObject 시스템의 기능에 대한 개요로,클래스, 프로퍼티, 함수에 적합한 매크로로 마킹해주면,UClass, UProperty, UFunction 으로 변한다.그러면 언리얼 엔진이 접근할 수 있어,다수의 내부적인 처리 기능을 구현할 수 있다. 자동 프로퍼티 초기화 UObject는 생성자 호출 전 초기화시 자동으로 0으로 채워진다.이러한 초기화 과정은1) 전체 클래스, 2) UProperties(GC시스템에 의해 관리되는 변수들), 3) 네이티브 멤버(C++로 선언된 일반 멤버 변수)모두를 포함한다. 이후 생성자에서 원하는 값으로 초기화할 수 있다. 즉, 이 말은자동 초기화 후에, 생성자에서 커스텀 초기화가 가능하다는 뜻이다.자동 추기화는 앞서 말했듯이UObject가 생성될 ..

UE5 2024.12.19

언리얼 내부 - 모듈 (Modules) 2

Modules - Overview ans Structure 언리얼 엔진의 모듈이란?모듈은 언리얼 엔진소프트웨어 아키텍처의 기본 구조적 빌딩 블록이다.이는 독립적인 코드 단위이며 일반적으로 모듈은 하나의 독립된 코드 묶음으로 처리되어 컴파일러가 이를 별도로 빌드한다. 모듈? 라이브러리와 비슷한 거 아닌가요?모듈과 라이브러리의 둘의 차이점사용자는 각 모듈을 라이브러리로 생각할 수 있지만,다음과 같은 차이점이 있다.모듈은 엔진, 게임 또는 플러그인의 다른 모듈에 따라 달라질 수 있다.추가 모듈에는 타사 라이브러리가 포함될 수 있으며,모듈은 특정 빌드 유형(ex editor only)으로 제한할 수 있다.사용 가능한 플랫폼을 제한하기 위해 화이트리스트 및 블랙리스트에 추가할 수도 있습니다. 모듈의 장점언리얼에서..

UE5 2024.11.25

언리얼 내부 - 모듈 (Modules)

모듈이란?모듈은 언리얼 엔진과 우리가 사용하는모든 것을 구성하는 블록이라고 생각할 수 있다.언리얼 엔진 내부는 기본적으로 모듈이다.그리고 편집기를 확장하려면 자체 모듈과리소스 드롭다운을 만들어야 한다. 이전에 모듈에 대해서 포스팅을 했으니이번 포스팅에서는 간단히프로그래머가 알아야 할 세가지 주요 사항만 언급하겠다. 프로그래머가 알아야 할 세 가지 모듈의 주요 사항1. 모듈은 좋은 코드 분리를 강제하며 이런 특징은 매우 유용하다.언리얼 내부에는 많은 코드가 있지만어떻게든 코드끼리는 서로 통신해 하는 상황에서 모듈은 좋은 구조를 가진다.언리얼 엔진은 상호 종속적인 모듈과 플러그인을 지원한다.프로젝트 모듈은 파일에서 플러그인을 활성화하여 플러그인에 종속될 수 있다.프로젝트 모듈은 엔진 모듈에 종속될 수 있지만..

UE5 2024.11.25

점진적 가비지 컬렉션

점진적 가비지 컬렉션이란?UObject를 위한 개선된 가비지 컬렉션 시스템이다. 언리얼 엔진은 마크 앤 스윕 가비지 컬렉터를 사용하여 UObject 메모리를 관리한다.소프트 리얼 타임( soft-real-time ) 애플리케이션의 경우,가비지 컬렉터에 한 가지 큰 단점이 있다.가비지 컬렉터가 어떤 오브젝트의 메모리를 회수할 수 있는지 결정하는 동안Gameplay hitches가 발생할 수 있다는 것이다. UE에서는 이 프로세스를 도달 가능성 분석이라고 한다.UE5는 항상 가비지 컬렉션의이 단계가 한 프레임 내에 완료되도록 의존해 왔으며,이로 인해 일시적으로 모든 UObject 처리가 중지된다. 도달 가능성 분석에서스캔해야 할 오브젝트가 많을수록 일시정지 시간이 길어지고,그 결과 가시적인 게임플레이 히치를..

UE5 2024.11.23

서버 시작하기

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

UE5 2024.10.14

Tag를 활용한 Input 값 받아오기

player character class에다음과 같은 함수를 제작해주었다.해당 함수를 제작하기 전에,넣어줄 태그를 미리 다음과 같이 만들어두었다.  이후 플레이어 캐릭터 cpp에서 다음과 같이인력 값에 맞게 제작한 함수를 바인딩 해주었다.  마지막은 gas와 관련되었기 때문에,각 직업에 맞는 gasComponent에똑같은 GASInput함수 작업을 해준다. 현재 제작하고 있는 HeroCharacter는 전사이다.따라서 warrior직업에 맞는 GASComponent에 해당 함수를 제작한 것이다. 이렇게되면 HeroCharacter.cpp에서는 직접적으로 함수를 구현하기보단,해당 GAS를 통해서 구현하여 각 직업에 맞는GASComponent를 불러와 작업을 수행할 수 있다.(코드의 재사용성 多)GetAct..

UE5 2024.10.08

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