책 소개
버전별 소스 코드는 여기에서 내려받을 수 있습니다(최신 업데이트는 Unreal Engine v4.22 기준입니다).
요약
언리얼 엔진 학습에 목말라하는 게임 개발자에게 단비 같은 언리얼 엔진 프로그래밍 책이다. 에픽게임즈 본사의 개발자 프로그램 ‘언리얼 데브 그랜트’를 수상한 저자의 책으로, 언리얼 엔진의 프로그래밍을 체계적으로 학습하기 위해 처음부터 끝까지 언리얼 C++만 사용해 게임을 제작하는 것이 특징이다.
이 책에서 다루는 내용
■ 입문자를 고려해 언리얼 엔진의 구성 요소를 처음부터 하나씩 단계별로 설명
■ 언리얼 C++ 프로그래밍 문법에 대한 분석과 가이드 제시
■ 언리얼 프로그래밍 능력 향상을 위한 100% 언리얼 C++ 예제 제공
■ 효과적인 언리얼 프로그래밍을 위한 방법 제시
■ 언리얼 엔진 게임 프레임워크의 체계적인 분석과 활용
■ 애니메이션 시스템, 물리 엔진, UI 시스템, 비헤이비어 트리 인공지능의 활용
이 책의 대상 독자
■ 언리얼 프로그래밍에 입문하고 싶은 게임 개발자
■ 언리얼 엔진으로 콘텐츠를 제작하고 싶은 게임 개발자
■ 게임 개발에 입문하고 싶은 프로그래머
■ 언리얼 엔진의 구조를 이해하고 싶은 프로그래머
상세 이미지
목차
목차
- Chapter 1. 개발 환경 설정
- 기본 프로그램의 설치
- 언리얼 프로젝트의 생성
- 언리얼 C++ 개발 환경 설정
- 예제 프로젝트의 준비
- Chapter 2. 액터의 설계
- 언리얼 콘텐츠의 구성 요소
- 액터의 설계
- 액터와 에디터 연동
- 액터 기능의 확장
- 객체 유형과 값 유형
- 애셋의 지정
- Chapter 3. 움직이는 액터의 제작
- 로깅 환경의 설정
- 어설션
- 액터의 주요 이벤트 함수
- 움직이는 액터의 설계
- 무브먼트 컴포넌트의 활용
- 프로젝트의 재구성
- Chapter 4. 게임플레이 프레임워크
- 게임 모드
- 플레이어의 입장
- Chapter 5. 폰의 제작과 조작
- 폰의 구성 요소
- 폰의 조작
- 애니메이션의 설정
- Chapter 6. 캐릭터의 제작과 컨트롤
- 캐릭터 모델
- 컨트롤 회전의 활용
- 삼인칭 컨트롤 구현(GTA 방식)
- 삼인칭 컨트롤 구현(디아블로 방식)
- 컨트롤 설정의 변경
- Chapter 7. 애니메이션 시스템의 설계
- 애니메이션 블루프린트
- 폰과 데이터 연동
- 스테이트 머신의 제작
- 점프 기능의 구현
- 애니메이션 리타겟팅
- 점프의 구현
- Chapter 8. 애니메이션 시스템 활용
- 애니메이션 몽타주
- 델리게이트
- 애니메이션 노티파이
- 콤보 공격의 구현
- Chapter 9. 충돌 설정과 대미지 전달
- 콜리전 설정
- 트레이스 채널의 활용
- 디버그 드로잉
- 대미지 프레임워크
- Chapter 10. 아이템 상자와 무기 제작
- 캐릭터 소켓 설정
- 무기 액터의 제작
- 아이템 상자의 제작
- 아이템의 습득
- Chapter 11. 게임 데이터와 UI 위젯
- 엑셀 데이터의 활용
- 액터 컴포넌트의 제작
- 캐릭터 위젯 UI 제작
- 모듈과 빌드 설정
- UI와 데이터의 연동
- Chapter 12. AI 컨트롤러와 비헤이비어 트리
- AIController와 내비게이션 시스템
- 비헤이비어 트리 시스템
- NPC의 추격 기능 구현
- NPC의 공격
- Chapter 13. 프로젝트의 설정과 무한 맵의 제작
- 프로젝트의 정리와 모듈의 추가
- INI 설정과 애셋의 지연 로딩
- 무한 맵의 생성
- 네비게이션 메시 시스템 설정
- Chapter 14. 게임플레이의 제작
- 캐릭터의 스테이트 설정
- 플레이어 데이터와 UI 연동
- 게임 데이터의 관리
- Chapter 15. 게임의 완성
- 게임 데이터의 저장과 로딩
- 전투 시스템의 설계
- 타이틀 화면의 제작
- 게임의 중지와 결과 화면
- Appendix A. 유용한 비주얼 스튜디오 2017 단축키 모음
- Appendix B. 비주얼 로거의 활용
도서 오류 신고
정오표
정오표
언리얼 엔진 4.21 버전 관련 내용은 소스코드를 참고해주세요.
[p.68 : 코드 2-4 Fountain.cpp]
아래 이미지의 코드 6줄 제거.
[p.72 : 아래에서 1행]
UPROPERY 매크로
->
UPROPERTY 매크로
[p.195 : 7행]
[p.195 : 20행]
[p.204]
[p.207]
애니메이션 시스템 저작
->
애니메이션 시스템 제작
[p.210]
클래스 정보
->
클래스 세팅
[p.215 : 위에서 12행]
NativeAnimationUpdate 함수를
->
NativeUpdateAnimation 함수를
[p.300]
"DebugDrawHelpers.h"
->
"DrawDebugHelpers.h"
[p.311]
SetActorCollisionEnabled
->
SetActorEnableCollision
[p.358 코드 11-5]
ABCHECK(ABCharacterTable->RowMap.Num() > 0);
->
ABCHECK(ABCharacterTable->GetRowMap().Num() > 0);
[p.415 : 2행]
다음의 셋 중 하나의 값을 반환해야 한다.
->
다음의 넷 중 하나의 값을 반환해야 한다.
[p.417]
[p.429 3행 내용 추가]
for (auto const& OverlapResult : OverlapResults)
[p.441]
BTTask를 부모로 하는
->
BTTaskNode를 부모로 하는
[p.504 : 1행]
[p.520 코드]
auto ABPlayerState = Cast
->
auto ABPlayerState = Cast
[p.539]
파일-현재를 다른 이름으로 저장
->
파일-현재 레벨을 다른 이름으로 저장
[p.547]
[p.556]
코드 15-5 PlayerState.h
->
코드 15-5 ABPlayerState.h
[p.557]
코드 15-5 PlayerState.cpp
->
코드 15-5 PlayerState.h
[p.582]
그림 15-18 프로젝트 세팅
->
월드 세팅
[p.636: 찾아보기 N]
NativeAnimationUpdate
->
NativeUpdateAnimation