Unreal 은 Actor 에 Component 를 추가함으로써 여러 기능을 가진 Actor 를 만들어 낼 수 있는데 이에 대한 규칙과 방법에 대해서 알아보도록 하자.
UActorComponent
모든 Component 의 최상위 기반 Class 입니다.USceneComponent
Location, Rotation, Scale 을 변환할 수 있는 Transform 과
Component 의 계층 구조를 관리할 수 있는 Attachment 를 지원하는 UActorComponent 의 파생 클래스입니다.! )
USceneComponent 는 Rendering 기능을 제공하지 않습니다.
단지 Rendering 과 관련된 기능을 제공하는 UPrimitiveComponent 의
기반 클래스입니다.
이제 Component 의 종류에 대하여 알아보았으니
가장 기본적인 AActor 를 생성하여 Component 를 추가시키며
알아보도록 하자.
AActor 를 Blueprint 로 만들게 되면 위와 같이
DefaultSceneRoot 이 나오게 되며 Viewport 에
하얀 구가 보이는 것을 확인할 수 있다.
DefaultSceneRoot 는 USceneComponent 형식이며
해당과 같이 최상위에 독립적으로 존재하는 USceneComponent 를
RootComponent 라 한다.RootComponent 는 월드에서 해당 Actor 의 Transform 을 정의하며
다른 모든 USceneComponent 는 RootComponent 에 연결하여야 한다.해당과 같이 Transform 에 Scale 만 존재하는 것을 확인 할 수 있는데
월드에서 해당 Transform 의 기준이 되므로
Location 과 Rotation 이 존재하지 않는다.
USceneComponent 의 형식은 서로를 연결 시켜 Hierarchy 를 가질 수 있다.
해당 Cube 라는 Component 를 두 개 추가 시켜 계층 구조를 만들게 되면
위와 같이 Cube1 의 Detail 은
Root Component 와 다르게 Location 과 Rotation 이 나오게 된다.또한 RootComponent 를 해당과 같이 교체할 수도 있다.
해당과 같이 RootComponent 가 바뀌고 Cube1 의 Detail 을
다시 확인해보면 Scale 만 나오는 것을 확인 할 수 있다.반면 Cube2 와 같은 겨우 Rotation 과 Location 이 여전히 존재하는 것을 확인 할 수 있다.
또 Cube3 를 추가하고 Detail Panel 을 보게 되면 Cube2 와 동일하게
Location 과 Rotation 이 나와 있는 것을 확인할 수 있다.Unreal 이 이렇게 Hierarchy 와 RootComponent 와의 차이를 둔 것은
상대적인 Transform 을 주기 위해서에 있다.
Hierarchy | 계층구조
Unreal 은 상위 계층의 컴포넌트를 기준점으로 상대적인 변환이 가능하다.
위와 같이 상위 계층은 하위 계층의 영향을 받지 않으며
하위 계층은 상위 계층이 변화하면 같이 변화하는 것을 확인할 수 있다.
즉 RootComponent 는 World 상의 Transform 을 가지며
그 기준으로 아래 하위계층들이 모두 변환이 되어야 하기 때문에
계층구조와 상대적인 기준인 RootComponent 가 존재하는 것이다.
Relative | 상대적인