[UE4] 언리얼엔진 블루프린트
Components
언리얼엔진의 블루프린트 기능중 Component 에 대해 알아보자 !
오늘은 언리얼엔진에서 필요한 기능을 구현하는데 유용한 블루프린트, 그 중에서도 Components 에 대해서 알아볼 것이다.

Components란?
Component, 컴포넌트는 액터에 추가시킬 수 있는 함수성 조각으로, 컴포넌트는 독립적으로 존재할 수는 없지만, 액터에 추가시키면 자립적인 함수성 조각으로, 액터에 포함시켜야 하며, 그 자체로 존재할 수는 없습니다.
예를 들어 스포트 라이트 컴포넌트는 액터가 스포트 라이트처럼 빛을 내도록, 로테이팅 무브먼트 컴포넌트는 액터가 회전하도록, 오디오 컴포넌트는 액터가 사운드를 재생하도록 해 줍니다.
액터에 컴포넌트를 추가할 때, 그 액터 전체를 이루는 조각들을 함께 모아서 레벨에 배치하게 됩니다. 차를 예로 들면, 바퀴, 운전대, 차체, 라이트 등이 컴포넌트로 간주되는 반면, 차 자체는 액터로 간주됩니다.
액터를 정의하는 컴포넌트를 추가한 이후 한 가지 중요한 점은, 차의 작동 방식에 영향을 끼치는 블루프린트 스크립트(나 C++ 코드)를 제공하지 않고도 레벨에 액터를 배치할 수 있다는 점입니다 (현실에서도, 차를 운전하는 운전자 없이도 사물로써 존재 가능합니다). "악셀 페달"은 컴포넌트가 될 것이므로, 스크립트나 코드를 통해 "악셀 페달" 이 눌렸는지 확인하고, 눌렸으면 차를 가속시키는 로직을 제공해 줍니다. 그 후 각각의 컴포넌트를 이런 식으로 접근 가능합니다 (라이트 켜기, 경적 울리기, 라디오 켜기, 조향 등).
또한 Components는 두 종류로 나뉘는데,
첫번째는 Actor Component로

Actor Component는 기능만 가지는 컴포넌트를 의미하고, 액터에 직접 attach하여 사용이 가능하고 재사용가능한 행동을 정의하는 클래스이다.
두번째는 Scene Component로

Actor Component와는 달리 계층적 구조를 가지고있다. Scene Component는 액터의 월드 내 위치, 회전, 스케일등을 담당하며 그 아래 모든 Components에 계층 구조식으로 적용된다.

Scene Component를 실제로 사용해보면

다음과 같이 Scene Component를 생성해주고

뷰포트에 배치를 해주면 우리가 적용시킬 함수가 Scene Component의 위치에서 동작하게 된다


위와같은 Overlap Event를 이용한 Particle 구현 노드에서 Scene 컴포넌트를 가져와 노드를 구현해주면,

실제로 Overlap Particle이 우리가 설정한 Scene Component 값의 위치에서 작동하는 것을 알 수 있다.
이렇게 오늘은 Component에 대해 알아보았고, 다음 포스팅에서 Sequence로 다시 볼 수 있길 희망한다 !
