프로젝트 기반으로 배우는 언리얼 엔진 5 게임 개발 - 에이콘 게임 개발 프로그래밍 시리즈
저자

곤살로마르케스외

저자:곤살로마르케스,데빈쉐리,데이비드페레이라,하마드포지

역자:장세윤

목차

1장.언리얼엔진소개
__기술적요구사항
____실습1.01:언리얼엔진5프로젝트생성하기
__언리얼엔진살펴보기
__에디터창탐험하기
__뷰포트탐색
__액터조작하기
____실습1.02:액터를추가및삭제하기
__블루프린트액터
____실습1.03:블루프린트액터생성하기
__블루프린트에디터탐험하기
__이벤트그래프창탐험하기
____실습1.04:블루프린트변수생성하기
____실습1.05:블루프린트함수생성하기
__곱하기노드이해하기
__BeginPlay와Tick이벤트탐험하기
____실습1.06:TestActor클래스를Z축으로이동시키기
__ThirdPersonCharacter블루프린트클래스
__메시와머티리얼의사용법탐험하기
____메시
____머티리얼
__UE5에서머티리얼조작하기
____활동1.01:TESTACTOR를Z축으로계속이동시키기
__요약

2장.언리얼엔진을활용한작업
__기술적요구사항
__빈C++프로젝트를생성하고설정하기
____실습2.01:빈C++프로젝트생성하기
__언리얼엔진의Content폴더구조
__비주얼스튜디오솔루션을활용해작업하기
____비주얼스튜디오에서코드디버깅하기
____실습2.02:삼인칭템플릿코드디버깅하기
__필요한애셋임포트하기
____실습2.03:캐릭터FBX파일임포트하기
__언리얼게임모드클래스
____게임모드기본클래스
____게임플레이이벤트
____네트워킹
____GameModeBase와게임모드비교하기
__레벨과레벨블루프린트이해하기
____언리얼폰클래스
____언리얼플레이어컨트롤러클래스
____실습2.04:게임모드,플레이어컨트롤러,폰설정하기
__애니메이션활용하기
____애니메이션블루프린트
____이벤트그래프
____애님그래프
____스테이트머신
____트랜지션룰
____블렌드스페이스
____실습2.05:마네킹애니메이션만들기
____활동2.01:캐릭터에애니메이션연결하기
__요약

3장.Character클래스컴포넌트및블루프린트설정
__기술적요구사항
__언리얼캐릭터클래스
____캐릭터클래스확장하기
____실습3.01:3인칭캐릭터C++클래스생성및설정하기
__C++클래스를블루프린트에서확장하기
____실습3.02:블루프린트로C++클래스확장하기
____활동3.01:애니메이션프로젝트에서C++캐릭터클래스를블루프린트로확장하기
__요약

4장.플레이어입력시작
__기술적요구사항
__입력액션과입력콘텍스트이해하기
____실습4.01:Movement와Jump입력액션생성하기
__플레이어입력처리하기
____실습4.02:Movement및Jump입력액션수신하기
__캐릭터주변으로카메라회전시키기
____활동4.01:캐릭터에걷기로직추가하기
__요약

5장.라인트레이스를활용한충돌처리
__기술적요구사항
__콜리전소개
__프로젝트설정
____실습5.01:DodgeballCharacter를톱다운시점으로전환하기
__라인트레이스이해하기
__EnemyCharacterC++클래스생성하기
____실습5.02:라인트레이스를실행하는CanSeeActor함수생성하기
__라인트레이스시각화하기
____실습5.03:LookAtActor함수만들기
__EnemyCharacter블루프린트클래스생성하기
__스윕트레이스
____실습5.04:스윕트레이스실행하기
____Visibility트레이스반응변경하기
____멀티라인트레이스
____Camera트레이스채널
____실습5.05:커스텀EnemySight트레이스채널만들기
____활동5.01:SightSource속성생성하기
__요약

