본문 바로가기

언리얼C++게임개발/01.개발환경설정

[이득우C++게임개발] 예제 프로젝트의 준비

에픽게임즈 러처를 띄우고 언리얼엔진 마켓플레이스 에서 검색창에서 Infinity Grass 키워드로 Infinity Blade: Grass Lands 패키지를 찾는다.

작년에는 5.2 5.3을 지워하지 않아서 책을 덮었는데 이제 지원한다.  구매후 프로젝트에 추가 버튼을 클릭해 방금 생성한 ArenaBattle프로젝트를 클릭해 추가한다.

설치가 시작된다. 버전과 안 맞는다 이러면 문제인데 업그레이드 되어 잘된다.

설치가 끝나도 프로젝트에 추가가 보이는데 무시하고 언리얼에디터로 돌아간다.

컨텐트 드러워를 열면 InfinityBladeGrassLands폴더가 생겨있다.

Maps폴더의 ElvenRuins 레벨을 더블클릭해 로딩한다.

로딩하는데 1분정도 걸리는데 기다린다.

로딩이 종료되면 에디터 위쪽 가운데 플레이버튼을 클릭해 레벨을 탐색한다. 언리얼은 마우스로 화면을 한번 클릭해야 입력이 활성화된다. 이후 WASD키와 스페이스바 키를 사용해서 탐험이 가능하고  ESC키를 누르면 종료할 수 있다.

 

예제 레벨의 제작

에이콘출판사의 이득우 언리얼 C++ 게임개발의 정석 예제를 다운 받는다.

http://www.acornpub.co.kr/book/unreal-c#c

 

이득우의 언리얼 C++ 게임 개발의 정석

언리얼 엔진 학습에 목말라하는 게임 개발자에게 단비 같은 언리얼 엔진 프로그래밍 책이다.

www.acornpub.co.kr

다운 받은 폴더를 프로젝트와 다른 폴더내에 풀자. 언리얼은 엄청 민감하므로 함부로 폴더를 만져서는 안된다.

책에서는 아래폴더의 Book폴더 전체를 복사하라고 하는데 Books폴더를 Ctrl-C해서

컨텐트드로워를 열고 컨텐트폴더위를 우클릭후 Show in Explore를 클릭하면 탐색기가 열리고

예제의 Book폴더를 카피해서 복사해준다. 끌어다 놓으면 복사가 아니라 이동이 이루어진다.

컨텐트드로워를 확인해보면 Maps와 StaticMesh가 잘 복사되어 있다. 사실 이방법은 언리얼에서는 보증할 수 없는 방법이다. 책에도 나와있지만 리소스의 복사나 이동은 Migration기능을 사용해야한다. 혹시 복사후 반영이 안된다면 언리얼에디터를 끄고 비주얼스튜디어에서 삼각형을 눌러 다시 로딩한다.

에디터의 파일>새레벨을 클릭해 Default템플릿을 선택한다. 5.2는 Default가 없어서 Basic으로 했다.

Maps/StaticMesh폴더의 SM_SQUARE를 끌어다 뷰포트에 놓는다.

뭔가 건물이 보이고 오른쪽 아웃라이너에 SM_SQUARE 인스턴스이름이 보인다.

마우스 휠을 움직여 줌할 수 있는데 멀어지면 반응이 느려진다. Edit>EditPreference에서 Distance를 검색해 Use distance-scaled camera speed를 체크해준다

아웃라이너 아래 디테일 패널의 Transform을 보면 오른쪽 리셋버튼을 클릭해 초기화 해준다 리셋버튼이 사라진다.

아웃라이너나 뷰포트에서 Basic템플릿의 Floor를 선택한후 Del키로 지워준다.

아웃라이너에서 DirectionalLight를 선택하고 Transform밑의 Mobility를 Moval로 선택해 실시간으로 라이트를 계산해 라이트맵을 굽우라는 메시지를 안 나오게 한다. 보통은 퍼포먼스를 위해 라이트맵을 굽는게 일반적이다.

동일한 방법으로 아웃라이너의 SkyLight로 Moval로 변경한다.

플레이버튼을 클릭해 마네킹이 잘돌아다니는지 확인한다. 혹시 캐릭터가 만들어지자 마자 추락한다면 정지후 아웃라이너의 SM_SQARE를 더블클릭해서 보이게 하고 아웃라이너를 잘 보면 Player Start가 없다 화면 왼쪽 Place Actors창에서 Start를 검색해 Player Start를 끌어다 레벨에 배치해준다.

디테일의 Transform을 리셋후  Z위치를 200정도로 올려준다. 캐릭터가 무대에 묻히는걸 방지하기 위해서다

플레이 해보면 캐릭터가 중력에 의해 위에서 떨어지는게 보인다.

플레이후 마우스클릭후 WASD Space로 움직여 본다. ESC로 정지후

File>Save Current Level을 클릭후 브라우저에서 Book폴더로 이동후 우클릭후 New Folder를 만들어 Step1으로 이름을 바꿔준다. 하지만 우리는 이미 예제를 복사했기 때문에 Maps라는 폴더가 있고  step1이라는 레벨도 이미저장되어 있다. 따라서 폴더는 만들지 말고 Maps폴더안에 my_step1으로 저장해준다.

혹시 예제의 Step1확인을 위해 불러보자 우리가 지금 만든 레벨과 큰 차이가 없다. 다시 우리가 만든 my_step1을 불러보자 저장시의 뷰포트 앵글을 그대로 저장하고 있다. 마음에 들지 않는다면 카메라 앵글을 재조정하고 다시 저장한다.

이제 언리얼 로딩시 우리가 만든 레벨이 보이게 할것이다.

메뉴의 Edit>Project Settings에서 Maps&Modes탭을 선택해 Startup Map과 Default Map을 예제의 Step1으로 지정한다.