27.08.2015 Views

만들면서 배우는 언리얼 게임 프로그래밍-미리보기

횡 스크롤 액션 게임 + 타워 디펜스 TPS 액션 게임 오사와 료스케,이즈카 켄스케 공저/윤준 역 | 한빛미디어 | 2015년 05월 34,000원

횡 스크롤 액션 게임 + 타워 디펜스 TPS 액션 게임
오사와 료스케,이즈카 켄스케 공저/윤준 역 | 한빛미디어 | 2015년 05월
34,000원

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

www.hanbit.co.kr<br />

이것이<br />

<strong>프로그래밍</strong>이다!<br />

저자 직강 동영상 제공!<br />

이것이 안드로이드다<br />

이것이 C언어다<br />

이것이 자바다<br />

진정한 안드로이드 개발자로<br />

이끌어줍니다.<br />

SDK 5.0 롤리팝 호환!<br />

책만 보고,<br />

동영상 강좌로도 만족하지 못했다면 Daum<br />

카페 '슈퍼드로이드'에서 만나요<br />

cafe.daum.net/superdroid<br />

박성근 저 | 1,164쪽 | 45,000원<br />

세상에 없던 새로운<br />

C언어 입문서 탄생!<br />

삼성, LG에서 펼쳐졌던<br />

전설의 명강의를 풀타임 동영상 강좌로!<br />

이보다 더 확실한 방법은 없다, 칠판강의<br />

전체 동영상 강좌 유투브 전격 공개!<br />

http://goo.gl/tJK3Tu<br />

서현우 저 | 708쪽 | 25,000원<br />

가장 중요한 <strong>프로그래밍</strong> 언어를 하나<br />

배워야 한다면, 결론은 자바다!<br />

중급 개발자로 나아가기 위한 람다식,<br />

JavaFX, NIO 수록<br />

자바의 모든 것을 알려주는 인터넷 강의<br />

궁금한 것은 카페에서!<br />

cafe.naver.com/thisisjava<br />

신용권 저 | 1,224쪽 | 30,000원


www.hanbit.co.kr<br />

지금은<br />

모던 웹 시대!<br />

모던 웹 디자인을 위한<br />

HTML5 +<br />

CSS3 입문<br />

모던 웹을 위한<br />

JavaScript +<br />

jQuery 입문<br />

HTML5 분야 부동의 1위 도서<br />

HTML5 표준안 확정에 맞춘 완전 개정판의 귀환!<br />

HTML5 권고안과 최신 웹 브라우저 환경 대응<br />

윤인성 저 | 624쪽 | 30,000원<br />

자바스크립트에서 제이쿼리, 제이쿼리 모바일까지<br />

한 권으로 끝낸다!<br />

시대의 흐름에 맞춰 다시 쓴 자바스크립트 교과서<br />

윤인성 저 | 980쪽 | 32,000원<br />

모던 웹을 위한<br />

Node.js<br />

<strong>프로그래밍</strong><br />

HTML5 +<br />

CSS3 정복<br />

페이스북, 월마트, 링크드인은 왜<br />

Node.js를 선택했는가?<br />

이 물음에 대한 답은 Node.js가 보여주는 빠른 처리 능력 때문이다.<br />

윤인성 저 | 484쪽 | 25,000원<br />

필요한 것만 배워<br />

바로 현장에서 쓰는 HTML5<br />

순서대로 읽으며 실습할 수 있는 HTML5 자습서<br />

김상형 저 | 700쪽 | 32,000원


지은이 오사와 료스케 大 澤 涼 介<br />

치바현 출신. 중앙대 졸업 후 소프트웨어 개발 회사에 입사하여 임베디드 시스템 개발 등의 업무를 맡았다. 대학 시절부터 대표를 맡고 있는<br />

<strong>게임</strong> 개발 서클에서 끝없이 <strong>게임</strong> 개발에 몸을 던지고 있다.<br />

지은이 이즈카 켄스케 飯 塚 健 介<br />

교토 세이카대학 졸업 후, 대학 시절에 알게 된 오사와 료스케와 함께 끝없는 <strong>게임</strong> 개발에 몸을 던지고 있다.<br />

<strong>만들면서</strong> <strong>배우는</strong> <strong>언리얼</strong> <strong>게임</strong> <strong>프로그래밍</strong> :<br />

횡 스크롤 액션 <strong>게임</strong> + 타워 디펜스 TPS 액션 <strong>게임</strong><br />

초판발행 2015년 5월 1일<br />

지은이 오사와 료스케 大 澤 涼 介 , 이즈카 켄스케 飯 塚 健 介 / 옮긴이 윤준 / 펴낸이 김태헌<br />

펴낸곳 한빛미디어 (주) / 주소 서울시 마포구 양화로 7길 83 한빛미디어(주) IT출판부<br />

전화 02 – 325 – 5544 / 팩스 02 – 336 – 7124<br />

등록 1999년 6월 24일 제10 – 1779호 / ISBN 978 – 89 – 6848 – 195 – 6 93000<br />

총괄 배용석 / 책임편집 최현우 / 기획 최현우 / 편집 김철수<br />

디자인 표지 강은영, 내지 여동일<br />

영업 김형진, 김진불, 조유미 / 마케팅 박상용, 서은옥 / 제작 박성우<br />

이 책에 대한 의견이나 오탈자 및 잘못된 내용에 대한 수정 정보는 한빛미디어(주)의 홈페이지나 아래 이메일로<br />

알려주십시오. 잘못된 책은 구입하신 서점에서 교환해드립니다. 책값은 뒤표지에 표시되어 있습니다.<br />

한빛미디어 홈페이지 www.hanbit.co.kr / 이메일 ask@hanbit.co.kr<br />

Unreal Engineスマ-トフォン3D Unreal Engine 4 對 應<br />

(Unreal Engine SmartPhone 3D Game KaihatsuKouza : 3398-0)<br />

Copyright © 2014 by Ryosuke Osawa, Kensuke lizuka.<br />

Original Japanese edition published by SHOEISHA Co., Ltd.<br />

Korean translation rights arranged with SHOEISHA Co., Ltd. through Botong Agency.<br />

Korean translation copyright © 2015 by Hanbit Media, Inc,.<br />

이 책의 한국어판 저작권은 보통에이전시를 통한 저작권자와의 독점 계약으로 한빛미디어가 소유합니다.<br />

신 저작권법에 의하여 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단복제를 금합니다.<br />

지금 하지 않으면 할 수 없는 일이 있습니다.<br />

책으로 펴내고 싶은 아이디어나 원고를 메일 ( writer@hanbit.co.kr ) 로 보내주세요.<br />

한빛미디어(주)는 여러분의 소중한 경험과 지식을 기다리고 있습니다.


옮긴이의 말<br />

