모듈, 플러그인 플랫폼
모듈별로 컴파일이 진행된다.
다른 여러 프로젝트에서 모듈을 사용할 수 있다.
플러그인 : 활성화하거나 비활성화 할 수 있음, 엔진 혹은 프로젝트에 포함
플랫폼 : 플랫폼 전용 코드가 따로 생성됨
UBT : 현재 있는 모든 모듈과 플러그인을 확인하고 소스 코드 처리에 필요한 파일을 프로젝트에 생성
Base Type
- Enum
- 문자열
1. FString : 기본 문자열
2. FName : 액터 이름에 사용
3. FText : 현지화가 준비된 문자열
- Structs
- Collection
1. TMap
2. TArray : 배열의 배열은 설정할 수 없다
3. TSet
- Transform Types
1. FVector
2. FRotator : 오일러 각 사용
3. FQuat
4. FTransform
UObject : 가비지 컬렉터에서 처리할 오브젝트, 메모리 시스템에서 자동으로 처리되려면 UObject를 상속받아야 한다.
액터와 컴포넌트 모두 UObject를 상속받기 때문에 가비지 컬렉터로 관리된다.
UObject의 라이프사이클
생성 : 액터가 에디터에 있는 레벨에 배치되거나 코드나 블루프린트에의해 직접 스폰될 때
스마트 포인터에 의해 오브젝트들의 레퍼런스가 관리된다.
제거 : 더 이상 레퍼런스되지 않는 오브젝트는 가비지 컬렉터에 의해 메모리에서 제거된다.
Data Objects
1. Curves
2. DataAssets
3. DataTables
액터의 라이프사이클
Constructor
BeginPlay
InitializeComponents
EndPlay
레퍼런스가 없으면 PendingKill로 설정되고 곧 제거됨
PendingKill로 설정된 액터는 접근하면 오류를 발생시킴
Memory Management
Loading Assets Option : Automatic or Deferred
- 애셋을 즉시 로드하거나 애셋에 대한 레퍼런스를 설정해 놓고 스트리밍 시스템에서 이 애셋을 비동기로 로드하도록 할 수 있다. 맵에 배치된 액터를 제외하고 액터도 마찬가지이다.
Garbage Collection
Placed vs Spawned
- 맵에 배치된 액터는 맵이 언로드될 때 모두 자동으로 가비지 컬렉션이 수행됨
References chain
Gameplay Framework
GameMode는 서버에 있다
클라이언트에서는 GameMode에 액세스할 수 없다. 대신에 GameState를 통해 정보를 얻을 수 있다. GameMode에서 GameState를 변경한다.
Subsystem :
Async Task : 비동기 작업
Replication
리플리케이션은 오너십을 기반으로 한다.
액터와 프로퍼티 모두 리플리케이션이 가능하다.
안정성 설정이 가능하다.
메시지를 자체적으로 생성할 수도 있다. (RPC)
변수 값 변경이 발생할 때 이벤트를 발생시킬 수 있다. (RepNotify)
Unreal Automation Tool에서 Build, Cook, Pack 프로세스를 진행한다.
디버깅 프로파일링 툴
Stats : CMD > stat fps 입력
Console Commands :
Session Frontend : 프로젝트에서 실행되는 세션과 관련된 툴을 제공
Unreal Insights : 모든 스레드에서 발생하는 이벤트를 자세하게 보여줌 메모리 할당 정보 및 네트워크 각각의 패킷 정보를 분석한다.
CSV Profiler :
Memreport : 메모리 프로파일링 커맨드라인
LLM : 로우 레벨 메모리, 메모리와 클래스에 있는 엘리먼트의 양을 정확하게 제공, 트래킹 가능
ProfileGPU 커맨드 : GPU에서 발생하는 작업을 볼 수 있다.
Gauntlet : 빌드 시 빌드를 자동으로 테스트
'언리얼 5 > 에픽 게임즈 공식 강의' 카테고리의 다른 글
Engine Structure (0) | 2023.02.20 |
---|---|
All about Soft and Weak pointer (0) | 2023.02.20 |
페이퍼 2D 프로젝트 시작하기 (0) | 2023.02.18 |
Python을 활용하여 언리얼 엔진에서 에디터 스크립팅 하기 (0) | 2023.02.17 |
게임플레이 컴포넌트 세분화 (0) | 2023.02.16 |