1. 계층 구조
2. UObject
자세한 내용은 공식 문서에서 확인!
UE4 공식 문서 - 오브젝트
- 언리얼의 오브젝트의 베이스 클래스
- UObject에서 파생되는 클래스에
UCLASS 매크로
를 사용해 태그를 해 주면 UObject 처리 시스템에서 인식하게 된다. - 클래스에 UObject가 상속되었다면 그 클래스가 언리얼 으보젝트로 선언되었다는 것을 의미
- 언리얼 오브젝트는 엔진의 관리를 받는 특수한 객체
- 데이터 저장이 가능
- 레벨에 배치가 불가능하다
U가 붙는 이유
- 일반 C++ 클래스와 UClass를 구분하기 위해
- 일반 C++ 클래스와 다르게 객체를 생성하기 위해서
NewObject<클래스명>()
를 사용해야 한다.
3.AActor
자세한 내용은 공식 문서에서 확인!
UE4 공식 문서 - 액터
Actor 란?
- 언리얼 엔진의 레벨에 배치할 수 있는 오브젝트를 의미
- Unity의
GameObject
와 비슷
- Unity의
- 이동, 회전, 스케일과 같은 3D 트랜스폼을 지원하는 범용 클래스
- 게임 플레이 코드(C++ 또는 블루프린트)를 통해 생성(스폰) 및 소멸이 가능
- C++에서 AActor는 모든 액터의 베이스 클래스
Actor의 생명 주기
Actor의 컴포넌트
- 액터는
씬 컴포넌트 계층 구조를 갖는 것을 지원
UActorComponent 액터 컴포넌트
- 베이스 컴포넌트이고 액터의 일부로 포함이 가능
Tick
가능- Actor 컴포넌트는 특정 액터에 연관짓거나, 월드의 특정 지점에 존재하지 않음
- 일반적으로
개념적 기능
(Ex) AI 나 플레이어 입력 해석)과 같은 것에 사용
USceneComponent 씬 컴포넌트
트랜스폼
있는 액터 컴포넌트- 트랜스폼은
위치
,회전
,스케일
로 정의되는월드상의 포지션
을 나타냄
- 트랜스폼은
- 계층 구조 형태로 서로에게 붙일 수 있음
- 액터의 위치, 회전, 스케일은 계층 구조의
루트
에 위치한 씬 컴포넌트에서 취할 수 있다
UPrimitiveComponent 프리미티브 컴포넌트
- 일정한 형태의(메시 또는 파티클 시스템과 같은)
그래픽적 표현
이 있는씬 컴포넌트
를 말함 피직스
및콜리전 세팅
이 들어가 있음
RootComponent 루트 컴포넌트
- 어느 컴포넌트가
액터의 루트 역할
을 할지 나타내는 컴포넌트액터 자체에는 트랜스폼 정보가 없다. 대신 루트 컴포넌트의 트랜스폼에 의존하는데
컴포넌트가
씬 컴포넌트
일 경우, 액터에트랜스폼 정보
를 제공해주고
아닐 경우, 액터에는 트랜스폼 정보가없다
부착된 다른 컴포넌트에는, 부착된 그 컴포넌트를 기준으로 한 트랜스폼 정보가 존재한다
액터의 계층 구조 예제
Tick(틱)
- 언리얼 엔진에서의
액터 업데이트 방법
을 의미 - 모든 액터는 매 프레임, 또는 최소, 또는 사용자 정의 간격마다 틱을 하여 필요한 동작이나 계산을
업데이트
할 수 있다.Unity의 Update와 비슷한 개념
- 액터는 모두 기본적으로
Tick()
함수를 통해 틱 가능ActorComponent 역시, TickComponent() 함수를 사용해야 한다는 점이 다르지만,
기본적으로 업데이트 가능
자세한 내용은 Components 문서에서 확인 가능하다.
Replication(리플리케이션) 과 액터 소멸
- 공식 문서에서 확인
4. Pawn
1
폰이란, 월드 내 플레이어에 대한 물리적 표현입니다.
Pawn 이란?
플레이어나 AI가 제어
할 수 있는 모든 액터의베이스 클래스
- 월드 내 플레이어나 AI 개체에 대한 물리적 표현
플레이어나 AI 개체의 시각적인 모습 뿐만 아니라
콜리전
이나 기타물리적 반응
과 같은 측면에서월드와의 상호작용 방식
도 Pawn이 규정한다는 뜻 - 기본적으로 Controller 와 Pawn에는 1:1 대응 관계
즉, 각 컨트롤러는 단 하나의 폰만 제어
마찬가지로 게임 플레이 도중 스폰된 폰이 자동적을 컨트롤러에 빙의(possess)되지 않는다.
Default Pawn 이란?
- 공식 문서 확인
5. Character
1
Character, 캐릭터는 원래부터 약간의 기본적인 이족보행 운동 기능을 가지고 있는 Pawn 입니다.
Character 란?
- 캐릭터 움직임 Component를 가지고 있음
- Pawn 클래스에서 고도로 특화된 클래스
- 추가된 Component
CharacterMovementComponent
CapsuleComponent
SkeletalMeshComponent
- 추가된 Component
- 월드에서 걷기, 달리기, 점프 등 가능한
직립 플레이어를 표현
하기 위해 디자인 됨 - 기본적인 네트워킹이나 인풋 모델 구현도 추가되어 있음
SkeletalMeshComponent
- Pawn과 달리 Character에 존재하는
고급 애니메이션
을 위한 Component - 관련된 상세 내용은
공식 문서
확인
CapsuleComponent
- 운동 콜리전에 사용
- 관련된 상세 내용은
공식 문서
확인
CharacterMovementComponent
- 관련된 상세 내용은
공식 문서
확인