그림 1-13 언리얼 엔진의 스프라이트 에디터 물리 시스템 천체와 미시 세계를 제외한 자연계의 사물은 뉴턴Newton의 운동 법칙에 따라 움직인 다. 관성의 법칙, 가속도의 법칙, 작용 반작용 법칙이 그것이다. 물리 시스템은 게임 내의 사물에 운동 법칙을 적용해서 자연계와 흡사한 운동을 구현하는 시스템이다. 언리얼 엔진에는 NVIDIA의 최신 물리 엔진이 내장되어 있어서 개발자가 운동 법칙 에 대한 공식이나 중력에 대한 효과 등을 모르고 있더라도 물체의 움직임과 충돌 후 의 상태를 자연계와 유사한 상태로 구현해 준다. 언리얼 엔진에 내장된 PhAT라는 피직스 애셋 툴Physics Asset Tool을 사용하면 캐릭터가 자연스럽게 쓰러지는 동작도 쉽게 구현할 수 있다. 1.3 언리얼 엔진의 특징 15
그림 1-14 언리얼엔진의피직스애셋툴 (PhAT) 과시뮬레이션결과 그뿐만아니라물리시스템은물체가폭파될때발생하는파편의비산효과나안개 와같은입자의움직임, 천이나깃발의펄럭임등물체의움직임에물리적인계산을 반영해서자연스러운결과물을만들수있게해준다. 그림 1-15 파티클을만드는캐스케이드 (Cascade) 에디터 16 제 1 장 언리얼 엔진 소개
향상된기술력언리얼엔진의기술력은익히알려져있어서새삼스러울것도없지만, 그동안대형게임을개발하면서축적한기술을언리얼엔진에모두도입함으로써전문적인지식이없는사람들도퀄리티가높은게임을쉽게개발할수있도록하였다. 또한, NVIDIA 에서개발한최신버전의피직스 PhysX 기술을내장하여엔진내부에서물리적인현상을아주빠르게표현할수있으며, 실시간 3D 렌더링기술은게임뿐만아니라영상제작, 가상현실, 시뮬레이션, 놀이기구의콘텐츠등의분야에폭넓게활용할수있으므로 3D 그래픽산업에두루사용될전망이다. 진화하는엔진에픽그래픽스는언리얼엔진의소스를회원에게모두공개해누구나엔진을변형해서사용할수있도록하였다. 이와같은정책은프로그램개발능력이있는사용자라면엔진을커스터마이징하거나새로운기능을추가해서자신만의엔진으로만들수있다는의미이다. 언리얼엔진의오픈소스화정책으로많은개발자가언리얼엔진의개선에참여하고있으므로현재언리얼엔진은매우빠르게버전업되고있다. 이외에도많은장점이있지만이정도로끝내도록하자. 1 3 17
1.4 언리얼 엔진의 최소 사양 언리얼 엔진의 설치와 실행에는 다음과 같은 권장 사양이 필요하다. Windows 표 1-1 Windows의 최소 사양 엔진 실행 및 개발 추천 하드웨어 사양 및 운영체제 프로세서 쿼드코어 인텔 또는 AMD 2.5GHz 이상 메모리 8GB 이상 비디오 카드 NVIDIA GeForce 470 GTX 또는 AMD Radeon 6870 HD 시리즈 이상 운영체제 Windows 7/8 64bit Mac OS 표 1-2 Mac OS의 최소 사양 엔진 실행 및 개발 추천 하드웨어 사양 및 운영체제 프로세서 쿼드코어 인텔 또는 AMD 2.5GHz 이상 메모리 8GB 이상 비디오 카드 NVIDIA GeForce 470 GTX 또는 AMD Radeon 6870 HD 시리즈 이상 운영체제 MAC OS X 10.9.2 XCode 5.0 언리얼 엔진은 그래픽 카드(GPU)의 자원을 많이 사용하므로 맥북이나 노트북 환경 에서는 상당한 발열과 소음이 발생한다. 노트북 사용자는 이 점을 염두에 두기 바 란다. 18 제 1 장 언리얼 엔진 소개
1.5 언리얼 엔진 설치 언리얼 엔진을 설치하고 사용하려면 언리얼 엔진의 계정이 필요하다. 다음 사이트에 서 회원 가입을 한다. 언리얼 엔진은 아주 빠르게 업그레이드되고 있으므로 실제로 여러분이 보는 화면은 책의 그림과 다를 수 있다는 것을 염두에 두고 시작하자. 언리얼 엔진 홈페이지 : https://www.unrealengine.com 그림 1-16 언리얼 엔진 홈페이지 1.5 언리얼 엔진 설치 19
이어계정생성페이지가나타나므로계정생성에필요한기본정보를입력한다. 홈 페이지오른쪽위에 [ 언어 선택 ] 버튼이있으므로그것을눌러한국어를선택하면한 글로표시된다. 1 2 그림 1-17 계정생성페이지 계정생성이끝나면지불방법을입력하는페이지가나타나므로신용카드정보를입 력한다. 그림 1-18 신용카드정보입력 20 제 1 장 언리얼 엔진 소개
필요한정보를모두입력하면언리얼엔진인스톨러를다운로드하는페이지로연결 된다. 그림 1-19 언리얼엔진인스톨러다운로드 다운로드한파일을실행하면설치폴더를물어오므로필요하면설치폴더를변경하고 [ 설치 ] 버튼을누른다. 그림 1-20 설치폴더지정 1 5 21
바탕화면의인스톨러아이콘을실행하면로그인화면이나타나므로앞에서등록한계정과비밀번호를입력한다. 계정정보기억항목을체크해두면매번로그인해야하는번거로움이없다. 그림 1-21 언리얼엔진로그인 로그인이성공하면언리얼엔진의라이선스페이지가나타나므로 [ 수락 ] 버튼을누 른다. 그림 1-22 라이선스에동의함 이어언리얼엔진런처가실행된후언리얼엔진의가장최신버전을다운로드하기 시작한다. 용량이작지않으므로얼마간의시간이걸릴것이다. 22 제 1 장 언리얼 엔진 소개
1.6 언리얼 엔진 런처 언리얼 엔진 런처는 인터넷과 연동하여 설치된 엔진을 가장 최신의 상태로 유지하 며, 엔진의 버전을 관리하는 등의 기능을 제공한다. 1 2 3 4 5 6 그림 1-23 언리얼 엔진 런처 1.6 언리얼 엔진 런처 23
1 사용자 계정 2 실행 3 News 1 23 4 Learn 그림 1-24 언리얼런처의 Learn 24 제 1 장 언리얼 엔진 소개
5 마켓플레이스 무료 및 유료로 제공하는 게임의 리소스와 프로젝트 등이 수록되어 있다. 그림 1-25 마켓플레이스 6 라이브러리 엔진의 추가 설치, 현재까지 작성한 프로젝트, 마켓플레이스에서 다운로드한 프로젝트 등을 관리한다. 그림 1-26 라이브러리 1.6 언리얼 엔진 런처 25
1.7 언리얼 프로젝트 브라우저 언리얼 엔진 런처에서 엔진을 선택한 후 [ 실행 ] 버튼을 누르면 [ 언리얼 프로젝트 브라 우저 ]가 나타난다. 여기에서 이미 만들어진 프로젝트를 불러오거나 새로운 프로젝트 를 만들 수 있다. 1 2 3 4 6 5 7 프로젝트를 저장할 기본 폴더를 설정 그림 1-27 언리얼 프로젝트 브라우저 1 프로젝트 전에 작업한 프로젝트를 선택하거나 새로운 프로젝트를 만든다. 2 새 프로젝트 템플릿 프로젝트의 종류를 블루프린트나 C++로 선택한 후 템플릿 목록에 서 생성하려는 프로젝트 템플릿을 지정한다. C++ 프로젝트를 만드는 경우에는 PC에 비주 얼 스튜디오 2013이 설치되어 있어야 한다. 26 제 1 장 언리얼 엔진 소개
3 대상 플랫폼 4 프로젝트의 퀄리티 5 시작용 콘텐츠 포함 여부 6 대상 폴더 [ 내문서 ] 7 프로젝트 이름 1 7 27
1.8 게임 템플릿 이 장에서는 언리얼 엔진이 제공하는 템플릿의 기본 기능에 대해 알아본다. 레벨을 여는 방법은 제3.3절을 참조하기 바란다. 1 공백 모두 세 개의 레벨로 구성되어 있다. ➊ Minimal_Default 공백 레벨 프로젝트를 만들면 기본으로 보이는 레벨이다. 스카이박스, 애트머스페릭 포그Atmospheric Fog, 사운드 큐, 리플렉션 캡처 등을 제공한다. ➋ StarterMap 각종 머티리얼과 중력에 의해 추락하는 공 등 간단한 물리 시뮬레이션을 제공한다. 그림 1-28 Minimal_Default와 StarterMap의 씬 구성 28 제 1 장 언리얼 엔진 소개
➌ Advanced_Lighting 게임의배경으로사용하는 HDRI High Dynamic Range Image 로만든앰비언트큐브맵 Ambient Cubemap 과 Post Process 이펙트의효과를볼수있다. 앰비언트큐브맵은블루프린트로만들어져있으므로다른프로젝트에서이미지를변경해서사용하는것이가능하다. 이레벨에서사용하는 Post Process 이펙트는다음과같다. Contrast : Vignette : Bloom: Auto Exposure : Depth Of Field : Out of Focus Screen Space Reflection : 그림 1-29 HDRI 로만든앰비언트큐브맵과원본이미지 언리얼엔진이제공하는템플릿은종류에상관없이 [ StarterContent ] 폴더에위의 레벨세개가저장되어있다. 1 8 29
2 블루프린트 1 인칭 1 인칭시점의카메라와캐릭터및슈팅예제이다. 캐릭터의이동과총알의발사, 총 알의충돌처리등에관련된블루프린트를제공한다. 3 블루프린트비행간단한비행시뮬레이션으로폰 Pawn 을제어하는블루프린트를제공한다. 폰은비행기, 탱크, 자동차등사용자가탑승해서조정할수있는액터 Actor 이다. 폰의이동과회전, 충돌의처리에관한기초사항을배울수있다. 그림 1-30 블루프린트 1 인칭과블루프린트비행실행화면 4 블루프린트퍼즐화면의블록을클릭하면점수가올라가는간단한게임이다. 화면에마우스커서를표시하고, 클릭한블록을판정하는간단한블루프린트를제공한다. 블록을동적으로배치하는방법과화면에점수등을표시하는기초지식을배울수있다. 5 블루프린트굴리기 물리기반으로굴러가는공의시뮬레이션이다. 토크 Torque 로공을굴리고임펄스 Impulse 로점프하는등액터에물리적인힘을적용시키는방법에대해배울수있다. 30 제 1 장 언리얼 엔진 소개
그림 1-31 블루프린트퍼즐과블루프린트굴리기실행화면 6 블루프린트횡스크롤 3D 환경에서 2D 로동작하는게임이다. 카메라가캐릭터와함께좌우로이동하므로 캐릭터는항상화면의중앙에고정된다. 7 블루프린트 2D 횡스크롤 Sprite 를이용한 2D 게임이다. Sprite 를이용해서배경과지형을구성하고, 캐릭터의 애니메이션만드는방법을학습할수있다. 그림 1-32 블루프린트횡스크롤과블루프린트 2D 횡스크롤실행화면 1 8 31
8 블루프린트 3인칭카메라가캐릭터를따라다니는전형적인 3인칭게임이다. 걷기, 달리기, 점프애니메이션과이동속도에따라걷기에서달리기로이어지는애니메이션블렌딩기능을볼수있다. 9 블루프린트내려보기블루프린트 3인칭게임과같은구조이지만, 카메라를주인공의머리위쪽에배치해서씬전체를내려보는구도로구성되어있다. 캐릭터를마우스위치로이동시키는방법을배울수있다. 그림 1-33 블루프린트 3 인칭과블루프린트내려보기의실행화면 10 Twin Stick Shooter 상하좌우로이동하는폰 Pawn 을카메라가위에서내려보는구도로구성된게임이다. 폰의이동과총알을발사하는방법을배울수있다. 11 블루프린트비히클 물리기반의간단한자동차경주게임이다. HUD 를이용해서자동차의속도와기어 상태를화면에표시한다. 32 제 1 장 언리얼 엔진 소개
그림 1-34 Twin Stick Shooter 와블루프린트비히클실행화면 12 Vehicle Advanced 경주용자동차를이용한자동차경주시뮬레이션게임이다. 간단한지형 Landscape 과 장애물을제공한다. 그림 1-35 Vehicle Advanced 의씬 (Scene). 평지와산악지형이있다 1 8 33
1.9 언리얼 에디터 프로젝트 브라우저에서 템플릿을 선택하고 프로젝트 이름을 입력한 후 [ 프로젝트 생 성 ] 버튼을 누르면 언리얼 에디터가 나타난다. C++ 템플릿을 사용하려면 자신의 PC 에 비주얼 스튜디오 2013이 설치되어 있어야 한다. 1 게임의 실행 언리얼 에디터에서 [ 플레이 ] 버튼을 누른 후 게임 창을 마우스로 클릭하면 게임을 실행할 수 있다. 캐릭터의 움직임은 게임에서 일반적으로 사용하는 상하좌우 이동키를 사용하며, Space Bar 는 34 제 1 장 언리얼 엔진 소개 키나 점프이고, 카메라의 방향은 마우스로 조 정한다. 게임을 실행할 때에는 마우스 커서가 사라진다. 그림 1-36 블루프린트 3인칭 템플릿 실행 화면 W S A D
2 게임의중지게임을중지할경우에는 Esc 키를누르거나, Shift + F1 키로마우스커서를표시한후 [ 중지 ] 버튼을누른다. 이기능은언리얼에디터에서만사용할수있으며, 실제의게임이나게임을독립된창으로실행한경우에는이기능을사용할수없다. 1 9 35