UE5 61

Delegate 사용방법

델리게이트란? C++ 오브젝트 상의 멤버 함수를 가리키고 실행시키는 데이터 유형이다. 델리게이트로 C++ 오브젝트 상의 멤버 함수 호출을 일반적이고 유형적으로 안전한 방식으로 할 수 있다. 델리게이트를 사용하여 임의의 오브젝트의 멤버 함수에 동적으로 바인딩시킬 수 있으며, 그런 다음 그 오브젝트에서 함수를 호출할 수 있다. 호출하는 곳에서 오브젝트의 유형을 몰라도 무관하다. 델리게이트 오브젝트는 복사시에도 안전성이 보장된다. 델리게이트는 값으로의 전달이 가능하나, heap 영역에서 메모리를 할당하기 때문에 보통 추천할 만 하지는 않다. 가급적이면 델리게이트는 항상 참조로 전달하는 것이 좋다. 델리게이트는 싱글 - 캐스트 (형변환)와 멀티-캐스트 모두 지원되며, 디스크에 안전하게 Serialize 시킬 수..

UE5 2023.12.05

언리얼 내의 포인터

관리되지 않는 메모리와 관리되는 메모리 관리되지 않는 메모리는 malloc()/free() , new/delete가 있으며, 관리되는 메모리는 NewObject와 ConstructObject 사용이 있다. 또한 이들을 수동 메모리 해제를 위해 언리얼은 UObject::ConditionalBeginDestroy() 멤버 함수를 호출한다. 오브젝트 추적에 대한 용이함으로는 스마트 포인터와 TScopedPointer를 사용하여 가능하다. 언리얼 스마트 포인터 언리얼 스마트 포인터란? C++11의 스마트 포인터의 디자인을 커스텀하여 구현(implementation. SW공학 내의 구현 의미)한 것으로, C++의 스마트 포인터 라이브러리는 일반 객체를 위한 라이브러리이므로, 언리얼 오브젝트에 사용하기에..

UE5 2023.11.02

언리얼 게임 모드 클래스

언리얼에서 게임을 구현하는 다양한 기능은 플러그인, 모듈 등을 통해서 추가할 수 있다. 하지만 게임 구현의 주춧돌은 역시 게임 모드 클래스이다. 언리얼 게임 모드 클래스 게임에 일시 정지 기능을 추가하고 싶은 경우를 생각해보자. 게임을 일시 정지시키기 위한 모든 로직 및 구현 내용이 하나의 클래스 안에 배치돼야 할 것이다. 게임 모드 클래스는 플레이어가 게임에 입장하면 게임 흐름을 처리하는 역할을 담당하게 된다. 게임 흐름은 게임에서 발생하는 모든 상황(ex. 일시정지, 플레이, 재시작 등 게임 흐름 행동)이 될 수 있다. 이와 비슷하게 멀티플레이어 게임에서는 네트워크와 관련된 게임플레이 로직이 한 곳에 배치돼야 한다. 게임 모드 클래스는 바로 이런 역할을 담당한다. 게임 모드는 게임 로직을 실행하고 플..

UE5 2023.10.27

UE5 멀티스레딩과 enum을 이용한 상태 변환

멀티스레딩을 이용하면 여러 함수가 동시에 호출되는 것이 가능하다. 해당 언리얼 엔진 문서를 참고하였음 https://docs.unrealengine.com/5.1/ko/animation-optimization-in-unreal-engine/ https://docs.unrealengine.com/5.3/ko/animation-optimization-in-unreal-engine/ 애니메이션 최적화 애니메이션 블루프린트의 퍼포먼스를 높이는 최적화 기법에 대한 설명입니다. docs.unrealengine.com 애니메이션 최적화에 가장 좋은 방법은 멀티스레드를 이용하는 것이다. 여기서 잠깐, 멀티 스레드의 개념 이전에 알아 두어야 할 것이 있는데, 스레드 개념이다. 스레드란 무엇인가? 일반적으로 많이 쓰는 운..

UE5 2023.10.22

UFUNCTION() 응용을 위한 가이드