순순디자인(https://www.facebook.com/soonsoon.design)으로 유명한 『<strong>만들면서</strong> 배우<br />

는 유니티 <strong>게임</strong> <strong>프로그래밍</strong>』의 송용성 저자로부터 번역 제안을 받았습니다. <strong>언리얼</strong> 엔진에 대한<br />

입문서였습니다. 유니티 엔진은 다뤄봤지만 <strong>언리얼</strong> 엔진을 다뤄본 적이 없었습니다. <strong>언리얼</strong> 엔<br />

진하면 그저 바라볼 수밖에 없는 엄청나게 비싸고 뭔가 엄청난 걸 만들 때만 쓰는 그런 엔진이라<br />

는 선입견이 있어서 살짝 고민을 했습니다. ‘그래 이 참에 <strong>언리얼</strong> 엔진을 접해보자!’는 결론으로<br />

과감하게 번역을 맡게 되었습니다.<br />

<strong>언리얼</strong> 엔진을 설치 및 실행하고 에디터를 사용하면서 역시나 그 퀄리티에 놀랐습니다. 게다가<br />

유저의 사용성을 충분히 고려한 인터페이스와 상당한 한글화도 예사롭지 않았습니다. 예를 들어<br />

float를 ‘플로트’라고 한글화했는데, 처음에는 어색했지만 차츰 적응되었고 에픽<strong>게임</strong>즈의 노력<br />

을 엿볼 수 있는 계기가 되기도 했습니다. 참고로 말씀드리자면 <strong>언리얼</strong> 공식 문서 대부분은 한글<br />

화되어 있어서 이 책과 함께 좋은 학습 자료가 될 것입니다.<br />

번역을 시작할 당시에는 4.6.1 버전이었고 월 $19를 결제해야 했는데 어느 순간 무료로 풀리더<br />

니 지금은 4.7.4 버전이 배포되었습니다. 2014년부터 두 달에 한 번 정도 버전업하고 있어서 언<br />

리얼 엔진의 무한한 발전 가능성이 기대됩니다. 게다가 <strong>언리얼</strong> 커뮤니티에 가입하는 것만으로도<br />

GitHub를 통해서 에픽<strong>게임</strong>즈가 오랫동안 축적해온 <strong>게임</strong> 엔진 기술을 그대로 열람하고 커스텀<br />

화하여 사용할 수 있습니다. 따라서 지금이 <strong>언리얼</strong> 엔진을 공부할 가장 최적의 시기가 아닌가 합<br />

니다.<br />

사실 새로운 플랫폼을 접하게 되면 무엇을 먼저 해야 할지 막막하기 마련인데 이 책은 기본적<br />

인 UI부터 하나의 완성된 <strong>게임</strong>을 만들기까지 예제를 통해 찬찬히 따라해보도록 구성되어 있습<br />

니다. 더 심화 단계로 넘어가려면 기획, 디자인, 프로그래머 등 담당 업무에 맞게 엔진을 활용하<br />

는 방법에 대한 연구가 필요하겠지만, <strong>언리얼</strong> 엔진으로 <strong>게임</strong>을 만들 때 어떤 기능을 어떻게 활<br />

용해야 하는지에 대한 지침서로 부족함은 없을 겁니다. 따라서 이 책은 <strong>언리얼</strong> 엔진을 처음 접하<br />

는 분들에게 좋은 안내자가 될 겁니다.<br />

4


이 책을 번역하는 내내 고생하신 한빛미디어의 최현우 차장님과 이 책을 번역할 수 있도록 한<br />

빛미디어와 연결해준 송용성 저자에게 이 자리를 빌려 감사의 말을 전합니다. 그리고 프로젝트<br />

막바지에 함께 고생하고 있는 스타팀 성진 씨, 진욱 씨, 성만 씨, 이윤재 대리님, 성해 씨, 정숙<br />

씨, 길 수석님, 최 과장님 항상 감사합니다. 바쁜 일정 가운데 번역 일을 할 수 있도록 허락해주<br />

신 우동화 사장님께도 감사드립니다. 끝으로 항상 저의 마음에 안식을 주는 토기장이 식구들에<br />

게도 고마움을 전하고 싶습니다. 여기에 다 쓰지는 못하지만 제 주변에서 항상 저를 도와주시는<br />

모든 분께 감사를 드립니다.<br />

윤준<br />

옮긴이 윤준 junyun0516@gmail.com<br />

숭실대 미디어 학부를 졸업하고 동 대학원 모바일 랩에서 미디어 공학을 전공했다. 2007년부터<br />

.NET과 사용자를 생각하는 UI/UX에 관심을 가졌다. 현재는 스마트폰 <strong>게임</strong> 클라이언트 프로그<br />

래머로서 코코스2d-x와 유니티 3D를 다루고 있다. 웹 컨퍼런스 CSS Nite in Seoul(http://<br />

www.cssniteseoul.com)에서는 일본어 통역을 하며 웹을 공부하고 재능을 나누고 있다. 어<br />

느 날 갑자기 하모니카에 심취해 주말엔 청계천에서 하모니카를 불며 여가생활을 즐기고 있다.<br />

역서로는 『사전처럼 바로 찾아 쓰는 HTML5 핵심 API』(한빛미디어, 2011)가 있다.<br />

5


지은이의 말<br />

에픽<strong>게임</strong>즈에서 제공하는 <strong>언리얼</strong> 엔진 4는 PC, 모바일, 상용제품 등 다양한 플랫폼에서 <strong>게임</strong><br />

개발을 지원하는 차세대 <strong>게임</strong> 통합 개발 환경입니다. 2014년 3월에 월 정액 지불로 제공되기<br />

시작하여 높은 생산성과 기능성, 영상 표현력으로 지금은 개인부터 기업까지 많은 사람들에게<br />

주목받고 있습니다.<br />

<strong>언리얼</strong> 엔진 4는 블루프린트라는 비주얼 스크립팅 언어가 탑재되어 기존의 <strong>프로그래밍</strong> 지식이<br />

필요했던 개발 방식에서 코드 한 줄 없이 구현할 수 있게 되었습니다. 블루프린트를 사용하여<br />

애니메이션, 맵, <strong>게임</strong>시스템 등을 직관적으로 만들 수 있기 때문에 <strong>게임</strong>을 더 쉽고 빠르게 개발<br />

할 수 있습니다. 물론 물리 기반의 머티리얼이나 동적 라이팅 시스템을 탑재한 업계 최고의 그<br />

래픽도 매력 중 하나입니다.<br />

또한 월 사용료를 지불하면 <strong>게임</strong> 엔진 소스 코드도 받아 볼 수 있기 때문에 개인일지라도 <strong>게임</strong><br />

엔진을 직접 변경하여 사용할 수 있습니다. 1<br />

이 책에서는 에디터 사용법부터 시작하여 블루프린트를 사용하여 실제로 <strong>게임</strong>을 만드는 것까<br />

지를 설명하고 있습니다. 1~6장에서는 엔진의 설치 방법이나 조작 방법, 기능을 중심으로 소<br />

개하고 있습니다.<br />

7~8장에서는 사용자 캐릭터 모델을 불러와서 애니메이션과 동작을 설정하여 <strong>게임</strong> 제작에 필<br />

요한 콘텐츠를 만드는 방법을 설명합니다. 9~12장에서는 본격적인 <strong>게임</strong>을 만드는 방법과 게<br />

임을 배포하기 위한 패키징 방법을 설명하고 있습니다.<br />

마지막으로 이 책에서 사용되는 모델을 만들어주신 노기오 씨와 EIZI 씨, 집필 중 많이 도와주<br />

신 편집자 미야코 씨, 그 외 협조해주신 여러분께 이 자리를 빌려 깊이 감사드립니다.<br />

2014년 8월 길일<br />

오사와 료스케, 이즈카 켄스케<br />

1 역주_ 2015년 4월 현재 무료로 <strong>게임</strong> 엔진 소스 코드를 받아보실 수 있습니다.<br />

6


이 책의 캐릭터 소개<br />

이 책에서 만들 3D <strong>게임</strong>에 등장하는 캐릭터 설정에 관한 디자이너, 모델러 분들의 의견을 소개<br />

합니다.<br />

GPGS-MF326<br />

M.I.A(기계소녀)<br />

디자인: 노기오<br />

모델링: EIZI<br />

이름 M.I.A(미아)<br />

신장 148cm(외장 제외)<br />

무게 보기보다 무겁다.<br />

무기 레이저건,<br />

레이저블레이드<br />

속도 나름 빠르다.<br />

음량 허스키한 목소리<br />

EIZI의 말<br />

<strong>언리얼</strong> 엔진 4에서 제공하는 빠르고 아름다운 그래픽 처리가<br />

적용된 캐릭터가 움직이다니, 정말 훌륭하네요. 감사합니다.<br />

노기오의 말<br />

두 저자로부터 ‘로봇 소녀, 가변 흉부’라는 주문을 받고 디자인하였습니다(가슴 크기 가변이라<br />

는 설정은 제외된 것 같습니다). 콘셉트는 ‘보는 각도에 따라서 노출도가 다르게 보인다’, ‘가슴<br />

의 떨림이 반영된다’, ‘남자의 로망’입니다. 초기 설정에는 가면이 없었습니다. 나중에 제가 마<br />

음대로 추가한 것입니다.<br />

처음으로 저 자신이 아닌 다른 사람이 모델링한다는 것을 염두에 두고 디자인했기 때문에 여러<br />

가지로 신선한 경험이었습니다. 간단한 스케치 외에 3면도나 세부 설정 등도 그렸습니다.<br />

7


무기<br />

윙~<br />

스톡이 늘어난다.<br />

이 부근이 총구<br />

(렌즈?)<br />

블레이드<br />

프리즘<br />

탄창 같은 느낌<br />

레이저포인터<br />

뺄 수 있다.<br />

갈래머리<br />

포니테일<br />

로우테일<br />

단발머리<br />

8


GETAX-12<br />

GAT-BBIT<br />

(가트비트)<br />

이름 GAT-BBIT(가트비트)<br />

무기 체인건 2문<br />

속도 그다지 빠르지 않다.<br />

GETAX-2<br />

SPAR-TLE<br />

(스파틀)<br />

이름 SPAR -TLE(스파틀)<br />

무기 전기 공격<br />

속도 상당히 빠른 편이다.<br />

디자인: 노기오<br />

모델링: 노기오<br />

디자인: 노기오<br />

모델링: 노기오<br />

노기오의 말<br />

EIZI가 M.I.A를 모델링하는 사이에 이 둘을 마무리 짓기로 하고 저비용 모델링이 가능한 디자<br />

인을 시도해보았습니다. 스파틀 쪽 아이디어가 먼저 떠올라 둥근 모양으로 완성하고 나서 ‘나머<br />

지 하나는 각진 느낌으로 가볼까?’라는 생각으로 가트비트를 디자인했습니다. 원반이나 상자 모<br />

양으로 변신할 것처럼 보이지만 사실은 그렇지도 않다는 것이 포인트입니다.<br />

삐직 삐직<br />

부웅~<br />

짜잔<br />

▲ 가트비트 디자인<br />

▲ 스파틀 디자인<br />

9


이 책에 대하여<br />

이 책의 특징<br />

이 책에서 사용하는 스마트폰용 3D <strong>게임</strong> 예제는 <strong>언리얼</strong> 엔진을 사용합니다. 차근차근 따라하<br />

면 아이폰과 안드로이드용 3D <strong>게임</strong>을 <strong>만들면서</strong> 자연스럽게 <strong>언리얼</strong> 엔진 사용법과 3D <strong>게임</strong> 개<br />

발 방법을 터득하게 될 겁니다. 그 과정에서 아이폰과 안드로이드폰 <strong>게임</strong> 개발 기술도 배우게<br />

됩니다.<br />

이 책의 구성<br />

● 1~3장에서는 <strong>언리얼</strong> 엔진의 기본 조작에 관해서 설명합니다.<br />

● 4~5장에서는 콘텐츠의 임포트와 애셋의 등록을 설명합니다.<br />

● 6장에서는 C++의 기본을 설명합니다.<br />

● 7~8장에서는 캐릭터의 설정과 무기를 만드는 방법을 설명합니다.<br />

● 9~10장에서는 본격적으로 3D <strong>게임</strong>을 만드는 방법을 설명합니다.<br />

● 11장에서는 메뉴 화면을 만드는 방법을 설명합니다.<br />

● 12장에서는 <strong>게임</strong>의 패키징을 설명합니다.<br />

각 장을 쭉 읽어나가는 것만으로도 스마트폰 3D <strong>게임</strong>을 만들 수 있습니다.<br />

예제 파일의 구성<br />

이 책에서는 해당 장에서 사용하는 예제 파일을 한빛미디어 웹사이트에서 내려받아 사용할 수<br />

있습니다. 필요한 파일을 제때에 사용할 수 있도록 PC의 하드 디스크에 미리 복사해두십시오.<br />

<strong>언리얼</strong> 엔진 4는 에픽<strong>게임</strong>즈 Epic Games 의 사이트에서 내려받을 수 있습니다. 내려받기와 설치 방<br />

법은 1장에서 설명합니다.<br />

10


● 예제 다운로드 사이트<br />

URL www.hanbit.co.kr/exam/2195<br />

● <strong>언리얼</strong> 엔진 4 다운로드 사이트<br />

URL https://www.unrealengine.com/ko/<br />

예제에 대하여<br />

이 책의 예제는 <strong>언리얼</strong> 엔진 4.7에서 동작을 확인했습니다. 제공하는 예제의 구동에 문제가 없<br />

지만 만에 하나 예제 파일을 사용한 결과로 발생하는 피해에 대해 저자, 역자, 상영사, 한빛미디<br />

어는 어떠한 책임도 지지 않습니다.<br />

개발 환경<br />

2015년 3월 시점의 <strong>언리얼</strong> 엔진 4.7의 추천 개발 환경은 아래와 같습니다.<br />

● 데스크톱 PC 또는 Mac<br />

● 윈도우 7 64비트 또는 Mac OS X 10.9.2 이상<br />

● 쿼드코어 인텔 또는 AMD 프로세서. 클록 주파수 2.5GHz 이상<br />

● NVIDIA GeForce 470 GTX 또는 AMD Radeon 6870 HD 시리즈 이상의 그래픽 카드<br />

● 8GB의 RAM<br />

Mac OS 환경에서의 사용 설명 및 예제 검증에 대하여<br />

이 책은 윈도우 환경을 기준으로 설명합니다. Mac OS 환경에서는 다소 차이가 있을 수 있습<br />

니다.<br />

주식회사 상영사 편집부<br />

11


<strong>게임</strong> 엔진의 발전과 <strong>언리얼</strong> 엔진 4<br />

차세대 <strong>게임</strong> 엔진으로 <strong>언리얼</strong> 엔진 4가 주목받고 있습니다. 여기서는 <strong>게임</strong> 엔진의 개요와 발전<br />

에 대해 설명하며, 이 책에서 다루는 <strong>언리얼</strong> 엔진 4와 <strong>게임</strong> 엔진의 관계에 관해 설명합니다.<br />

<strong>게임</strong> 엔진이란?<br />

<strong>게임</strong> 엔진은 <strong>게임</strong>을 개발할 때 공통으로 사용되는 그래픽 처리, 스크립트 처리, 모션 처리, 사<br />

운드 프로세싱, 물리 연산, 통신, 인터페이스 등의 처리를 일반화하여 효율적으로 <strong>게임</strong> 개발을<br />

할 수 있게 도와주는 소프트웨어입니다.<br />

<strong>게임</strong> 엔진의 발전<br />

세계 최초로 외부로 제공된 <strong>게임</strong> 엔진은 ‘둠’, ‘둠 2’에서 사용된 둠 엔진 Doom Engine (id Tech 1)<br />

입니다. 둠 엔진은 헥센 HEXEN , 스트라이프 Strife , 첵스 퀘스트 Chex Quest 등의 <strong>게임</strong>에서 사용되었으<br />

며 둠 엔진에서 진화한 퀘이크 엔진 Quake Engine 과 함께 이후 다양한 <strong>게임</strong> 엔진에 영향을 주었습<br />

니다.<br />

FPS First Person Shooter 를 중심으로 사용이 확대된 <strong>게임</strong> 엔진은 <strong>게임</strong> 개발이 점점 복잡해지고 고도화<br />

되어 감에 따라 다양한 장르의 <strong>게임</strong>에서 사용되었습니다. 이제는 <strong>게임</strong> 개발에 있어 <strong>게임</strong> 엔진의<br />

사용은 보편화되었습니다.<br />

스마트폰 보급과 인디 개발자의 증가<br />

스마트폰의 보급과 함께 모바일 <strong>게임</strong> 시장이 급속히 확대되고 있습니다. 모바일 <strong>게임</strong>의 대부분<br />

은 개인이나 소규모 개발 회사 등 인디 개발자에 의해 개발되고 있으며, 모바일 <strong>게임</strong> 시장의 확<br />

대에 따라 인디 개발자도 증가하고 있습니다.<br />

12


이러한 배경에서 인디 개발자를 위한 저렴한 <strong>게임</strong> 엔진이 차례로 등장했습니다. <strong>언리얼</strong> 엔진 4<br />

의 전신인 UDK Unreal Development Kit 도 그중 하나로, <strong>언리얼</strong> 엔진 3 무료 버전과 함께 자리매김하<br />

고 있습니다.<br />

<strong>언리얼</strong> 엔진 4는 <strong>언리얼</strong> 엔진 3의 차세대 <strong>게임</strong> 엔진이며, 높은 그래픽과 강화된 비주얼 스크립<br />

팅 기능을 제공합니다.<br />

또한 무료 버전과 기업용이라는 구별이 없어져서 일반 사용자도 기업과 같은 기능으로 동등한<br />

수준의 <strong>게임</strong>을 개발할 수 있습니다. 게다가 지금까지 일반 사용자에게 공개되지 않았던 <strong>게임</strong><br />

엔진의 소스 코드가 공개되어 일반 사용자도 엔진을 수정할 수 있습니다.<br />

◀ 엘레멘탈 데모<br />

◀ <strong>언리얼</strong> 엔진 4 예제 <strong>게임</strong><br />

13


<strong>언리얼</strong> 엔진이란?<br />

<strong>언리얼</strong> 엔진은 에픽<strong>게임</strong>즈에서 개발한 <strong>게임</strong> 엔진입니다. 1998년에 개<br />

발된 이래로 ‘<strong>언리얼</strong>’, ‘<strong>언리얼</strong> 토너먼트’, ‘기어스 오브 워’ 시리즈와 ‘바<br />

이오 쇼크’, ‘미러스 엣지’, ‘스플린터 셀’ 시리즈, ‘로스트 오디세이’, ‘라<br />

스트 렘넌트’ 등 수백 종 이상의 <strong>게임</strong>에 사용되었습니다. 또한 8회의<br />

<strong>게임</strong> 개발자 프런트라인상과 5회의 디벨롭 인더스트리 엑설런스상 수<br />

상을 포함하여 20회 이상의 기술상을 수상했습니다. 『<strong>게임</strong> 개발자 Game<br />

Developer<br />

』지의 프런트라인상에서는 명예의 전당에 이름을 올렸습니다.<br />

▲ <strong>언리얼</strong> 엔진 4 로고<br />

<strong>언리얼</strong> 엔진 4와 관련된 공식 사이트<br />

<strong>언리얼</strong> 엔진의 공식 사이트에서는 계정 등록이나 <strong>언리얼</strong> 엔진으로 만들어진 작품을 볼 수 있습<br />

니다. 또한 <strong>언리얼</strong> 엔진 4 개발자를 위한 다양한 정보도 제공합니다. <strong>언리얼</strong> 엔진 4의 공식 포<br />

럼인 UE4 Answer Hub에는 영어 정보가 많긴 하지만 <strong>언리얼</strong> 엔진 4에 대한 기술적인 질문<br />

과 대답이 활발히 이뤄지고 있습니다. 물론 스스로 질문을 하여 전 세계의 <strong>언리얼</strong> 엔진 4 사용<br />

자로부터 도움을 얻을 수도 있습니다.<br />

◀ <strong>언리얼</strong> 엔진 공식 사이트<br />

URL http://www.unrealengine.com/ko/<br />

14


◀ <strong>언리얼</strong> 엔진 공식 문서<br />

URL https://docs.unrealengine.com/latest/KOR/index.html<br />

◀ UE4 Answer Hub<br />

URL https://answers.unrealengine.com/<br />

◀ <strong>언리얼</strong> 엔진 4 위키<br />

URL https://wiki.unrealengine.com/Main_Page<br />

15


CONTENTS<br />

옮긴이의 말 .................................................................................................................... 4<br />

지은이의 말 .................................................................................................................... 6<br />

이 책의 캐릭터 소개 ......................................................................................................... 7<br />

이 책에 대하여 .............................................................................................................. 10<br />

<strong>게임</strong> 엔진의 발전과 <strong>언리얼</strong> 엔진 4 .................................................................................... 12<br />

CHAPTER 1 <strong>언리얼</strong> 엔진 개발 환경 준비<br />

1.1 <strong>언리얼</strong> 엔진 계정 등록과 설치 .......................................................................................... 26<br />

1.1.1 계정 등록 ........................................................................................................... 26<br />

1.1.2 <strong>언리얼</strong> 엔진 설치 ................................................................................................ 28<br />

1.2 비주얼 스튜디오 설치 ..................................................................................................... 29<br />

1.2.1 설치 파일 다운로드 및 설치 ................................................................................ 30<br />

1.2.2 비주얼 스튜디오를 <strong>언리얼</strong> 엔진용으로 설정하기 ................................................... 31<br />

1.3 예제 파일 실행하기 ........................................................................................................ 34<br />

1.3.1 슈팅 <strong>게임</strong> 플레이하기 ......................................................................................... 34<br />

CHAPTER 2 <strong>언리얼</strong> 에디터의 UI와 기본 조작<br />

2.1 에디터 실행 .................................................................................................................. 40<br />

2.1.1 실행하기 ............................................................................................................ 40<br />

2.2 에디터의 화면 구성 ........................................................................................................ 41<br />

2.2.1 레벨 에디터의 화면 구성 ..................................................................................... 41<br />

2.3 에디터 다루기 ............................................................................................................... 46<br />

2.3.1 새로운 레벨 만들기 ............................................................................................ 46<br />

2.3.2 레벨과 액터에 대하여 ......................................................................................... 52<br />

2.4 변환 도구 사용하기 ........................................................................................................ 53<br />

16


CHAPTER 3 레벨 에디터의 기능<br />

3.1 콘텐츠 브라우저의 활용 .................................................................................................. 60<br />

3.1.1 애셋 배치하기 .................................................................................................... 60<br />

3.1.2 콘텐츠 브라우저의 화면 구성 .............................................................................. 64<br />

3.1.3 스태틱 메시 ....................................................................................................... 65<br />

3.1.4 머티리얼 ............................................................................................................ 65<br />

3.1.5 선택한 메시의 머티리얼 확인하기 ........................................................................ 66<br />

3.2 지오메트리 브러시 사용법 ............................................................................................... 67<br />

3.2.1 지오메트리 브러시로 건물 만들기 ........................................................................ 67<br />

3.2.2 지오메트리 브러시에 대하여 ................................................................................ 78<br />

3.2.3 배치한 지오메트리 브러시의 타입 변경하기 .......................................................... 78<br />

3.3 레벨에 필요한 액터 배치하기 ........................................................................................... 81<br />

3.3.1 레벨에 필요한 액터 배치하기 .............................................................................. 81<br />

3.3.2 레벨에 필요한 액터 ............................................................................................ 87<br />

3.3.3 볼륨 .................................................................................................................. 91<br />

3.3.4 브러시 컨버팅 .................................................................................................... 91<br />

3.3.5 Lightmass Importance Volume ......................................................................... 91<br />

CHAPTER 4 임포트와 애셋 만들기<br />

4.1 3D 모델 임포트하기(스태틱 메시편) .................................................................................. 96<br />

4.1.1 OBJ 파일 임포트 ............................................................................................... 96<br />

4.2 3D 모델 임포트하기(스켈레탈 메시편) ............................................................................. 105<br />

4.2.1 FBX 파일 임포트 .............................................................................................. 105<br />

4.2.2 애셋에 대하여 .................................................................................................. 113<br />

4.2.3 애셋의 프로젝트 간 이동 ................................................................................... 114<br />

17


CONTENTS<br />

4.2.4 애셋을 다시 임포트하는 방법(1) ........................................................................ 115<br />

4.2.5 애셋을 다시 임포트하는 방법(2) ........................................................................ 115<br />

4.2.6 머티리얼 에디터의 화면 구성 ............................................................................ 116<br />

4.2.7 노드의 중간 과정 <strong>미리보기</strong> ................................................................................ 117<br />

4.2.8 노드의 중간 과정을 <strong>미리보기</strong> 화면에서 확인하기 ................................................ 117<br />

4.2.9 <strong>언리얼</strong> 엔진에서 이용할 수 있는 머티리얼 입력값 ............................................... 118<br />

4.3 파티클 만들기 ............................................................................................................. 122<br />

4.3.1 모래먼지 만들기 ............................................................................................... 122<br />

4.4 효과음 만들기 ............................................................................................................. 133<br />

4.4.1 <strong>게임</strong>에서 사용 가능한 사운드 만들기 ................................................................. 133<br />

4.5 파티클과 효과음 설정하기 ............................................................................................. 137<br />

4.5.1 파티클과 효과음을 설정하기 .............................................................................. 137<br />

4.5.2 파티클로 할 수 있는 것들 .................................................................................. 143<br />

CHAPTER 5 블루프린트<br />

5.1 블루프린트 소개 .......................................................................................................... 146<br />

5.1.1 블루프린트 알아보기 ........................................................................................ 146<br />

5.1.2 기본적인 블루프린트 종류 ................................................................................. 147<br />

5.2 클래스 블루프린트로 간단한 <strong>게임</strong> 만들기 ......................................................................... 148<br />

5.2.1 클래스 블루프린트로 <strong>게임</strong> 만들기 ...................................................................... 148<br />

5.2.2 블루프린트를 이용할 때 도움이 되는 정보 .......................................................... 157<br />

5.3 레벨 블루프린트와 연결하기 .......................................................................................... 158<br />

5.3.1 튜토리얼 <strong>게임</strong> 만들기 ....................................................................................... 158<br />

5.3.2 블루프린트에서 사용할 수 있는 기능 ................................................................. 166<br />

5.3.3 그래프에서의 기본적인 조작 .............................................................................. 171<br />

5.3.4 그래프 모드에서 이용할 수 있는 요소 ................................................................ 172<br />

5.4 기본적인 노드의 종류 ................................................................................................... 177<br />

18


5.4.1 블루프린트에서 사용할 수 있는 노드의 종류 ....................................................... 177<br />

5.5 블루프린트 그래프로 간단한 디버깅하기 .......................................................................... 179<br />

5.5.1 디버깅하기 ....................................................................................................... 179<br />

CHAPTER 6 <strong>언리얼</strong> 엔진의 기본적인 C++<br />

6.1 C++로 클래스 만들기 ................................................................................................... 184<br />

6.1.1 클래스 직접 만들기 .......................................................................................... 184<br />

6.1.2 블루프린트와 C++ ........................................................................................... 186<br />

6.1.3 빌트인 클래스에 대하여 .................................................................................... 187<br />

6.2 C++로 멤버 함수와 변수 만들기 ..................................................................................... 189<br />

6.2.1 자체 함수 추가하기 .......................................................................................... 189<br />

6.2.2 <strong>언리얼</strong> 엔진에서 쓰이는 매크로 ......................................................................... 193<br />

6.2.3 <strong>언리얼</strong> 엔진에서 쓰이는 자료형 ......................................................................... 196<br />

CHAPTER 7 캐릭터 만들기<br />

7.1 사용자가 조작할 수 있는 캐릭터 만들기 ........................................................................... 200<br />

7.1.1 프로젝트 준비하기 ............................................................................................ 200<br />

7.1.2 캐릭터 만들기와 설정 ....................................................................................... 203<br />

7.1.3 노드에 대하여 .................................................................................................. 212<br />

7.2 캐릭터를 <strong>게임</strong> 안에 나타나게 하기 .................................................................................. 216<br />

7.2.1 캐릭터 설정하기 ............................................................................................... 216<br />

7.2.2 GameMode 클래스에 대하여 ........................................................................... 220<br />

7.3 캐릭터 애니메이션 설정하기 .......................................................................................... 221<br />

7.3.1 캐릭터용 애니메이션 설정하기 .......................................................................... 221<br />

7.3.2 애니메이션 설정에 대하여 ................................................................................. 235<br />

19


CONTENTS<br />

CHAPTER 8 무기 만들기<br />

8.1 프로젝트 설정하기 ....................................................................................................... 238<br />

8.1.1 프로젝트 준비하기 ............................................................................................ 238<br />

8.2 애셋 준비하기 ............................................................................................................. 241<br />

8.2.1 애셋 설정하기 .................................................................................................. 241<br />

8.3 발사체 만들기 ............................................................................................................. 246<br />

8.3.1 Projectile 클래스 만들기 ................................................................................... 246<br />

8.4 사격 공격 구현하기 ...................................................................................................... 253<br />

8.4.1 사격 애니메이션 설정하기 ................................................................................. 253<br />

8.4.2 블루프린트 편집하기 ........................................................................................ 254<br />

8.5 근접 공격 구현하기 ...................................................................................................... 262<br />

8.5.1 캐릭터의 근접 공격 설정하기 ............................................................................ 262<br />

8.5.2 루트 모션이란? ................................................................................................ 263<br />

8.5.3 루트 모션 설정하기 .......................................................................................... 263<br />

8.5.4 블루프린트 편집하기 ........................................................................................ 265<br />

8.6 콤보 공격 구현하기 ...................................................................................................... 273<br />

8.6.1 애니메이션 몽타주 만들기 ................................................................................. 273<br />

8.6.2 캐릭터의 블루프린트 편집하기 .......................................................................... 277<br />

8.6.3 애니메이션 블루프린트 편집하기 ....................................................................... 281<br />

8.6.4 애니메이션 몽타주에서 이용할 수 있는 기능 ....................................................... 285<br />

8.7 캐릭터의 체력 설정하기 ................................................................................................ 286<br />

8.7.1 체력을 가진 액터 만들기 ................................................................................... 286<br />

8.7.2 콜리전 설정에 대하여 ....................................................................................... 291<br />

20


CHAPTER 9 횡스크롤 액션 <strong>게임</strong> 만들기<br />

9.1 프로젝트 만들기 .......................................................................................................... 294<br />

9.1.1 <strong>게임</strong> 프로젝트 준비하기 .................................................................................... 294<br />

9.1.2 가상패드 조작에 대하여 .................................................................................... 297<br />

9.1.3 모바일 환경에서의 가상패드 .............................................................................. 298<br />

9.2 최고 점수를 기록하는 블루프린트 만들기 ......................................................................... 298<br />

9.2.1 블루프린트 만들기 ............................................................................................ 298<br />

9.2.2 SaveGame 블루프린트에 대하여 ...................................................................... 300<br />

9.3 <strong>게임</strong> 클리어 조건과 실패 조건 설정하기 ........................................................................... 300<br />

9.3.1 블루프린트 만들기 ............................................................................................ 300<br />

9.3.2 SaveGame 블루프린트로 보관된 변수의 저장 장소 ............................................ 307<br />

9.4 공통 캐릭터 클래스 만들기 ............................................................................................ 307<br />

9.4.1 기본 캐릭터 만들기 .......................................................................................... 307<br />

9.5 플레이어 캐릭터 만들기 ................................................................................................ 310<br />

9.6 적 캐릭터 만들기 ......................................................................................................... 316<br />

9.7 이동하는 바닥 만들기 ................................................................................................... 322<br />

9.8 추락 필드 설정하기 ...................................................................................................... 328<br />

9.9 회복 아이템 만들기 ...................................................................................................... 330<br />

9.10 HUD 만들기 ............................................................................................................ 333<br />

9.10.1 HUD 만들기 ................................................................................................ 334<br />

9.10.2 HUD에서 사용할 수 있는 노드 ..................................................................... 339<br />

9.11 맵 만들기와 <strong>게임</strong> 설정 ................................................................................................ 341<br />

21


CONTENTS<br />

CHAPTER 10 TPS 액션 타워 디펜스 <strong>게임</strong> 만들기<br />

10.1 <strong>게임</strong> 기획하기 .......................................................................................................... 348<br />

10.1.1 <strong>게임</strong> 사양 정하기 ......................................................................................... 348<br />

10.2 맵 만들기 ................................................................................................................ 350<br />

10.2.1 맵 만들기 .................................................................................................... 350<br />

10.2.2 내비 메시에 대하여 ...................................................................................... 354<br />

10.3 <strong>게임</strong>을 만들기 위한 사전 준비 ...................................................................................... 356<br />

10.3.1 팀을 구별하기 위한 열거형 만들기 ................................................................ 356<br />

10.3.2 인터페이스 만들기 ....................................................................................... 357<br />

10.3.3 매크로 라이브러리 만들기 ............................................................................ 358<br />

10.3.4 함수 라이브러리 추가하기 ............................................................................ 360<br />

10.3.5 블루프린트 인터페이스에 대하여 .................................................................. 361<br />

10.3.6 블루프린트 라이브러리에 대하여 .................................................................. 361<br />

10.4 공통 클래스 만들기 .................................................................................................... 362<br />

10.4.1 총알의 기저 클래스 만들기 ........................................................................... 362<br />

10.4.2 캐릭터의 기저 클래스 만들기 ........................................................................ 365<br />

10.4.3 부모 클래스(기저 클래스)에 대하여 ............................................................... 369<br />

10.4.4 총알의 콜리전 .............................................................................................. 369<br />

10.5 플레이어 캐릭터 만들기 .............................................................................................. 370<br />

10.5.1 플레이어 캐릭터 만들기 ............................................................................... 370<br />

10.5.2 플레이어 캐릭터 클래스 설정하기(1) ............................................................. 372<br />

10.5.3 플레이어용 총알 클래스 만들기 .................................................................... 375<br />

10.5.4 플레이어 캐릭터 클래스 설정하기(2) ............................................................. 376<br />

10.5.5 착탄점 계산 ................................................................................................. 379<br />

10.6 제단 만들기 ............................................................................................................. 380<br />

10.6.1 제단 만들기 ................................................................................................. 380<br />

10.6.2 제단 클래스 만들기 ...................................................................................... 380<br />

22


10.6.3 <strong>게임</strong> 모드 클래스 설정하기 ........................................................................... 386<br />

10.7 적 만들기 ................................................................................................................ 387<br />

10.7.1 적 만들기 .................................................................................................... 387<br />

10.7.2 적의 공통 클래스 만들기 .............................................................................. 387<br />

10.7.3 적의 총알 클래스 만들기 .............................................................................. 395<br />

10.7.4 적1(가트비트)의 클래스 만들기 ..................................................................... 396<br />

10.7.5 적1(가트비트)의 클래스에 함수 추가하기 ....................................................... 400<br />

10.7.6 적2(스파틀)의 클래스 만들기 ......................................................................... 401<br />

10.7.7 내비게이션에 의한 경로 탐색 ........................................................................ 409<br />

10.8 HUD 만들기 ............................................................................................................ 411<br />

10.8.1 HUD 만들기 ................................................................................................ 411<br />

10.8.2 HUD용 애셋 만들기 ..................................................................................... 411<br />

10.8.3 HUD 클래스 만들기 ..................................................................................... 415<br />

10.8.4 HUD에서 메시지 표시하기 ........................................................................... 421<br />

10.9 <strong>게임</strong> 로직 만들기 ....................................................................................................... 422<br />

10.9.1 <strong>게임</strong> 로직 만들기 ......................................................................................... 422<br />

10.9.2 <strong>게임</strong> 모드 클래스의 이벤트 호출하기 ............................................................. 429<br />

10.9.3 레벨에 배치된 액터 참조하기 ........................................................................ 431<br />

CHAPTER 11 메뉴 화면 만들기<br />

11.1 메뉴 아이템 만들기 .................................................................................................... 434<br />

11.1.1 메뉴 아이템 만들기 ...................................................................................... 434<br />

11.1.2 클래스와 애셋 준비하기 ............................................................................... 434<br />

11.1.3 메뉴 아이템 클래스 만들기 ........................................................................... 437<br />

11.1.4 <strong>언리얼</strong> 엔진에서 GUI를 만드는 방법 ............................................................. 441<br />

11.1.5 이벤트 디스패처에 대하여 ............................................................................ 442<br />

23


CONTENTS<br />

11.2 메뉴 만들기 ............................................................................................................. 443<br />

11.2.1 메뉴 만들기 ................................................................................................. 443<br />

11.2.2 다른 레벨 로드하기 ...................................................................................... 447<br />

11.2.3 HUD의 마우스 이벤트 .................................................................................. 448<br />

CHAPTER 12 <strong>게임</strong> 패키징하기<br />

12.1 윈도우용으로 <strong>게임</strong> 패키징하기 ..................................................................................... 450<br />

12.1.1 <strong>게임</strong> 패키징하기 .......................................................................................... 450<br />

12.2 안드로이드용으로 <strong>게임</strong>을 패키징하기 ............................................................................ 451<br />

12.2.1 TADP 설치와 안드로이드 설정 ..................................................................... 451<br />

12.2.2 <strong>게임</strong> 패키징(안드로이드용) ........................................................................... 453<br />

12.3 iOS용으로 <strong>게임</strong>을 패키징하기 ..................................................................................... 454<br />

12.3.1 iOS 개발 환경 준비하기 ............................................................................... 454<br />

12.3.2 <strong>게임</strong> 패키징하기(iOS용) ............................................................................... 457<br />

12.4 각 플랫폼별 설정 ....................................................................................................... 458<br />

12.4.1 플랫폼에 따른 설정 ...................................................................................... 458<br />

12.4.2 빌드 구성 선택 ............................................................................................ 459<br />

12.4.3 안드로이드 환경에서의 패키징 ...................................................................... 459<br />

12.4.4 디바이스에서 실행하기 ................................................................................. 460<br />

찾아보기 ................................................................................................................................................... 461<br />

24


CHAPTER<br />

1<br />

<strong>언리얼</strong> 엔진 개발 환경 준비<br />

이 장에서는 <strong>언리얼</strong> 엔진 계정 등록과 설치 방법, C++를 사용하<br />

기 위한 개발 환경 준비를 설명합니다.<br />

25


1.1 <strong>언리얼</strong> 엔진 계정 등록과 설치<br />

계정을 등록하는 방법과 <strong>언리얼</strong> 엔진을 설치하는 방법을 설명합니다.<br />

1.1.1 계정 등록<br />

1 홈페이지에 계정 등록하기<br />

[그림 1-1]과 같이 <strong>언리얼</strong> 엔진 공식 사이트에 접속하여 계정을 등록해봅니다. ‘함께해요 UE4’<br />

를 클릭합니다(1). 다음으로 개인정보를 입력하고(2) 서비스 조항을 확인합니다. 동의한다<br />

면 체크 박스를 체크하고(3) ‘가입’을 클릭하여(4) 계정을 생성합니다.<br />

그림 1-1 <strong>언리얼</strong> 엔진 공식 사이트<br />

1 클릭<br />

URL https://www.unrealengine.com/ko<br />

2 입력<br />

3 체크<br />

4 클릭<br />

26 1장 <strong>언리얼</strong> 엔진 개발 환경 준비


2 런처 다운받기<br />

[그림 1-2]와 같이 최종 사용자 라이선스 계약서를 읽습니다(1). 동의한다면 체크 박스를 체<br />

크하고(2) ‘수락’을 클릭합니다(3). 이어지는 화면에서 ‘다운로드’를 클릭하여(4) 설치 파일<br />

을 다운받습니다.<br />

그림 1-2 라이선스 동의 화면<br />

1 읽기<br />

4 클릭<br />

2 체크<br />

3 클릭<br />

노트한국어 최종 사용자 라이선스 계약서(EULA)<br />

URL<br />

URLhttpswwwunrealenginecomkokoeula<br />

1.1 <strong>언리얼</strong> 엔진 계정 등록과 설치<br />

27


1.1.2 <strong>언리얼</strong> 엔진 설치<br />

1 설치하기<br />

다운받은 설치 파일을 실행합니다(1). 설치 경로를 정하고 ‘설치’를 클릭합니다(2). 앞서 등<br />

록해놓은 계정을 입력하고(3) ‘로그인’을 클릭합니다(4). 최종 사용자 라이선스 계약서를 읽<br />

고(5) ‘수락’을 클릭하면(6) 다운로드를 시작합니다(7).<br />

그림 1-3 <strong>언리얼</strong> 엔진 설치<br />

실행 1 클릭 2<br />

3 입력<br />

5 읽기<br />

4 클릭<br />

7 기다리기(대기)<br />

6 클릭<br />

28 1장 <strong>언리얼</strong> 엔진 개발 환경 준비


2 실행하기<br />

[그림 1-4]에서와 같이 ‘실행 Unreal Engine 4.7.x’를 클릭하여(1) <strong>언리얼</strong> 엔진을 실행합니<br />

다(2).<br />

그림 1-4 <strong>언리얼</strong> 엔진 실행<br />

1 클릭<br />

2 확인<br />

정리<br />

● <strong>언리얼</strong> 엔진을 설치하고 실행했습니다.<br />

1.2 비주얼 스튜디오 설치<br />

윈도우 환경에서 <strong>언리얼</strong> 엔진을 개발하는 가장 일반적인 도구인 비주얼 스튜디오의 설치 및 설정 방법을 알<br />

아봅니다.<br />

노트C++로 개발하기<br />

C<br />

C<br />

<br />

1.2 비주얼 스튜디오 설치<br />

29


1.2.1 설치 파일 다운로드 및 설치<br />

1 설치 파일 다운로드하기<br />

[그림 1-5]와 같이 비주얼 스튜디오 다운로드 페이지를 방문하여 ‘Visual Studio Express<br />

2013 업데이트 4와 for Windows Desktop’ 또는 ‘Visual Studio Community 2013 업데<br />

이트 4’에서 ‘지금 설치’를 클릭합니다(1). 이 책에서는 Express 2013으로 진행합니다. 마이<br />

크로소프트 계정에 로그인합니다(계정이 없으면 신규 등록). 다운로드할 제품을 선택하는 화<br />

면이 표시되면 ‘Express 2013 for Windows Desktop’을 클릭합니다(2). 다운로드하기 전<br />

에 몇 가지 정보를 입력하면 설치 프로그램 다운로드가 시작됩니다.<br />

그림 1-5 비주얼 스튜디오 다운로드 페이지<br />

1 클릭<br />

2 클릭<br />

URL https://www.visualstudio.com/downloads/download-visual-studio-vs#dexpress-windows-desktop,<br />

단축 URL http://me2.do/FALYsq2T<br />

30 1장 <strong>언리얼</strong> 엔진 개발 환경 준비


2 비주얼 스튜디오 설치하기<br />

[그림 1-6]과 같이 다운로드한 설<br />

치 프로그램(wdexpress_full.<br />

exe )을 더블클릭하여 실행합니다<br />

(1). 사용 조건 및 라이선스 정책<br />

을 읽고 동의한다면 체크 박스를<br />

체크하고(2) ‘설치’를 클릭합니다<br />

(3). 잠시 기다리면 설치가 완료<br />

됩니다. 시작할 때 다시 Microsoft<br />

계정에 로그인하라는 메시지가 나<br />

타나면 로그인합니다.<br />

그림 1-6 비주얼 스튜디오 설치<br />

1 더블클릭<br />

2 체크<br />

3 클릭<br />

1.2.2 비주얼 스튜디오를 <strong>언리얼</strong> 엔진용으로 설정하기<br />

1 메뉴 바 조정하기<br />

비주얼 스튜디오의 설정을 <strong>언리얼</strong> 엔진 개발에 용이하도록 변경합니다. 먼저 비주얼 스튜디오를<br />

실행하고 메뉴에서 ‘도구 → 사용자 지정’을 선택합니다(1). ‘명령’ 탭을 선택한 후(2) ‘도구<br />

모음’을 체크하고(3) ‘표준’을 선택합니다(4). ‘솔루션 구성’을 선택하고(5) ‘선택 사항 수정’<br />

을 클릭하면(6) 나타나는 팝업에서 ‘너비’를 ‘200’으로 설정합니다(7). 설정이 끝나면 창을<br />

닫습니다.<br />

그림 1-7 메뉴 바 설정<br />

2 클릭<br />

3 체크<br />

4 선택<br />

6 클릭<br />

7 설정<br />

5 선택<br />

1 선택<br />

1.2 비주얼 스튜디오 설치<br />

31


2 옵션 설정하기<br />

메뉴에서 ‘도구 → 옵션’을 선택합니다(1). 왼쪽 목록에서 ‘프로젝트 및 솔루션’을 열어(2)<br />

‘오류로 인해 빌드가 종료될 때 항상 오류 목록 표시’의 체크를 해제합니다(3). 다음으로 ‘텍스<br />

트 편집기 → C/C++ → 뷰’를 열고(4) ‘비활성 블록 표시’를 ‘False’로 합니다(5). ‘텍스트<br />

편집기 → C/C++ → 고급’을 열고(6) ‘캐시되는 최대 변환 단위’를 ‘15’로 설정하고(7) ‘외<br />

부 종속성 폴더 사용 안 함’을 ‘False’로 설정합니다(8). ‘디버깅 → 편집하며 계속하기’를 열<br />

어(9) ‘편집하며 계속하기 사용’의 체크를 해제한 후(10), ‘확인’을 클릭합니다(11).<br />

그림 1-8 옵션 설정<br />

2 선택<br />

3 체크 해제<br />

1 선택<br />

7 설정<br />

4 선택<br />

5 선택<br />

6 선택<br />

8 설정<br />

10 체크 해제<br />

9 선택<br />

11클릭<br />

32 1장 <strong>언리얼</strong> 엔진 개발 환경 준비


3 디버그에 비주얼 라이저 추가하기<br />

탐색기에서 다음 폴더를 엽니다.<br />

‘<strong>언리얼</strong> 엔진 설치 디렉터리\4.2\Engine\Extras\VisualStudioDebugging\UE4.natvis’라는<br />

파일을 복사하고(1) 다음 중 하나의 디렉터리에 붙여 넣습니다(2).<br />

● [비주얼 스튜디오 설치 폴더]\Common7\Packages\Debugger\Visualizers\<br />

● [내 문서]\Visual Studio 2013\Visualizers\<br />

그림 1-9 비주얼 라이저 추가<br />

1 복사<br />

2 붙여넣기<br />

노트비주얼 라이저<br />

UE4natvis<br />

<br />

정리<br />

● 비주얼 스튜디오를 설치했습니다.<br />

● 비주얼 스튜디오는 윈도우 환경에서 C++를 이용한 개발을 할 때 사용합니다.<br />

1.2 비주얼 스튜디오 설치<br />

33


1.3 예제 파일 실행하기<br />

런처의 학습 메뉴에서 콘텐츠를 다운받아 실행해봅니다.<br />

1.3.1 슈팅 <strong>게임</strong> 플레이하기<br />

1 학습에서 슈팅 <strong>게임</strong> 다운로드<br />

<strong>언리얼</strong> 엔진 런처를 실행하고 ‘학습’ 탭을 엽니다(1). ‘슈팅 <strong>게임</strong>’을 열고(2) ‘다운로드’를 클<br />

릭하여 다운받습니다(3).<br />

그림 1-10 슈팅 <strong>게임</strong> 다운로드<br />

1 클릭<br />

2 클릭<br />

2 프로젝트 작성하기<br />

3 클릭<br />

슈팅 <strong>게임</strong>을 모두 다운받았으면 ‘프로젝트 생성’을 클릭합니다(1). 프로젝트 이름(2)과 저장<br />

경로를 선택하고(3) ‘Create’를 클릭합니다(4). 프로젝트 생성이 완료될 때까지 기다립니다.<br />

34 1장 <strong>언리얼</strong> 엔진 개발 환경 준비


그림 1-11 프로젝트 생성<br />

2 입력<br />

1 클릭<br />

3 입력<br />

4 클릭<br />

3 슈팅 <strong>게임</strong> 실행하기<br />

프로젝트 생성이 완료되면 라이브러리에 슈팅 <strong>게임</strong>이 추가됩니다. 추가된 슈팅 <strong>게임</strong>을 더블클<br />

릭하거나 마우스 오른쪽 클릭하여 메뉴에서 ‘열기’를 선택하면(1) 프로젝트가 실행됩니다. 툴<br />

바에서 ‘플레이’를 클릭하면(2) <strong>게임</strong>이 시작됩니다(3).<br />

그림 1-12 슈팅 <strong>게임</strong> 실행<br />

2 클릭<br />

1 클릭<br />

3 확인<br />

1.3 예제 파일 실행하기<br />

35


4 봇과 대전<br />

봇 Bot 의 개수나 <strong>게임</strong> 규칙(Free for all, Team Death match 같은) 등을 변경하려면 편집기<br />

에서 ‘실행’을 클릭하여(1) <strong>게임</strong>을 빌드합니다. 빌드는 몇 분 정도 걸립니다. <strong>게임</strong>이 시작되면<br />

키를 눌러 <strong>게임</strong> 내 메뉴를 열 수 있습니다. ‘MAIN MENU’로 이동하면 <strong>게임</strong> 설정을 변경하<br />

여 실행할 수 있습니다(2).<br />

그림 1-13 <strong>게임</strong> 규칙 변경<br />

1 클릭<br />

2 클릭<br />

노트그 밖의 예제 콘텐츠<br />

<br />

<br />

● 기억 <strong>게임</strong> MemoryGame<br />

<br />

● 리얼리스틱 렌더링 RealisticRendering<br />

Matinee <br />

● 슈팅 <strong>게임</strong> ShooterGame<br />

CFPS<br />

● 스윙 닌자 SwingNinja<br />

2D<br />

● 전략 <strong>게임</strong> StrategyGame<br />

C<br />

● 블루프린트 오피스<br />

<br />

● 콘텐츠 예제<br />

<br />

36 1장 <strong>언리얼</strong> 엔진 개발 환경 준비


정리<br />

● 마켓플레이스의 예제들을 통해 <strong>언리얼</strong> 엔진으로 개발하는 방법을 배울 수 있습니다.<br />

<strong>언리얼</strong> 엔진 4의 튜토리얼<br />

에픽<strong>게임</strong>즈 홈페이지에는 <strong>언리얼</strong> 엔진 4에 대한 다양한 콘텐츠가 있습니다. 동영상 강좌 등도 있<br />

으니 참고하시길 바랍니다.<br />

▲ <strong>언리얼</strong> 엔진 4의 동영상 강좌<br />

URL https://www.youtube.com/playlist?list=PLZlv_N0_<br />

O1gaCL2XjKluO7N2Pmmw9pvhE<br />

단축 URL http://me2.do/5sOtdQRa<br />

1.3 예제 파일 실행하기<br />

37


CHAPTER<br />

2<br />

<strong>언리얼</strong> 에디터의 UI와 기본 조작<br />

이 장에서는 에디터의 기본 조작 방법을 알아봅니다.<br />

39


2.1 에디터 실행<br />

에디터 실행 방법을 설명합니다.<br />

2.1.1 실행하기<br />

주의에디터 표시 언어 변경<br />

<br />

<br />

<br />

<br />

<br />

21<br />

1<br />

<br />

2<br />

3<br />

<br />

그림 2-1 표시 언어의 변경<br />

2 선택<br />

1 선택<br />

3 설정<br />

1 런처에서 에디터 실행하기<br />

<strong>언리얼</strong> 엔진을 실행하면 런처가 실행됩니다. ‘실행’을 클릭하여 에디터를 실행합니다.<br />

그림 2-2 런처 실행<br />

클릭<br />

2 새 프로젝트 생성하기<br />

에디터를 실행하면 나타나는 첫 화면에서 ‘새 프로젝트’ 탭을 클릭합니다(1). ‘공백’을 선택하<br />

고(2), ‘프로젝트 이름’을 ‘ExampleProject’라고 입력한 후(3), ‘시작용 콘텐츠’를 포함시키<br />

40 2장 <strong>언리얼</strong> 에디터의 UI와 기본 조작


고(4), ‘프로젝트 생성 버튼’을 클<br />

릭합니다(5). 그러면 에디터가<br />

재실행되고 [그림 2-4]와 같은 기<br />

본 화면이 표시됩니다.<br />

그림 2-3 새 프로젝트 생성<br />

1 클릭<br />

2 클릭<br />

4 포함<br />

3 입력<br />

5 클릭<br />

그림 2-4 에디터 실행 화면<br />

2.2 에디터의 화면 구성<br />

에디터의 기본적인 화면 구성을 설명합니다.<br />

2.2.1 레벨 에디터의 화면 구성<br />

에디터를 실행했을 때 보이는 화면은 레벨 에디터라고 불리는 맵 작성 도구입니다. 각종 도구<br />

에 접근 가능하며, <strong>게임</strong> 프로젝트의 패키징 기능도 지원합니다.<br />

2.2 에디터의 화면 구성<br />

41


그림 2-5 에디터의 화면 구성<br />

1 탭바 & 메뉴바<br />

8 도움말 검색<br />

2 툴바<br />

5 월드 아웃라이너<br />

3 모드<br />

4 뷰포트<br />

6 디테일<br />

7 콘텐츠 브라우저<br />

1. 탭바 & 메뉴바<br />

화면을 구성하는 탭입니다. 탭을 드래그해서 원하는 위치로 이동하여 인터페이스를 자유롭게<br />

바꿀 수 있습니다. 또한 메뉴 바에서 새로운 레벨을 만들거나 읽어 들일 수 있고, 전체 프로젝<br />

트의 설정을 편집할 수 있습니다.<br />

2. 툴바<br />

툴바의 각 명령은 [표 2-1]과 같습니다.<br />

표 2-1 툴바<br />

명령<br />

설명<br />

현재 열려 있는 레벨을 저장합니다.<br />

<strong>언리얼</strong> 엔진에서 사용하는 애셋을 관리하는 콘텐츠 브라우저를 엽니다. 기본 레이아웃에서는 열려<br />

있는 상태입니다.<br />

42 2장 <strong>언리얼</strong> 에디터의 UI와 기본 조작


명령<br />

설명<br />

마켓플레이스를 엽니다. 에픽<strong>게임</strong>즈가 작성한 <strong>게임</strong> 예제나 다른 사용자가 작성한 애셋 및 프로젝트<br />

를 내려받을 수 있습니다.<br />

레벨 에디터 내의 뷰포트 설정을 변경하거나 오디오 음량 조절, 에디터의 그래픽 설정, 월드 설정 열<br />

기, 프로젝트 설정 등을 할 수 있습니다.<br />

레벨 블루프린트 및 현재 <strong>게임</strong> 모드에 설정된 클래스 블루프린트를 확인할 수 있습니다.<br />

<strong>언리얼</strong> 엔진의 시네마틱 에디터인 마티네 에디터를 엽니다.<br />

편집 중인 레벨의 정보를 빌드합니다. 메시 라이팅 정보의 갱신이나 리플렉션 캡처의 갱신, 내비게<br />

이션 메시를 재조정합니다.<br />

편집 중인 프로젝트가 C++ 소스를 포함하고 있을 때 표시되는 메뉴입니다. 비주얼 스튜디오에서<br />

편집되고 있는 데이터를 재컴파일합니다.<br />

간이 프리뷰 버튼입니다. 현재 레벨을 뷰포트나 새로운 창에서 테스트할 수 있습니다.<br />

현재 편집 중인 레벨을 전용 플랫폼에서 테스트 플레이합니다. 안드로이드나 iOS 등의 단말에서 확<br />

인하기 위해서는 미리 연결해둘 필요가 있습니다.<br />

3. 모드<br />

‘모드’ 탭에서 레벨 편집을 위한 각종 도구를 사용<br />

그림 2-6 모드<br />

할 수 있습니다(그림 2-6). 각 명령은 [표 2-2]와<br />

같습니다.<br />

2.2 에디터의 화면 구성<br />

43


표 2-2 모드<br />

아이콘 명령 설명<br />

배치 모드<br />

카테고리별로 구분된 요소를 뷰포트에 드래그앤드롭하여 지오메트리<br />

나 액터를 배치할 수 있습니다.<br />

칠하기 모드<br />

스태틱 메시 등의 정점이나 텍스처에 직접 색을 칠할 수 있습니다.<br />

랜드스케이프 모드<br />

지형 작성 도구인 랜드스케이프를 사용할 수 있습니다.<br />

폴리지 모드<br />

맵 위의 메시에 풀이나 바위 등을 배치하기 위한 폴리지 모드를 실행합<br />

니다.<br />

지오메트리 편집 모드<br />

배치 모드로 배치한 지오메트리나 볼륨을 편집하기 위해 사용합니다.<br />

4. 뷰포트<br />

현재 편집 중인 레벨 공간의 프리뷰를 표시합니<br />

그림 2-7 뷰포트<br />

다(그림 2-7 ). 배치된 액터를 확인하거나 변환<br />

도구를 이용하여 액터를 배치할 수 있습니다.<br />

5. 월드 아웃라이너<br />

월드 아웃라이너 World Outliner 는<br />

현재 편집 중인 레벨 안에 배치<br />

된 액터를 트리 구조로 표시합<br />

니다(그림 2-8 ). 특정 액터를<br />

선택하여 뷰포트에서 위치를<br />

확인하거나 상세 정보를 살펴볼<br />

수 있습니다.<br />

그림 2-8 월드 아웃라이너<br />

44 2장 <strong>언리얼</strong> 에디터의 UI와 기본 조작


CHAPTER<br />

3<br />

레벨 에디터의 기능<br />

이 장에서는 레벨 에디터의 기능에 대하여 설명합니다.<br />

59


3.1 콘텐츠 브라우저의 활용<br />

콘텐츠 브라우저를 이용한 애셋의 배치 방법을 설명합니다.<br />

3.1.1 애셋 배치하기<br />

1 새로운 프로젝트 만들기<br />

프로젝트 브라우저 창에서<br />

‘새 프로젝트’를 클릭합니다<br />

(1 ). ‘삼인칭’을 선택하고<br />

( 2 ) , 프로젝트 이름으로<br />

‘ExampleProject_2’를 입력<br />

합니다(3). ‘시작용 콘텐츠<br />

포함’을 선택하고(4) ‘프로젝<br />

트 생성’을 클릭합니다(5).<br />

그림 3-1 새로운 프로젝트 만들기<br />

2 클릭<br />

1 클릭<br />

4 선택<br />

3 입력<br />

5 클릭<br />

2 기존 레벨 열기<br />

메뉴에서 ‘파일 → 레벨 열기’를 선택합니다(1). 대화 창에서 ‘Minimal_Default.umap’을 선<br />

택한 후(2) ‘열기’를 클릭합니다(3).<br />

그림 3-2 기존 레벨 열기<br />

2 클릭<br />

1 선택<br />

3 클릭<br />

60 3장 레벨 에디터의 기능


3 콘텐츠 브라우저에서 스태틱 메시 배치하기<br />

콘텐츠 브라우저의 소스 뷰에서 ‘Content’ 폴더를 선택합니다(1). 애셋 필터의 ▼를 클릭하<br />

면(2) 나타나는 메뉴에서 ‘스태틱 메시’를 선택합니다(3). 검색 입력란에 ‘Shape_Sphere’를<br />

입력한 후(4) 애셋 뷰에 표시된 애셋을 드래그앤드롭합니다(5).<br />

그림 3-3 콘텐츠 브라우저에서 애셋 배치<br />

1 선택<br />

2 클릭<br />

4 입력<br />

3 선택<br />

5 드래그앤드롭<br />

1. 선택 2. 클릭 3. 선택 4. 입력 5.<br />

3.1 콘텐츠 브라우저의 활용<br />

61


4 배치한 스태틱 메시 변경하기<br />

3단계에서 뷰포트에 배치한 메시를 선택합니다(1). ‘디테일’ 탭의 ‘Static Mesh’ 그룹에서 ▼<br />

를 클릭하여(2) 나타나는 메뉴에서 ‘SM_Statue’를 선택하면(3) 스태틱 메시 모델이 바뀝니<br />

다(4).<br />

그림 3-4 스태틱 메시 변경<br />

1 선택<br />

2 클릭<br />

3 선택<br />

4 확인<br />

62 3장 레벨 에디터의 기능


5 배치한 스태틱 메시의 머티리얼 변경하기<br />

3단계에서 뷰포트에 배치한 메시를 선택합니다(1). ‘디테일’ 탭의 ‘Materials’ 그룹의 ‘엘리먼<br />

트 0’ 오른쪽에 있는 ▼를 클릭하여(2) 나타나는 메뉴에서 ‘M_Metal_Chrome’을 선택하면<br />

(3) 스태틱 메시의 머티리얼이 변경됩니다(4).<br />

그림 3-5 선택한 스태틱 메시의 머티리얼 변경<br />

1 선택<br />

2 클릭<br />

3 선택<br />

4 확인<br />

3.1 콘텐츠 브라우저의 활용<br />

63


3.1.2 콘텐츠 브라우저의 화면 구성<br />

그림 3-6 콘텐츠 브라우저의 화면 구성<br />

1<br />

4<br />

2<br />

5<br />

3<br />

표 3-1 화면 구성 설명<br />

번호 이름 설명<br />

1 내비게이션 바 새로운 애셋을 만들거나 가져올 수 있고 다른 애셋의 경로가 표시됩니다.<br />

2 소스 패널 프로젝트에 포함된 폴더를 트리 구조로 표시합니다. 또한 선택한 폴더에 들어 있는<br />

애셋을 애셋 뷰에 표시합니다.<br />

3 콜렉션 패널 사용자가 자주 사용하는 애셋을 등록할 수 있습니다. 또한 소스 컨트롤과 연계하여<br />

다른 사용자와 콜렉션을 공유할 수 있습니다.<br />

4 애셋 관리 영역 애셋을 필터링하고 검색할 수 있습니다.<br />

5 애셋 뷰 소스 패널에서 선택한 폴더의 애셋을 표시합니다. 뷰 옵션에서 애셋의 표시 방법을<br />

변경할 수 있습니다.<br />

64 3장 레벨 에디터의 기능


CHAPTER<br />

4<br />

임포트와 애셋 만들기<br />

이 장에서는 이 책에서 제공되는 부록 데이터를 임포트하여 <strong>게임</strong>에서<br />

활용하는 방법을 설명합니다.<br />

95


4.1 3D 모델 임포트하기(스태틱 메시편)<br />

스태틱 메시라고 불리는 골격을 가지지 않는 3D 모델을 <strong>게임</strong>에서 활용 가능한 상태로 만드는 방법을 설명<br />

합니다.<br />

노트<br />

CHAPTER04\CHAPTER04\StarterProject\SampleProjectuproject<br />

4.1.1 OBJ 파일 임포트<br />

그림 4-1 OBJ 파일 임포트<br />

1 새로운 폴더 만들기<br />

콘텐츠 브라우저의 소스 뷰의 ‘Content’ 폴더를 마우스 우클릭하고(1) 메뉴에서 ‘새 폴더’를<br />

선택합니다(2). 폴더 이름을 ‘StaticSample’로 바꿉니다(3).<br />

96 4장 임포트와 애셋 만들기


그림 4-2 새로운 폴더 만들기<br />

1 마우스 우클릭<br />

2 선택<br />

3 변경<br />

2 OBJ 파일 임포트하기<br />

콘텐츠 브라우저에서 ‘Content’ 폴더의 ‘StaticSample’ 폴더를 선택하고(1) ‘임포트’를 클릭합<br />

니다(2). 대화 창에서 ‘Before → StaticMeshSample → Mesh’ 폴더에 있는 ‘StaticSample.<br />

obj’를 선택하고(3) ‘열기’를 클릭합니다(4). 가져오기 형식을 지정하는 대화 상자가 나타나면<br />

‘Normal Import Method’ 오른쪽에 있는 버튼을 클릭하여(5) 메뉴에서 ‘Import Normals’<br />

를 선택하고(6) ‘Generate Lightmap UVs’를 체크한 뒤(7) ‘임포트’를 클릭합니다(8).<br />

그림 4-3 OBJ 파일 임포트하기<br />

2 클릭<br />

1 선택<br />

7 체크<br />

5 클릭<br />

3 선택<br />

6 선택<br />

4 클릭<br />

8 클릭<br />

4.1 3D 모델 임포트하기(스태틱 메시편)<br />

97


3 임포트한 메시를 스태틱 메시 에디터로 열기<br />

2단계에서 가져온 ‘StaticSample’ 애셋을 더블클릭합니다.<br />

그림 4-4 스태틱 메시 에디터로 열기<br />

더블클릭<br />

4 임포트한 메시의 라이트맵 설정하기<br />

스태틱 메시 편집 창의 ‘디테일’ 탭에서 ‘스태틱 메시 세팅’ 그룹의 ‘Light Map Resolution’을<br />

‘128’로 변경합니다(1). ▽(고급 표시)를 클릭하고 ‘Light Map Coordinate Index’를 ‘1’로<br />

변경합니다(2).<br />

그림 4-5 라이트맵 설정<br />

1 변경<br />

2 변경<br />

98 4장 임포트와 애셋 만들기


5 임포트한 메시의 충돌 판정 설정하기<br />

메뉴에서 ‘콜리전 → 자동 컨벡스 콜리전’을 선택합니다(1). 나타난 ‘컨벡스 분해’ 탭에서 ‘적용’<br />

을 클릭합니다(2). 설정이 완료되면 스태틱 메시 에디터를 닫습니다.<br />

그림 4-6 충돌 판정 설정<br />

2 클릭<br />

1 선택<br />

6 폴더를 통째로 임포트하기<br />

샘플에 포함된 ‘Before’ 폴더의 ‘StaticMeshSample → Texture’ 폴더를 ‘StaticSample’ 폴더<br />

로 드래그앤드롭합니다.<br />

그림 4-7 폴더를 임포트하기<br />

드래그앤드롭<br />

4.1 3D 모델 임포트하기(스태틱 메시편)<br />

99


7 머티리얼 만들기<br />

‘StaticSample’ 폴더를 우클릭하여(1) 나타나는 메뉴에서 ‘New Asset → 머티리얼’을 선택<br />

합니다(2). 애셋 이름을 ‘StaticMaterial’로 변경합니다(3).<br />

그림 4-8 머티리얼 만들기<br />

1 마우스 우클릭<br />

2 선택<br />

3 변경<br />

8 머티리얼 에디터 열기<br />

7단계에서 만든 머티리얼 애셋을 더블클릭하여 머티리얼 에디터를 엽니다.<br />

그림 4-9 머티리얼 에디터 열기<br />

더블클릭<br />

100 4장 임포트와 애셋 만들기


9 머티리얼 에디터로 텍스처 불러오기<br />

콘텐츠 브라우저에서 6단계에 그림 4-10 머티리얼 에디터에 텍스처를 드래그앤드롭<br />

서 임포트한 텍스처를 모두 선<br />

택하여(1) 8단계에서 연 머티<br />

리얼 에디터의 그래프에 드래그<br />

앤드롭합니다(2).<br />

1 모두 선택<br />

2 드래그앤드롭<br />

10 머티리얼 에디터 안에 새로운 노드 배치하기<br />

그래프에서 마우스 우클릭하여(1) 나타나는 메뉴의 검색 창에 ‘add’를 입력한 후(2) 결과에<br />

표시된 ‘Add’를 선택합니다(3). 그러면 그래프에 새로운 노드가 배치됩니다(4).<br />

그림 4-11 새로운 노드 배치하기<br />

1 마우스 우클릭<br />

3 선택<br />

2 입력<br />

4 확인<br />

4.1 3D 모델 임포트하기(스태틱 메시편)<br />

101


CHAPTER<br />

5<br />

블루프린트<br />

<strong>언리얼</strong> 엔진에서 제공하는 비주얼 스크립팅 도구인 블루프린트<br />

로 프로그래머가 아닌 비전문가도 <strong>게임</strong>을 만들 수 있습니다. 이<br />

장에서는 블루프린트에 대한 기본적인 설명과 간단한 튜토리얼<br />

을 진행합니다.<br />

145


5.1 블루프린트 소개<br />

블루프린트의 기본적인 내용을 설명합니다.<br />

5.1.1 블루프린트 알아보기<br />

블루프린트<br />

블루프린트는 <strong>언리얼</strong> 엔진 3에서 구현된 키즈멧 Kismet 이 진화한 비주얼 스크립팅 도구입니다. 그<br />

래프에서 노드를 만들고 연결하여 간단하게 <strong>게임</strong>을 만들 수 있기 때문에 미니<strong>게임</strong>이나 <strong>게임</strong>의<br />

프로토타입을 만들 때 유용합니다.<br />

그림 5-1 블루프린트의 그래프<br />

블루프린트로 무엇을 할 수 있나?<br />

장애물 등에 간단한 이벤트 추가<br />

뿐 아니라 캐릭터 구현에서부터<br />

<strong>게임</strong> 메뉴 만들기 등 <strong>언리얼</strong> 엔진<br />

4에서 만들 수 있는 거의 모든<br />

기능을 블루프린트로 만들 수 있<br />

습니다.<br />

그림 5-2 스윙 닌자는 블루프린트만으로 만들어졌습니다.<br />

146 5장 블루프린트


5.1.2 기본적인 블루프린트 종류<br />

클래스 블루프린트<br />

<strong>언리얼</strong> 엔진에서 사용할 수 있는 클래스를 확장한 블루프린트입니다. 부모 클래스의 기능을 계<br />

승하여 블루프린트를 만듭니다. 애셋의 일부로 저장되므로 다른 레벨이나 <strong>게임</strong>에 재사용 가능<br />

합니다.<br />

그림 5-3 캐릭터, 무기, 아이템 등에 사용<br />

레벨 블루프린트<br />

현재 열려 있는 레벨에서 작동하는 블루프린트입니다. 맵에 <strong>게임</strong>의 플레이 요소를 연출하거나<br />

마티네 Matinee 재생 이벤트를 설정할 수 있습니다.<br />

그림 5-4 이벤트 영상의 재생이나 맵 고유 이벤트 등에 사용<br />

5.1 블루프린트 소개<br />

147


애니메이션 블루프린트<br />

스켈레탈 메시 캐릭터의 애니메이션을 제어하기 위한 블루프린트입니다. 앞선 두 종류의 블루<br />

프린트와는 달리 지정된 메시에만 기능하는 블루프린트입니다. 캐릭터의 애니메이션을 블루프<br />

린트를 이용하여 제어할 수 있습니다.<br />

5.2 클래스 블루프린트로 간단한 <strong>게임</strong> 만들기<br />

블루프린트의 기본적인 사용법을 배우면서 간단한 <strong>게임</strong>을 만들어봅시다. 튜토리얼에서는 플레이어가 액터<br />

와 충돌하면 표시, 비표시가 바뀌는 클래스 블루프린트를 만들어보겠습니다.<br />

5.2.1 클래스 블루프린트로 <strong>게임</strong> 만들기<br />

1 새 프로젝트 만들기<br />

[표 5-1]을 참조하여 새 프로젝트를 만듭니다.<br />

표 5-1 새 프로젝트 만들기<br />

항목<br />

프로젝트 이름<br />

템플릿 이름<br />

시작용 콘텐츠<br />

설정값<br />

HelloBlueprint<br />

블루프린트 삼인칭<br />

포함<br />

2 스태틱 메시를 배치하고 클래스 블루프린트 만들기<br />

콘텐츠 브라우저에서 ‘Shapes’ 폴더에 있는 ‘Shapes_WideCapsule’을 뷰포트로 드래그<br />

앤드롭합니다(1). ‘디테일 탭’에서 ‘Blueprint/Add Script’를 클릭합니다(2). 저장 경로<br />

를 지정하는 대화 상자가 표시되면 ‘Blueprints’ 폴더를 선택하고(3) ‘BlueprintName’을<br />

‘HelloBlueprint’로 입력하고(4) ‘블루프린트 생성’을 클릭합니다(5).<br />

148 5장 블루프린트


그림 5-5 클래스 블루프린트 만들기<br />

1 드래그앤드롭<br />

2 클릭<br />

3 선택<br />

4 입력<br />

5 클릭<br />

5.2 클래스 블루프린트로 간단한 <strong>게임</strong> 만들기<br />

149


3 충돌 설정 변경하기<br />

새로 열린 창의 ‘컴포넌트’ 탭에서 ‘Shape_WideCapsule’을 선택합니다(1). ‘디테일’ 탭의<br />

‘Collision’ 그룹의 ‘콜리전 프리셋’ 오른쪽에 위치한 ▼를 클릭하여(2) 나타나는 메뉴에서<br />

‘OverlapAllDynamic’을 선택합니다(3).<br />

그림 5-6 충돌 설정<br />

2 클릭<br />

1 선택<br />

3 선택<br />

4 블루프린트 이벤트그래프 편집하기<br />

툴바 아래쪽에 위치한 ‘이벤트그래프’ 탭을 클릭하여 그래프 편집 창을 활성화합니다.<br />

그림 5-7 편집 모드로 변경하기<br />

클릭<br />

150 5장 블루프린트


www.hanbit.co.kr<br />

Hanbit eBook<br />

Realtime<br />

www.hanbit.co.kr/ebook<br />

DRM free!<br />

어떤 디바이스에서도 자유롭게<br />

eBook Oriented!<br />

전자책에 꼭 맞는 최적의 내용과 디자인<br />

Hanbit eBook<br />

Realtime 70<br />

Hanbit eBook<br />

Realtime 49 89<br />

Hanbit eBook<br />

Realtime 90<br />

Hanbit eBook<br />

Realtime 49 92<br />

MFC<br />

<strong>프로그래밍</strong><br />

주식분석 프로그램 만들기<br />

김세훈 지음<br />

JavaScript<br />

Promise​<br />

azu​지음 /​주우영​옮김<br />

STOMP와 MQTT로 개발하는 IoT 이연복 지음<br />

모바일/웹 애플리케이션<br />

Mobile and Web Messaging<br />

제프 메스닐 지음 / 조건희 옮김<br />

자바 개발자를 위한<br />

Vert.x<br />

모바일/웹 메시징 애플리케이션 개발


www.hanbit.co.kr<br />

즐거운 상상이 가득! 2015년 화제의 신간<br />

즐거운 상상이 가득! 2015년 화제의 신간<br />

전자부품 백과사전 vol.2<br />

전자부품 백과사전 vol.1<br />

찰스 플랫 지음 / 배지은 옮김 / 30,000원<br />

취미공학에 필요한 핵심 전자부품을<br />

사전식으로 정리한 안내서.<br />

시리즈의 두 번째 도서다.<br />

Zero to Maker<br />

: 누구나 메이커가 될 수 있다<br />

데이비드 랭 지음 / 장재웅 옮김 / 14,000원<br />

전자부품 백과사전 vol.2 찰스 플랫 지음 / 가격미정<br />

일반인에서 메이커로. 날백수에서 무인 잠<br />

수정 된 사나이, 시리즈의 데이비드 두 번째 도서다.<br />

랭의 메이커 도전기.<br />

Zero to Maker<br />

: 누구나 메이커가 될 수 있다<br />

전자부품 백과사전 vol.1<br />

데이비드 랭 지음 / 장재웅 Maker 옮김 / 14,000원 Pro<br />

존 베이첼 지음 / 가격미정<br />

일반인에서 메이커로. 날백수에서 무인 잠<br />

메이커라면 반드시 읽어야 할 필수 계발<br />

수정 회사 CEO가 된 사나이, 데이비드<br />

서. 프로 메이커들과의 인터뷰 및 에세이<br />

랭의 메이커 도전기.<br />

수록.<br />

프로젝트로 <strong>배우는</strong> 라즈베리 파이 도날드 노리스 지음 / 임지순 옮김<br />

다양한 실전 프로젝트를 통해 라즈베리 파이를 쉽고 재미있게 배워본다.<br />

찰스 플랫 지음 / 배지은 옮김 / 30,000원<br />

처음 시작하는 센서<br />

취미공학에 필요한 핵심 전자부품을<br />

사전식으로 정리한 안내서.<br />

찰스 플랫 지음 / 가격미정<br />

Maker Pro<br />

존 베이첼 지음 / 가격미정<br />

메이커라면 반드시 읽어야 할 필수 계발<br />

키모 카르비넨,<br />

테로 카르비넨 지음<br />

임지순 옮김 / 13,000원<br />

세상을 수치로 읽어내는<br />

부품인 센서를 알려주<br />

는 책. 이 책을 통해 자신<br />

만의 프로젝트에 다양한<br />

처음 시작하는 센서<br />

센서를 사용해보자.<br />

키모 카르비넨,<br />

테로 카르비넨 지음<br />

임지순 옮김 / 13,000원<br />

세상을 수치로 읽어내는<br />

Make: 센서<br />

부품인 센서를 알려주<br />

키모 카르비넨, 테로 카르비<br />

넨, 빌 발토카리 지음 는 책. 이 책을 통해 자신<br />

/ 가격미정<br />

만의 프로젝트에 다양한<br />

필수 전자부품인 센서를<br />

마이크로 컨트롤러 보드 센서를 사용해보자.<br />

에 응용하는 방법을 담<br />

았다.<br />

Make: 센서<br />

키모 카르비넨, 테로 카르비<br />

넨, 빌 발토카리 지음<br />

/ 가격미정<br />

필수 전자부품인 센서를<br />

마이크로 컨트롤러 보드<br />

에 응용하는 방법을 담<br />

았다.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!