Arknights EP - [Confront]
Categories
Tags
911 words
5 minutes
[UE5/Part1] 4. UObject DOCS
“이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해” 학습 내용을 정리한 강의 노트입니다.
옵시디언에 정리한 마크다운 문서라 블로그 마크다운 양식에 일부 맞지 않을 수 있습니다.이미 번외에서 다룬 내용이 많아 간략하게 넘어갑니다.
강의 목표
- 언리얼 오브젝트의 필요성
- 언리얼 오브젝트 선언 & 엔진 내부 컴파일 과정
언리얼 오브젝트
게임 프로그래밍의 특수성
- 사용자 : 쾌적한 경험을 위해 최대 성능을 뽑아내야 함
- 개발자 : 게임의 규모가 커질수록 개발 안정성이 중요함
모덴 객체 지향 설계 원칙
현재 시점에서 모던하다는 뜻은 아님. 추후 강의에서 더 자세히 다룰 예정
- SOLID 원칙
- 후발 언어에서 보완한 새로운 기능
- 인터페이스 (Interface) : 객체 설계의 틀을 제공하는 추상 클래스
- 리플렉션 (Reflection) : 런타임에서 객체의 구조를 파악하고 객체에 메타데이터 부여
- 델리게이트 (Delegate) : 프로그램에서 발생한 이벤트를 다수의 객체에 효과적으로 전달하는데 활용
언리얼 엔진은?
기존 C++ 언어를 확장해 모던 객체 지향 설계를 가능하도록 만듬
- 일반 C++ 오브젝트는 : F
- 저수준의 빠른 처리
- 언리얼 오브젝트는 : U
- 콘텐츠 제작 관련 복잡한 설계 구현
언리얼 오브젝트 문서
- 언리얼에는 게임 오브젝트 처리용 탄탄한 시스템이 있다.
- 언리얼에서 오브젝트의 베이스 클래스는 UObject
- UCLASS 매크로를 사용하여 태그를 해주면 UObject 처리 시스템에서 인식
UCLASS 매크로
- CDO -> 다음 강의에서 더 자세히 다룰 예정
- UClass에는 클래스를 정의하는 프로퍼티와 함수 세트가 들어있다.
UObject에 제공되는 함수성
- 여러가지 매크로로 제공
언리얼 헤더 툴
UHT (Unreal Header Tool)
- 컴파일 과정에서 언리얼 오브젝트를 처리하기 위한 특수한 과정들이 들어감 헤더 파일 포맷
- 언리얼이 가지는 독특한…
오브젝트 업데이트 및 소멸
- 현재 단계에서는 자세히 X
언리얼 오브젝트가 가지는 특징
추후 강의에서 예제를 통해 살펴볼 예정
- 클래스 기본 객체 (CDO)
- 리플렉션
- 인터페이스
- 향상된 열거형
- 델리게이트
- GC
- 향상된 구조체 (Struct)
- 직렬화 (Serialization)
실습
번외편에서 이미 다룬 분석 내용이므로, 간략하게 요약합니다.
- UHT : 언리얼 헤더 툴이 실행됨
- 매크로들을 참조해서 언리얼 오브젝트에 관련된 generated.h 파일 같은걸 UHT이 자동으로 생성해줌
- 그걸 포함해서 완벽한 프로그램이 되는것
정리
- 게임이 대형화되면서 성능/유지보수 두가지가 모두 중요해짐
- 언리얼 엔진은 C++을 확장한 U오브젝트라는 객체 구조를 고안
- 지정된 매크로를 사용해 빌드를 수행하면, 추가 코드가 자동으로 만들어지는 구조
- 언리얼 오브젝트를 사용해 대규모 게임 제작을 안정적으로 설계 및 구현 가능