블루프린트는 프로그래머와 디자이너의 협업이 가능하도록 해줄 때 편리하다. unreal은 디자이너도, 프로그래머도 둘 다 사용이 가능하다는 점에서 큰 이점이 된다. 이에 대한 예시로 디자이너가 새로운 유형의 무기를 구현할 때, 프로그래머가 무기에 대한 클래스를 만들어 놓고 Fire() 함수 등 조작할 수 있는 중요한 몇가지의 함수를 블루프린트로 만들어 가시화 해놓으면, 디자이너가 코드를 읽어야 할 필요는 없다. 프로그래머도 디자이너에게 코드를 맡길 필요가 없다. 총 발사 속도를 다시 코딩하고 게임을 컴파일 시킬 필요도 없다. 디자이너는 블루프린트를 이용해 직접 발사속도 및 스태틱 매쉬만 변경해주면 된다. 이는 디자이너 프로그래머 모두에게 시간 절약이 될 수 있다. 근데 프로그래머에게도 BP를 사용할지 C+..

UE5 2023.10.16

Physics Field System _ RPG 부서지는 물체

게임에서는 부서지는 물체와 부서지지 않는 물체가 구분된다. 이러한 사소한 물리 시스템의 적용이 플레이어의 몰입감을 높여준다. 붉은 사막 트레일러에서 이를 찾아볼 수 있다. 플레이어가 전투 중, 나무로 만든 구조체와 부딪히니, 박살이 나는 것을 확인할 수 있다. 이는 비단 나무 뿐만이 아닌, 항아리가 될 수도 있고, 혹은 이러한 물리 시스템을 이용해서 끊겨있는 다리를 대신 해 나무를 부셔서 다리 대용으로 이용하도록 플레이어를 유도하면 플레이어가 게임에서 느끼는 몰입감은 배가 될 것이다. 결국 플레이어가 얼마나 오랫동안 게임에 머무르느냐는 이러한 사소한 디테일에 따라 달린 것이라고 생각한다. 가상 세계에서 플레이어가 상상했던 그 이상의 디테일을 접할 기회를 자꾸 제공하면 플레이어는 해당 가상 세계에서의 몰입..

UE5 2023.10.16

좌표계, 트랜스폼, 유닛 그리고 구조

이번 시간에 배우는 것들 > 카테시안 좌표계에 대한 이해와 UE4 트랜스폼과의 연관성> 이동(Move), 회전(Rotation), 크기(Scale)> 액터(Actor)를 위한 그리드 시스템과 측정> 씬 구성과 구조> 액터 그룹화, 레이어, 부착하기 이번 시간에는 좌표계와 트랜스폼에 대해 학습하고 3D 공간에서 콘텐츠를 만들기 위해그리드를 어떻게 사용하는지 배운다. 에디터에서 특정 액터를 제어하기 위해 어떠한 트랜스폼 종류를사용해야 하는지 알아볼 것이며 이러한 트랜스폼들을 어떻게 사용해야 하는지 알아본다.다음으로 외부 소프트웨어에서 만든 애셋을 올바르게 UE4로 가져오기 위해 그리트 시스템과 측정에 대해 알아본다.마지막으로 UE4에서 사용되고 있는 구성 체계를 사용해 어떻게 프로젝트를 깔끔하고 읽기 쉽게 ..

UE5 2023.06.20

게임플레이 프레임워크 이해하기

이번에 배우는 것들> 콘텐츠 예제 프로젝트 다운로드 및 설정> 애셋 가져오기> 다른 프로젝트의 콘텐츠 가져오기> 게임플레이 프레임워크 소개  언리얼 엔진 4는 2D 인디 게임에서부터 3D AAA 게임 타이틀,인터랙티브 애플리케이션, 건축 시각화, VR 경험에 이르기까지 이러한 모두를 개발하는 데사용될 수 있는 매우 강력한 애플리케이션이다.UE4는 PC, 콘솔, 모바일 HRML5와 같은 매우 다양한 플랫폼에서동작하는 콘텐츠를 제작할 수 있게 해준다.UE4 에디터는 게임 개발의 매우 복잡한 작업을 처리하지만,개발자가 쉽게 사용할 수 있는 환경을 제공한다.다른 컴퓨터 프로그램들과 마찬가지로 UE4는 학습 곡선이 존재한다.이번 시간에는 몇 가지 기술과 프로젝트의 구조,UE4를 위한 기본적인 게임플레이 프레임워크..

UE5 2023.06.14