302호 컴퓨터실/언리얼 엔진 5 기초
-
게임 클라이언트 레벨 디자인 최적화 기법 살펴보기302호 컴퓨터실/언리얼 엔진 5 기초 2024. 12. 18. 11:37
게임 개발에서 레벨 디자인은 단순히 "재미있는 공간"을 만드는 것을 넘어, 성능 최적화를 통해 쾌적한 플레이 환경을 제공하는 과정까지 포함합니다. 이 글에서는 드로우 콜, LOD와 HLOD, View Frustum Culling, Occlusion Culling, Portal Culling, PVS 등 레벨 디자인에서 필수적으로 고려해야 하는 최적화 기법들을 초보자도 이해하기 쉽게 설명합니다.드로우 콜(Draw Call)드로우 콜은 GPU가 한 번에 그릴 수 있는 단위 작업을 의미합니다. 게임 화면에 보이는 모든 오브젝트는 드로우 콜을 발생시키며, 이 숫자가 많아질수록 성능이 저하됩니다. 배치(Mesh Batching): 여러 오브젝트를 하나로 합쳐 드로우 콜 수를 줄입니다.인스턴싱(Instancing)..
-
[UE5] FString은 왜 '*'을 붙여서 읽어야할까?302호 컴퓨터실/언리얼 엔진 5 기초 2024. 11. 27. 17:21
1. FString의 구조FString은 언리얼 엔진의 문자열 클래스입니다. 이 클래스는 내부적으로 힙(Heap)에 동적 문자열 데이터를 관리합니다.FString의 핵심은 문자열 데이터를 TArray를 통해 관리하며, 메모리 관리와 최적화를 위해 다양한 유틸리티 메서드가 포함되어 있습니다.하지만, FString 자체는 문자열 데이터를 바로 반환하지 않고, 문자열 값을 가리키는 내부 메서드를 제공합니다.2. C++에서 *의 역할'*'는 C++에서 포인터의 값을 참조하거나 언리얼에서 오버로딩된 특정 연산자를 호출하는 역할을 합니다.FString에서는 * 연산자를 오버로딩하여 내부의 C-Style 문자열 포인터(TCHAR)를 반환하도록 설계되어 있습니다.오버로딩된 operator*()의 역할const TCHA..
-
[Unreal 5] 블루프린트 4 - Vector, Force, Impulse302호 컴퓨터실/언리얼 엔진 5 기초 2024. 11. 6. 00:01
물리학에서의 힘과 임펄스 개념 차이힘 (Force):힘은 특정 시점에 작용하는 물리적 원인입니다. 예를 들어, 우리가 공을 던질 때 손이 공에 힘을 가하게 되죠. 이때 힘이 짧은 시간 동안 가해지거나, 혹은 일정 시간 동안 지속될 수도 있어요.즉, 힘의 작용 자체는 순간적이지만, 이 힘이 작용하는 시간이 길어질수록 힘의 누적 효과, 즉 임펄스가 커지게 됩니다.임펄스 (Impulse):힘이 일정 시간 동안 누적되어 작용한 결과가 임펄스입니다. 예를 들어, 짧은 순간 동안 강한 힘을 가해 운동량을 크게 변화시키는 것이 임펄스의 대표적인 특징이죠.물리적으로 임펄스는 임펄스 = F×Δt (질량 x 속도의 변화) 로, 힘과 시간이 곱해진 값입니다.언리얼 엔진에서의 표현 방식언리얼 엔진에서는 임펄스를 한 번의 이벤..
-
[Unreal 5] 블루프린트 3 - 객체와 참조302호 컴퓨터실/언리얼 엔진 5 기초 2024. 11. 4. 00:11
객체 (Object) - 데이터와 기능의 집합액터 (Actors) - 객체를 레벨에서 사용 가능하게 해주는 것컴포넌트 (Component) - 객체를 액터로써 사용 가능하게 해주는 것참조 (Reference) - 객체가 있는 장소 (메모리 주소)데이터 핀 (Data Pin) - 블루프린트 노드의 인풋 or 아웃풋 데이터 뷰포트에서 큐브를 선택하고 블루프린트의 이벤트그래프에 큐브 노드를 추가하는 것은 큐브의 참조를 이용하는 것이다.이미지의 파란색 핀이 데이터 핀이다. 큐브 = 스태틱 메시 액터 오브젝트 레퍼런스맨 처음 언급한 내용이 모두 조합된 타입이다.아무튼 큐브가 가지고 있느 기능중 메시 컴포넌트를 사용한다. 간단하게 큐브의 메시 이름을 가져와 프린트하게 세팅해보자. 끝.
-
[Unreal 5] 블루프린트 1 - 프로젝트 생성 및 노드 생성302호 컴퓨터실/언리얼 엔진 5 기초 2024. 11. 3. 23:25
기본 게임 프로젝트 생성 광활한 타일 평야가 펼쳐질건데 아래에 보이는 콘텐츠 드로어를 클릭해 기본 맵을 호출해본다.3개 모두 골고루 확인해보자. 상단 툴바에 네모들 끼리 연결된 아이콘을 클릭하면 현재 레벨에서의 블루프린트를 확인할 수 있다. 기본 액션(기능)들이 뭐 많이 들어 있다.블루프린트가 생성될 저 배경을 event graph 라고 하며 추가될 내용들은 액션 or 기능(function) 이다. 'print string' 을 검색해서 기능 하나를 추가해본다.그렇게 생성된 저 박스를 'Node' 라고 부른다.노드는 프로젝트내에 포함된 이미 만들어진 기능(Premade functionality)의 일부를 뜻한다. 'BeginPlay' 를 검색해서 또 다른 기능 하나를 추가한다.생성된 저 빨간색..