6장.콜리전오브젝트설정
__기술적요구사항
__UE5에서의물체간충돌
__콜리전컴포넌트
__충돌이벤트이해하기
__콜리전채널이해하기
____실습6.01:Dodgeball클래스생성하기
__피지컬머티리얼생성하기
____실습6.02:DodgeballProjectile에프로젝타일무브먼트컴포넌트추가하기
__타이머도입하기
__액터생성방법이해하기
____실습6.03:EnemyCharacter클래스에발사체던지기로직추가하기
__Wall클래스생성하기
____실습6.04:Wall클래스생성하기
__빅토리박스생성하기
____실습6.05:VictoryBox클래스만들기
____실습6.06:DodgeballProjectile에ProjectileMovementComponent접근함수추가하기
____활동6.01:EnemyCharacter의SpawnActor를SpawnActorDeferred함수로대체하기
__요약

7장.UE5유틸리티활용
__기술적요구사항
__모범사례:느슨한결합
__블루프린트함수라이브러리
____실습7.01:CanSeeActor함수를블루프린트함수라이브러리로옮기기
__액터컴포넌트
____실습7.02:HealthComponent액터컴포넌트만들기
____실습7.03:HealthComponent액터컴포넌트통합하기
__인터페이스살펴보기
__블루프린트네이티브이벤트
____실습7.04:HealthInterface클래스만들기
____활동7.01:LookAtActor로직을액터컴포넌트로옮기기
__요약

8장.UMG로사용자인터페이스만들기
__기술적요구사항
__게임UI
__UMG기초
____실습8.01:위젯블루프린트생성하기
__앵커소개하기
____실습8.02:UMG앵커편집하기
____실습8.03:RestartWidgetC++클래스생성하기
____실습8.04:RestartWidget을화면에추가하는로직만들기
____실습8.05:DodgeballPlayerController블루프린트클래스설정하기
__프로그레스바이해하기
____실습8.06:체력바C++로직추가하기
____활동8.01:RestartWidget향상시키기
__요약

9장.오디오-비주얼요소추가
__기술적요구사항
__UE5의오디오
____실습9.01:오디오파일임포트하기
____실습9.02:닷지볼이표면에부딪힐때마다사운드재생하기
__SoundAttenuation
____실습9.03:BOUNDSOUND를3D사운드로변경하기
____실습9.04:게임에배경음악추가하기
__파티클시스템이해하기
____실습9.05:닷지볼이플레이어에맞았을때파티클시스템생성하기
____활동9.01:닷지볼이플레이어에맞을때오디오재생하기
__레벨디자인살펴보기
____실습9.06:레벨블록아웃제작하기
__추가기능
__요약

10장.슈퍼사이드스크롤러게임만들기
__기술적요구사항
__프로젝트분석
__플레이어캐릭터
__3인칭템플릿을횡스크롤러로전환하기
____실습10.01:횡스크롤프로젝트생성및캐릭터무브먼트컴포넌트사용해보기
____활동10.01:캐릭터가더높이점프하도록만들기
__슈퍼사이드스크롤러게임의기능살펴보기
____적캐릭터
____파워업
____수집용아이템
____헤드업디스플레이
____실습10.02:페르소나에디터와기본마네킹스켈레톤의가중치조정해보기
____활동10.02:스켈레탈본조작및애니메이션
__언리얼엔진5의애니메이션이해하기
____스켈레톤
____스켈레탈메시
____애니메이션시퀀스
____실습10.03:캐릭터와애니메이션의임포트및설정
____활동10.03:더많은커스텀애니메이션을임포트하고캐릭터의달리는애니메이션확인하기
__요약

