
위 사진에서 붉은색으로 표시된 영역을 뷰포트라고 부름.
뷰포트 창 내부에 보이는 작업공간은 월드라고 부름.
월드는 게임 콘텐츠를 구동하기 위해 필요한 필수적인 환경을 의미함.
공간(Space): 가상 세계를 구성하는 3차원 영역. 게임 콘텐츠를 구성하는 물체가 월드의 영역 내부에 존재하도록 만들기 위해 트랜스폼(Transform)이라 하는 구조체 제공. 기본 단위는 cm.
시간(Time): 가상 공간에서 흐르는 시간. 현실 세계와 동일하게 초 단위로 흘러가지만, 시간을 멈추거나 느리게, 혹은 빠르게 흘러가도록 시간의 스케일 조절 가능.
물리(Physics): 월드 공간에 배치된 물체에 작용하는 물리적인 환경. 가장 대표적인 예시로 중력이 있음. 공간에 배치된 물체가 월드로부터 물리적인 영향을 받으려면 콜리전(Collision) 정보가 있어야 함.
렌더링(Rendering): 엔진이 제공하는 시각적인 기능. 빛(Light)과 이에 반응하는 머티리얼(Material)로 구성. 현실 세계와 유사하게 동작하도록 물리 기반 렌더링 시스템(Physically Based Rendering System) 제공.
이외에도 다양한 기능이 제공되며 아래 사진에서 붉은색 영역으로 표시된 세팅>월드 세팅 메뉴를 통해 확인 할 수 있음.

액터는 언리얼 엔진에서 콘텐츠를 구성하는 최소 단위의 물체.
게임 월드의 특정 공간에서 자신의 역할을 수행하는 물체를 의미함.
월드에 존재하는 액터들의 목록은 아래 사진에서 붉은 영역으로 표시된 아웃라이너 창을 통해 확인할 수 있으며, 뷰포트에서 선택한 액터의 속성은 아웃라이너 창 아래에 위치한 디테일 창을 통해 볼 수 있음.

이름: 액터에 부여된 명칭. 같은 이름을 가질 수 있음.
유형: 게임플레이에서 수행할 액터의 역할. 프로그래밍 관점에서는 액터의 클래스 이름.
트랜스폼: 액터는 반드시 월드에 존재해야 하므로 항상 트랜스폼이 부여됨.
프로퍼티: 액터에 설정된 속성 값. 액터의 유형에 따라 서로 다른 속성이 제공됨. 속성 값을 디테일 창에서 편집하여 같은 유형의 액터가 서로 다른 일을 하게 만들 수 있음.
게임 로직: 액터가 특정 상황에 처했을 때 이에 대응할 구체적인 행동을 명령하는 프로그래밍 코드. 블루프린트와 C++이 있음.
레벨은 게임 개발 관점에서 플레이어에게 주어지는 스테이지를 의미함.
언리얼 엔진에서는 월드에 배치된 액터들의 집합을 의미함.
에디터 뷰포트 공간에서 액터를 만들고 속성을 설정하는 등의 행위는 플레이어에게 제공할 스테이지를 조립하는 일인데, 이러한 활동을 레벨을 설계한다고 표현함.
레벨을 완성한 후에는 레벨이 잘 동작하는지 테스트하는 과정이 필요함.
이를 위해 제공하는 기능이 플레이 버튼임.
플레이 버튼을 누르면 레벨을 구성하는 기존에 만들어진 액터와 플레이어와 관련된 새로운 액터들이 생성됨.
레벨을 구성하는 기존에 만들어진 액터는 흰색으로 표시되고,
새롭게 생성되는 액터는 노란색으로 표시됨.
아래 사진에서 붉은색 영역으로 표시된 부분이 플레이 버튼임.

액터의 주요 기능은 아래와 같은 세가지로 구분됨.
시각적 기능: 플레이어에게 어떻게 보여질 것인가?
물리적 기능: 액터의 이동과 액터들 간의 상호 동작을 어떻게 할 것인가?
움직임: 액터가 어떤 움직임을 가질 것인가?
액터의 역할에 따라 각 기능의 사용 여부가 결정됨.
플레이어가 특정 공간을 벗어나지 못하도록 하는 투명 벽의 경우 시각적 기능이 필요 없고,
플레이어가 땅 밑으로 떨어지지 않도록 하는 바닥의 경우 움직임 기능이 필요 없음.
이런 다양한 경우에 유연하게 대처할 수 있도록 언리얼 엔진은 액터의 세가지 기능을 독립적으로 규격화하고 액터의 종류에 따라 이들을 조합하는 방식으로 설계하였고, 이러한 규격화된 기능을 컴포넌트(Component)라고 함.
스태틱메시 컴포넌트(StaticMesh Component): 시각적인 기능과 물리적인 기능을 제공하는 모듈. 주로 배경 물체에 사용.
스켈레탈메시 컴포넌트(SkeletalMesh Component): 시각적인 기능과 애니메이션, 그리고 캐릭터의 물리 기능을 제공하는 모듈. 주로 캐릭터에 사용.
콜리전 컴포넌트(Collision Component): 구/박스/캡슐로 지정한 영역에 물리적인 기능을 설정하기 위해 제공하는 모듈. 시각적인 기능 없음.
카메라 컴포넌트(Camera Component): 가상 세계에서 보여지는 현재 상황을 플레이어의 모니터 화면에 출력해주는 기능.
오디오 컴포넌트(Audio Component): 가상 세계에서 소리를 발생시키는 데 사용하는 기능.
파티클 시스템 컴포넌트(Particle System Component): 파티클 시스템으로 설계된 이펙트를 화면에 출력해주는 기능.
라이트 컴포넌트(Light Component): 전구 등과 같이 물체에 광원 효과를 부여하는 기능.
무브먼트 컴포넌트(Movement Component): 물체에 특정한 움직임을 부여하는 기능.
액터에 속한 컴포넌트도 그 종류에 따라 독특한 속성을 가지며, 이는 디테일 창에서 확인할 수 있음. (아래 사진 참고)

하나의 액터는 여러 개의 컴포넌트를 가질 수 있음.
이때 이들을 대표하는 하나의 컴포넌트를 반드시 지정해야 하는데
이를 루트 컴포넌트라고 함.
본 게시글은 '이득우의 언리얼 C++ 게임 개발의 정석' 교재를 참고하여 정리하였음을 알립니다.
본 작성자는 저작권법을 준수하기 위해 최선을 다할 것입니다.
적법하지 않은 내용이 포함되어 있을 경우 작성자에게 알려주시면 시정하겠습니다.
향후 별도의 안내 없이 게시글 내용 일부 수정 혹은 비공개 조치될 수 있음에 양해의 말씀 드립니다.
즐겁게 읽었습니다. 유용한 정보 감사합니다.