
액터는 아주 간단하게 설명해서 레벨에 배치할 수 있는 모든 오브젝트를 말한다
새로 생성한 언리얼 프로젝트에서 보면 기본 레벨에 있는 모든 것이 액터라고 할 수 있다
의자나 테이블, 바닥은 물론 눈에 직접 보이지는 않지만 환경에 영향을 미치는 광원이나, 배경소리를 구성하는 음원 등 여기 아웃라이너 패널에서 보이는 모든 것들은 액터라는 뜻이다
우선 언리얼엔진을 실행하고 시작용 콘텐츠를 포함한 상태로 새 프로젝트를 하나 생성한다
그리고 [StarterContent > Maps > Minimal_Default] 맵을 찾아 더블클릭 해준다
그럼 액터를 생성하는 방법을 알아보자
먼저 메인 툴바에서 육면체에 +모양이 표시된 액터 추가 버튼을 누르면 여러 가지 항목을 볼 수 있다
만들 수 있는 액터의 종류에 따라 분류가 되어있는데 먼저 Basic 카테고리에서는 일반적으로 자주 사용되는 액터들을 생성할 수 있다
계속 메인 툴바의 액터 배치 버튼을 눌러서 작업하기가 귀찮다면 액터 배치 패널을 열어서 원하는 액터를 배치하는 방법도 있다
(아래의 Place Actors Panel 부분을 클릭하여 왼쪽처럼 패널을 추가해서 쉽게 액터를 끌어다 사용할 수 있다)
먼저 [Basic > Actor]를 선택하여 아무런 기능이 없는 빈 액터를 생성해서 살펴보자
[액터를 생성할 때 액터의 위치가 화면의 중앙이 아닌 다른 곳에서 생길 수 있으므로, 오류라고 생각하지 말고 아웃라이너에서 액터를 더블클릭을 하거나 단축키 'F'를 눌러서 끌어다 놓으면 된다]
비어있는 액터를 선택하고 오른쪽 디테일 패널을 보면, 기본적으로 DefaultSceneRoot 컴포넌트가 붙어있어 액터의 기본적인 위치나 회전, 크기와 같은 정보를 담고 있기 때문에 이 액터가 레벨의 어디에 어떻게 배치되어 있는지 확인할 수 있다
라이트 카테고리에서는 씬에서 여러 액터들에게 빛을 비춰서 눈에 보이게 만들어줄 빛을 추가할 수 있다
그 전에, 아웃라이너에서 Lighting 폴더의 왼쪽 눈 아이콘을 눌러 라이트들을 끄면 레벨에 배치된 의자와 탁자들은 검게 어두워지면서 보이지 않게 되는 것을 볼 수 있다
만약 이렇게 했는데도 어둡지 않을시, 오른쪽 [Settings > Engine Scalablity Settings]의 엔진 퀄리티에서 'Global Illumination' 옵션을 High 이상으로 올리면 해결된다
이 상태에서 Light 카테고리의 Point Light를 선택해서 레벨에 추가하고 테이블 위에 배치하면 어두워서 보이지 않던 주위가 보이게 된다
이 외에도 Shape 카테고리에서는 기본적인 육면체나 원뿔, 실린더, 구체 등의 액터를 추가할 수 있고, 카테고리마다 여러 가지 다양한 기능을 가진 액터들을 생성할 수 있는 항목들을 가지고 있다
All CLASSES 카테고리에서는 언리얼엔진에서 제공되는 모든 종류의 액터를 볼 수 있다
이제 컴포넌트에 대해서 알아보자면, 컴포넌트는 액터의 형태와 기능을 결정하는 부분이다
액터는 오직 하나의 루트 컴포넌트만 가질 수 있으며, 이 루트 컴포넌트는 여러개의 하위 컴포넌트를 가질 수 있다
만약 컴포넌트가 하나일 경우에 그 자체가 루트 컴포넌트가 된다
예시로 만든 이 액터를 보면 루트 컴포넌트, 즉 액터의 가장 기본이 되는 컴포넌트와 하위 컴포넌트 하나로 구성되어 있다
여러 기능이나 형태의 하위 컴포넌트들이 모여서 하나의 루트 컴포넌트를 만들고, 그것이 액터의 역할을 결정한다
또, 씬에 배치된 의자 액터의 경우에도 루트 컴포넌트로 스태틱 메시 컴포넌트가 붙어있어서 3D모델을 가지고 눈에 직접 보일 수 있게 한다
우리가 배치한 포인트 라이트 액터 역시 라이트 컴포넌트가 붙어있어서 빛을 방출하고 주변을 보이도록 만들어준다
맨처음에 생성한 빈 액터 역시 디테일 패널에서 [+Add] 버튼을 누르고 카메라 컴포넌트를 추가해주면, 빈 액터가 아닌 카메라로서의 기능을 하게 된다 [컴포넌트를 선택하고 위치를 이동하면 빈 액터는 움직이지 않고 컴포넌트만 이동하게 되므로, 상황에 따라 루트 컴포넌트를 선택 후 같이 이동해야 한다]
앞에서도 말했다시피 액터에 어떤 컴포넌트를 붙이느냐에 따라서 액터의 역할이 결정된다
언리얼엔진에서는 게임 개발에 필요한 기능을 가진 굉장히 다양한 종류의 컴포넌트들을 제공하지만, 이 중에 각 사람이 개발하고자 하는 게임의 기능을 지원하는 컴포넌트가 없을 수도 있다
그럴 때 C++ 이나 블루프린트를 이용해 각자만의 커스텀 컴포넌트를 만들어 액터에 붙이면 된다
VR게임 개발을 위한 언리얼엔진/C++ 공부한 내용 끄적이기...
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!