11장.블렌드스페이스1D,키바인딩,스테이트머신
__기술적요구사항
__블렌드스페이스생성하기
____1D블렌드스페이스vs.일반블렌드스페이스
____실습11.01:CharacterMovement블렌드스페이스1D생성하기
____활동11.01:걷기와뛰기애니메이션을블렌드스페이스에추가하기
__메인캐릭터애니메이션블루프린트
____애니메이션블루프린트
____실습11.02:캐릭터애니메이션블루프린트에블렌드스페이스추가하기
__속도벡터란?
____실습11.03:블렌드스페이스에캐릭터의Speed변수전달하기
____활동11.02:게임에서달리는애니메이션미리보기
__향상된입력시스템
____실습11.04:전력질주를위한입력추가하기
____실습11.05:캐릭터블루프린트의부모클래스재설정하기
____실습11.06:캐릭터전력질주기능코딩하기
____활동11.03:던지기입력구현하기
__애니메이션스테이트머신
____실습11.07:플레이어캐릭터의이동및점프스테이트머신
____트랜지션룰
____실습11.08:스테이트머신에새스테이트와트랜지션룰추가하기
____실습11.09:TimeRemainingRatio함수
____활동11.04:Movement와Jumping스테이트머신완성하기
__요약

12장.애니메이션블렌딩과몽타주
__기술적요구사항
__애니메이션블렌딩,애님슬롯,애니메이션몽타주
____실습12.01:애니메이션몽타주설정하기
__애니메이션몽타주
____실습12.02:몽타주에던지기애니메이션추가하기
__AnimSlotManager
____실습12.03:새애님슬롯추가하기
__SaveCachedPose
____실습12.04:Movement스테이트머신의SaveCachedPose
__Layeredblendperbone
____실습12.05:UpperBody애님슬롯과애니메이션블렌딩하기
____실습12.06:Throw애니메이션미리보기
__슈퍼사이드스크롤러게임의적
____실습12.07:기본적C++클래스생성하기
____실습12.08:적애니메이션블루프린트의생성및적용
__머티리얼과머티리얼인스턴스
____실

출판사 서평

◈이책에서다루는내용◈
◆모든기능을갖춘3인칭캐릭터와적제작
◆키보드,마우스,게임패드를사용한레벨탐색기능구현
◆콜리전과파티클이펙트를활용한프로그램로직및게임메카닉구현
◆블랙보드와비헤이비어트리를활용한AI탐색기능구현
◆애니메이션블루프린트와애니메이션몽타주를활용한캐릭터애니메이션제작
◆멋진비주얼이펙트및오디오이펙트를활용한게임폴리싱방법
◆헤드-업디스플레이(HUD)를활용한기본적인게임UI의제작
◆게임에멀티플레이어를구현하는방법

◈이책의대상독자◈
프로젝트에언리얼엔진5를처음사용하려는게임개발자를대상으로하는책이다.하지만이전에언리얼엔진을사용한경험이있으며자신의기술을통합하고향상시켜적용하려는이들에게도유용하다.이책에설명된개념을충분히이해하려면C++에대한기본지식이필요하며변수,함수,클래스,다형성,포인터를이해해야한다.또한책에사용된IDE와의완전한호환성을위해윈도우시스템을권장한다.

