이번 에는 언리얼에서 스테이지를 제작할 때 알아야 할 핵심 개념인 프로젝트(Project), 월드(World), 레벨(Level), 액터(Actor)의 개념에 대해 알아보겠다. 새로운 맵에서 이를 진행해 볼 텐데, [파일 > 새레벨]을 선택한 후 Default 템플릿을 선택해 새로운 레벨을 생성하고 Step2라는 이름으로 Maps 폴더에 저장한다.
[그림] Default 템플릿
Default 템플릿은 썸네일 그림처럼 하늘과 10미터 크기의 바닥이 주어지는 기본 템플릿이다. 이 템플릿을 사용해 각각 개념에 대해서 살펴보자.
[프로젝트(Project)]
프로젝트는 현재 작업하는 게임의 전체 작업을 의미한다. 현재 작업하는 공간은 나중에 PC 버젼으로 나오게되면 exe 실행파일과 함께 사용자에게 전달되는 프로그램이 될 것이고, 안드로이드 버젼으로 나오게되면 apk 파일로 제작되고 마켓을 통해서 다운로드 받을 수 있게 될 것이다. 이렇게 최종 제품(Product)을 제작하기 위해 작업하는 모든 내용이 프로젝트(Project)가 되겠다. 프로젝트는 현재 작업중인 Lesson1이라는 폴더에 모든 정보가 저장되어 있다. 현재 작업하는 폴더를 통채로 압축해 동일한 언리얼 엔진 버젼이 설치된 다른 PC에 복사해 옮기면 여러분은 다른 PC에서도 작업을 계속할 수 있다.
[월드(World)]
게임에서 컨텐츠가 보이게하려면 최소 스테이지가 하나는 있어야 한다. 이 스테이지를 제작하기 위해 주어진 무한한 가상 공간이 월드(World)다. 새로운 맵을 만들 때마다 언리얼 엔진으로부터 독립적인 가상 세계가 하나 제공된다. 여기에 월드만의 다양한 설정을 할 수 있는데, 툴바의 [세팅 > 월드 세팅] 메뉴를 사용하면 새로운 윈도우를 통해 월드에만 적용되는 특별한 설정을 지정할 수 있다.
[그림] 월드 세팅 메뉴
월드 세팅 윈도우는 기본적으로 디테일 윈도우와 동일한 공간을 나누어 사용한다. 월드 세팅은 월드에 전체적으로 적용 가능한 다양한 설정을 지정할 수 있는데, 대표적인 기능들은 다음과 같다.
1. 대형 월드의 제작 가능 여부 ( Enable World Composition )
2. 길찾기 기능의 사용 여부
3. 현재 월드에 적용할 게임 모드의 지정 ( 차후 설명 )
4. 월드에 전체적으로 미치는 중력 설정
5. 라이트맵 설정
6. 시야 차폐에 상태에 따라 렌더링 대상을 걸러내는 오클루젼 컬링의 설정
7. 계층 LOD 의 설정
이 중에서 현재 프로젝트에 당장 필요한 기능은 없지만 월드 세팅의 중력 값만 조정해 결과를 한번 확인해 보겠다.
[그림] 월드 세팅에서 중력 값을 설정한 결과
Override란 기존 값을 덮어 쓰는 것을 의미한다. 기본적인 중력 값은 [세팅 > 프로젝트 세팅]에서 지정되어 있으며, Physics 메뉴에서 확인이 가능하다. 월드 세팅에서 중력 값을 Override 하지 않는다면 프로젝트 세팅에서 지정한 기본 값이 현재 월드에 반영된다.
[그림] 프로젝트 세팅의 기본 중력 값
중력 값을 Override하고 0으로 설정한 후, 플레이를 눌러서 점프를 하면 캐릭터가 무한히 공중으로 날아가는 것을 볼 수 있다.
캐릭터 공중 부양이 확인되면 Override 체크를 꺼서 다시 원래 상태로 되돌려 놓는다.
[액터(Actor)]
언리얼 엔진에서 액터는 월드에 존재하는 기본 물체 단위를 의미한다. 이 액터들은 우측 상단의 월드 아웃라이너 윈도우에서 관리된다. 편집 상태로 돌아가 보면 현재 월드에는 다섯개의 액터가 존재해 있다.
[그림] 현재 월드에 배치되어 있는 액터 목록
모든 액터는 현재 월드에서 식별 가능한 이름이 부여되며, 유형이 있어서 액터가 월드에서 수행해야 할 역할(Role)이 주어진다.
현재 월드에는 다섯 개의 액터에 각각 다섯 가지 역할이 부여되어 있다.
1. AtmosphericFog 유형 : 월드 전체적으로 시각적으로 안개 효과를 주는 역할을 수행한다.
2. StaticMeshActor 유형 : 모델링 데이터를 화면에 표시해주고 플레이어의 이동 경로를 막는 배경 물체의 역할을 수행한다.
3. DirectionalLight 유형 : 현재 월드에 빛을 공급해주는 태양과 같은 역할을 담당한다.
4. PlayerStart 유형 : 플레이를 누르면 플레이어가 처음 스폰되는 지점을 지정해준다.
5. BP_Sky_Sphere 유형 : 엄청 큰 구체로 구성되어 있으며, 스테이지를 둘러싸 현재 게임에서 하늘을 시뮬레이션 해주는 역할을 한다.
모든 액터는 반드시 월드 어딘가에 존재해야 하며, 어디에 존재하는지에 대한 정보는 트랜스폼(Transform)이라는 특별한 형식으로 저장된다. 트랜스폼은 위치 , 회전, 스케일의 세 가지 정보가 합쳐진 데이터를 의미한다.
[그림] 액터의 트랜스폼 정보. 트랜스폼이 없는 액터란 존재하지 않는다.
[레벨(Level)]
레벨이란 게임 플레이를 위해 게임 디자이너가 제작한 스테이지를 의미한다. 비유를 하자면 축구 게임을 만들 때, 스타디움, 골대, 축구 공등 다양한 배경과 소품이 있어야 게임을 시작할 수 있을텐데, 언리얼 엔진으로 이를 만든다면 축구 장 외관, 잔디밭, 축구공, 축구 골대는 모두 액터로 구성하면 된다. 게임 플레이를 위해서 제공되는 스테이지에 사용된 액터를 모두 합친 것을 언리얼 엔진에서는 레벨이라고 한다. 축구장에 관련된 액터들이 레벨이라고 보면 되며, 현재 우리 작업 공간에서 월드 아웃라이너에 보이는 다섯 가지 액터가 레벨이 된다.
우리가 에디터를 사용해 미리 만들어 놓은 레벨에서 플레이버튼을 누르면, 플레이어는 로그인 과정을 거쳐 언리얼 가상 월드에 들어와 우리가 작업하는 레벨의 PlayerStart 액터 위치에서 우리를 대신하는 가상 세계의 아바타(Avatar)를 스폰한다. 이 때 플레이어에 관련된 여러 액터가 추가로 생성되는데, 이들은 월드 아웃라이너에서 노란 색으로 표시되는 것을 볼 수 있다.
[그림] 플레이시 추가로 스폰되는 액터. 노란색으로 표시된다.
노란색으로 생성되는 추가적인 액터는 게임 플레이를 위해 제공되는 액터이며, 작업한 레벨과는 무관하다. 이들에 대한 내용은 이 후에 다룰 예정이다.
지금까지 언리얼 맵을 구성하는 주요 개념에 대해서 알아보았다. 프로젝트와 월드, 레벨, 액터의 관계는 다음과 같다고 정리할 수 있다.
[그림] 프로젝트, 월드, 레벨, 액터의 상관관계
앞으로 작업할 때 이 네 가지 용어에 대해 꼭 숙지하고 작업하자.
참고자료의 출처: http://cafe.naver.com/unrealenginekr/13013
댓글 없음:
댓글 쓰기