일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- exception
- 예외
- virtual function
- 스마트 포인터
- 루아
- 게임
- 암시적 변환
- reference
- 반복자
- resource management class
- 참조자
- operator new
- implicit conversion
- 언리얼
- 영화 리뷰
- 다형성
- 영화
- 상속
- Smart Pointer
- 메타테이블
- more effective c++
- Vector
- lua
- 비교 함수 객체
- effective stl
- 티스토리챌린지
- UE4
- 오블완
- Effective c++
- c++
- Today
- Total
스토리텔링 개발자
[UE4] 컴포넌트(Component) 본문
개요
컴포넌트는 액터에 붙여서 사용하는 UObject입니다.
액터에 붙여서 사용한다는 점만 특이한, 그냥 UObject라고 봐도 무방할 듯 하네요.
하지만 바로 그 붙인다는 점이 무척 유용합니다.
사실 액터 클래스 내부(BP 클래스도 포함이죠)에 특정 UObject를 일일이 정의하기란 상당히 번거로운 일이니까요.
컴포넌트는 그냥 자체적으로 정의하고, 만들고, 붙이기만 하면 그 객체 전용이라는 걸 강조할 수 있죠.
굳이 현실세계로 비유하자면 이렇게 비유할 수 있을까요.
자동차에 열선을 추가 하려고 하는 상황이라면,
자동차 액터에 열선 컴포넌트를 붙이는 셈이라고 할 수 있죠.
다양한 컴포넌트 유형
컴포넌트는 객체에 붙어서 그 객체의 기능 자체로 사용될 수 있다는 점에 착안해서,
이미 UActorComponent 하위 컴포넌트로 다양하게 제공되고 있습니다.
네, 예상했겠지만 모든 컴포넌트는 UActorComponent의 자식 클래스입니다.
자세한 컴포넌트 종류들은 공식 문서에서 확인할 수 있습니다.
많은 컴포넌트들이 있지만, 중요하고 자주 만나게 되는 컴포넌트를 굳이 꼽아보자면 아래와 같습니다.
씬 컴포넌트(Scene Component)
트랜스폼(위치, 회전, 스케일)을 가지는 컴포넌트입니다.
액터는 월드 위에 존재하려면 트랜스폼 정보를 가져야 합니다.
그리고 또 중요한 기능.
씬 컴포넌트는 같은 씬 컴포넌트끼리 계층적으로 붙이기(Hierarchical Attachment)가 가능합니다.
월드에 존재하는 액터들의 계층 구조와 판박이죠.
그야 그럴것이, 씬 컴포넌트는 월드에 존재하기 위한 정보를 가진 컴포넌트들이니까요.
여기서 액터의 최상위 Component를 RootComponent라고 하며,
이 루트 컴포넌트를 기준으로 다른 씬 컴포넌트를 붙여나갈 수 있습니다.
또한 그 루트 컴포넌트의 Transform 정보가 바로 대상 Actor의 Transform 정보가 됩니다.
프리미티브 컴포넌트(PrimitiveComponent)
SceneComponent의 자식 컴포넌트로, 충돌 또는 렌더링 관련 컴포넌트입니다.
빈 액터의 씬 컴포넌트 구조
액터를 끌어서 에디터에 배치하면, DefaultSceneRoot 라는 루트 컴포넌트를 가지고 있는 걸 볼 수 있습니다.
월드에 배치된 걸로 예상할 수 있듯이 이 루트 컴포넌트는 바로 SceneComponent입니다.
그리고 트랜스폼의 정보만을 가지고 있습니다.
이를 캡슐 컴포넌트 등 콜리전을 가지고 있는 컴포넌트 등으로 교체할 수도 있을테고,
메시 컴포넌트를 하위 계층에 붙여서 월드에 Draw 시킬 수도 있을 것입니다.
'개발 > 언리얼 엔진' 카테고리의 다른 글
[UE4] 동기 / 비동기 에셋 로딩 (0) | 2021.07.15 |
---|---|
[UE4] 에셋 강참조 / 약참조 (0) | 2021.07.13 |
[UE4] 콜리전(Collision) (0) | 2021.06.24 |
[UE4] 트레이스(Trace) (0) | 2021.06.22 |
[UE4] 순운동학, 역운동학(Forward Kinematics, Inverse Kinematics) (0) | 2021.06.21 |