◈이책의구성◈
1장.'언리얼엔진소개'에서는언리얼엔진에디터를살펴본다.에디터인터페이스를소개하며,레벨에서액터를조작하는방법과비주얼스크립팅언어인블루프린트의기초를이해하기위한내용을다룬다.또한메시(Mesh)에서사용할수있는머티리얼애셋을만드는방법도알아본다.
2장.'언리얼엔진을활용한작업'에서는C++프로젝트를생성하고프로젝트의콘텐츠폴더(ContentFolder)를설정하는방법과함께언리얼엔진게임의기본사항을소개한다.또한애니메이션관련내용도살펴본다.
3장.'Character클래스컴포넌트및블루프린트설정'에서는객체상속에대한개념및입력매핑을활용하는방법과함께언리얼캐릭터(UnrealCharacter)클래스를소개한다.
4장.'플레이어입력시작'에서는플레이어입력을살펴본다.액션매핑및축매핑을활용해점프나이동동작과같은인게임액션(in-gameaction)에키눌림이나터치입력을연결하는방법을배운다.
5장.'라인트레이스를활용한충돌처리'에서는Dodgeball이라는새로운프로젝트를시작한다.이장에서는라인트레이스의개념과게임제작에라인트레이스를사용하는다양한방법을배운다.
6장.'콜리전오브젝트설정'에서는물체충돌(objectcollision)을알아본다.이장에서콜리전컴포넌트,콜리전이벤트,피직스시뮬레이션을배우고타이머,프로젝타일무브먼트컴포넌트(projectilemovementcomponent),피직스머티리얼도함께살펴본다.
7장.'언리얼엔진5유틸리티활용'에서는언리얼엔진에서활용할수있는몇가지유용한유틸리티를구현하는방법을설명한다.여기에는액터컴포넌트,인터페이스,블루프린트함수라이브러리에대한설명이포함된다.이런유틸리티는개발팀에합류하는다른사람들이프로젝트를좋은구조로유지하고,쉽게접근할수있도록도와준다.
8장.'UMG로사용자인터페이스만들기'에서는게임UI를설명한다.언리얼엔진의UI시스템인UMG를사용해메뉴,HUD를만드는방법을배운다.또한프로그레스바를사용해플레이어캐릭터의체력을표시하는방법도살펴본다.
9장.'오디오-비주얼요소추가'에서는언리얼엔진의사운드및파티클이펙트를소개한다.프로젝트에사운드파일을임포트하는방법과2D및3D사운드로사용하는방법,기존의파티클시스템을게임에추가하는방법을배운다.마지막으로,지난몇장에걸쳐만든모든게임메카닉을사용해Dodgeball프로젝트를완성할새레벨을제작한다.
10장.'슈퍼사이드스크롤러게임만들기'에서는SuperSideScroller프로젝트의목표를상세히살펴보며,기본마네킹스켈레톤을조작하는예제를통해언리얼엔진5에서애니메이션이동작하는방식을다룬다.
11장.'블렌드스페이스1D,키바인딩,스테이트머신을활용한작업'에서는플레이어캐릭터의이동기반애니메이션로직을제작하기위해블렌드스페이스1D,애니메이션스테이트머신,언리얼엔진5의향상된입력시스템을사용하는방법을배운다.
12장.'애니메이션블렌딩과몽타주'에서는플레이어캐릭터가움직이면서발사체를던질때동시에애니메이션이재생되도록하기위해언리얼엔진5의애니메이션블렌딩과애니메이션몽타주같은애니메이션개념을추가적으로배운다.
13장.'적인공지능생성및추가'에서는플레이어가마주할수있는적에대한간단한AI기능을만들기위해언리얼엔진5의AI컨트롤러,블랙보드,비헤이비어트리를사용하는방법을배운다.
14장.'플레이어발사체생성'에서는게임물체를생성하고파괴하는방법을배운다.또한애님노티파이,애님노티파이스테이트와같은애니메이션기능을추가적으로사용해애니메이션도중에플레이어발사체를생성하는방법을살펴본다.
15장.'수집아이템,강화아이템,픽업아이템'에서는언리얼엔진5의UMGUI개념을소개하고,플레이어를위한수집아이템,강화아이템을제작한다.
16장.'멀티플레이어기본'에서는서버-클라이언트아키텍처가동작하는방식을소개하고연결,액터소유권,역할(role),변수레플리케이션과같은멀티플레이어개념을다룬다.또한2D블렌드스페이스를살펴보고,2차원움직임에대한애니메이션그리드를생성하고,TransformModifyBone컨트롤을사용해본의트랜스폼을런타임에변경하는방법을배운다.
17장.'리모트프로시저콜사용'에서는리모트프로시저콜이동작하는방식과다른타입의RPC와RPC를사용할때고려해야할사항등을설명한다.또한열거형을에디터에노출시키는방법과배열인덱스래핑을사용해양방향으로배열을순회하는방법을소개한다.
18장.'멀티플레이어에서게임플레이프레임워크클래스사용'에서는멀티플레이에서게임플레이프레임워크의가장중요한클래스를사용하는방법을설명한다.게임모드,플레이어스테이트,게임스테이트와몇가지유용한엔진내장기능도살펴본다.