장바구니 담기 close

장바구니에 상품을 담았습니다.

C++로 개발하는 언리얼 엔진 4

C++로 개발하는 언리얼 엔진 4 - 체계적으로 배우는 언리얼 엔진 가이드

  • 윌리엄셰리프
  • |
  • 에이콘출판
  • |
  • 2019-02-25 출간
  • |
  • 604페이지
  • |
  • 188 X 235 X 28 mm
  • |
  • ISBN 9791161752716
판매가

40,000원

즉시할인가

36,000

카드할인

0원(즉시할인 0%)

적립금

2,000원 적립(5%적립)

배송비

무료배송

(제주/도서산간 배송 추가비용:3,000원)

추가혜택

네이버페이 무조건 1%적립+ 추가 1%적립

수량
+ -
총주문금액
36,000

이 상품은 품절된 상품입니다

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




★ 이 책에서 다루는 내용 ★

■ 유지 보수를 줄이도록 재사용 가능한 코드가 포함된 함수 라이브러리 작성(블루프린트)
■ 성능을 향상시키도록 블루프린트를 C++의 저수준 함수로 변경
■ 기획자의 업무 흐름에 맞춰 복잡한 구현의 세부적인 것을 단순하게 추상화하는 방법
■ 게임에 하드웨어 통합과 같은 특별한 기능을 추가하기 위해 이미 존재하는 라이브러리를 사용하는 방법
■ 블루프린트와 C++에서 AI 태스크와 비헤이비어 개발
■ UI 요소의 콘텐츠와 외형을 제어하기 위한 데이터 생성

★ 이 책의 대상 독자 ★

게임 디자인 및 C++의 기본을 이해하고 언리얼로 만든 게임에 기본 코드를 통합하려는 게임 개발자를 대상으로 한다. 이 책을 통해 엔진을 확장하거나 레벨을 만들 때, 디자이너가 제어하고 유연하게 사용할 수 있는 시스템과 액터를 구현하려는 프로그래머가 될 수 있을 것이다.

★ 이 책의 구성 ★

1장, ‘UE4 개발 툴’에서는 UE4 게임 개발을 시작하기 위한 기본 레시피와 게임을 만드는 코드를 생성하는 데 사용되는 기본 도구에 대해 설명한다.
2장, ‘클래스 생성하기’에서는 UE4 블루프린트 에디터와 잘 통합되는 C++ 클래스 및 구조체를 만드는 방법에 중점을 둔다. 이 클래스는 UCLASSES라는 일반 C++ 클래스의 상위 버전이다.
3장, ‘메모리 관리와 스마트’에서는 포인터 독자가 세 가지 유형의 포인터를 통해 사용하도록 하며 가비지 컬렉션과 관련된 몇 가지 일반적인 함정을 언급한다. Visual Studio 또는 XCode를 사용해 크래시를 분석하거나 기능이 올바르게 구현됐는지 확인하는 방법을 보여준다.
4장, ‘액터와 컴포넌트’에서는 생성한 사용자 정의 액터와 컴포넌트를 가지고 각각 어떤 목적을 제공하는지, 어떻게 서로 함께 동작하는지를 다루게 된다.
5장, ‘이벤트와 델리게이트 처리하기’에서는 델리게이트, 이벤트와 이벤트 핸들러에 대해 설명하고 자체 구현을 만드는 과정을 안내한다.

★ 옮긴이의 말 ★

언리얼 엔진 4(UE4)를 사용해 대규모 게임을 개발하려면 필수적으로 C++로 개발해야 한다. 공식 매뉴얼의 한글화가 잘 돼 있기는 하지만 거의 블루프린트에 대한 것이고, 실제로 개발에 필요한 내용들은 국내외 할 것 없이 공유가 안 되는 것이 현실이다.
팀에 언리얼 전문가가 있지 않은 이상, 결과를 내기 어렵거나 개발 기간이 오래 걸리고 품질도 좋지 않은 것이 대부분이다. 이때 체계적인 학습을 할 수 있는 서적이 있으면 도움이 될 텐데, 국내에서는 그런 책이 없었다.
출간한 언리얼 관련 원서는 거의 다 읽었었다. 그 가운데, 가장 체계적인 책이 바로 이 책이었다. 세 번째 언리얼 프로젝트를 진행하면서 읽었는데, 이 책을 미리 봤더라면 하는 아쉬움이 남았던 기억이 있다.
새로운 언리얼 엔진 4 프로젝트를 진행하게 됐고 팀원들의 언리얼 사용 기간이 얼마 안 된 상황이었다. 어떻게 하면 언리얼 엔진 4를 효율적으로 빠르게 학습시키고, 결과물을 만들 수 있을까 고민했다. 궁리 끝에 팀원들과 합의해 일과 시간 이후에 장별로 번역을 하고, 서로에게 설명하는 것으로 모임을 진행했다. 결과적으로 개인적으로도 많은 도움이 됐을 뿐만 아니라 팀과 프로젝트 발전에도 많은 기여를 했다. 그리고 앞으로 언리얼 엔진 4로 개발을 해야 하는 많은 프로그래머에게도 도움이 됐으면 좋겠다.

6장, ‘입력과 충돌’에서는 사용자 입력을 C++ 함수에 연결하는 방법과 C++에서 UE4 충돌을 처리하는 방법을 보여준다. 또한 사용자 입력과 충돌과 같은 게임 이벤트의 기본 처리 기능을 제공하므로 디자이너는 블루프린트를 사용해 필요한 경우 재정의할 수 있다.
7장, ‘클래스와 인터페이스 간 통신’에서는 자신만의 UInterfaces를 어떻게 작성하는지 보여주고 클래스 간 연결을 최소화하고 코드를 깨끗하게 유지하는 데 C++ 내에서 이를 활용하는 방법을 알려준다.
8장, ‘C++와 언리얼 에디터 통합하기’에서는 사용자 정의 블루프린트와 애니메이션 노드를 처음부터 생성해 에디터를 사용자 정의하는 방법을 보여준다. 또한 사용자가 만든 유형을 검사하기 위해 사용자 정의 데이터 윈도우와 사용자 정의 디테일 패널을 구현할 것이다.
9장, ‘유저 인터페이스’에서는 UI와 UMG는 플레이어에게 피드백을 표시하는 것이 게임 디자인에서 가장 중요한 요소 중 하나임을 보여준다. 이는 일반적으로 게임 내에서 일종의 HUD 또는 최소 메뉴와 관련된다.
10장, ‘NPC를 제어하기 위한 AI’에서는 약간의 인공지능(AI)로 NPC 캐릭터를 제어하는 방법을 다룬다.
11장, ‘사용자 정의 머티리얼과 셰이더’에서는 UE4 에디터에서 사용되는 사용자 정의 머티리얼과 오디오 그래프 노드를 만드는 것에 대해 이야기한다.
12장, ‘UE4 API로 작업하면서 API’에서는 프로그래머로서 엔진(및 PC)에게 무엇을 해야 하는지에 관한 지시 방법을 설명한다. 각 모듈에는 API가 있다. API를 사용하려면 빌드에서 프로젝트 이름 .Build.cs 파일로 사용할 모든 API를 나열해야 하는 매우 중요한 링크 단계가 있다.


목차


1장. UE4 개발 툴
__소개
__Visual Studio 설치
__Visual Studio에서 첫 C++ 프로젝트 생성하고 빌드하기
__Visual Studio에서 코드 글꼴과 컬러 변경하기
__확장 - Visual Studio에서 색상 테마 변경
__Visual Studio에서 코드 서식 지정(자동 완성 설정)
__Visual Studio에서 단축키
__Visual Studio에서 확장된 마우스 사용
__UE4 - 설치
__UE4 - 첫 번째 프로젝트
__UE4 - UE_LOG로 로깅
__GitHub의 프로젝트 관리 - 소스 컨트롤
__GitHub의 프로젝트 관리-이슈 트래커
__VisualStudio.com에서 프로젝트 관리 - 프로젝트에서 태스크 관리
__VisualStudio.com의 프로젝트 관리-User Story와 태스크의 생성

2장. 클래스 생성하기
__소개
__UCLASS 만들기-UObject에서 파생하기
__사용자 편집 가능한 UPROPERTY 만들기
__블루프린트에서 UPROPERTY 접근하기
__UPROPERTY 타입으로 UCLASS 작성하기
__커스텀 UCLASS에서 블루프린트 만들기
__UObject 파생 클래스 인스턴스화하기(NewObject< >)
__UObject 파생 클래스 파괴하기
__USTRUCT 만들기
__UENUM( ) 만들기
__UFUNCTION 만들기

3장. 메모리 관리와 스마트 포인터
__소개
__관리되지 않는 메모리 - malloc( )/free( ) 사용
__관리되지 않는 메모리 - new/delete 사용
__관리되는 메모리 - NewObject< > 사용
__관리되는 메모리 - 메모리 해제
__관리되는 메모리 - 스마트 포인터(TSharedPtr, TWeakPtr, TUniquePtr)를 사용해
__객체 추적하기
__TUniquePtr를 사용해 객체 추적하기
__언리얼의 가비지 컬렉션 시스템과 UPROPERTY( )
__가비지 컬렉션의 강제 수행
__중단점과 단계적 코드 실행
__버그 찾기와 콜 스택 사용
__프로파일러를 사용해 핫 스팟 식별

4장. 액터와 컴포넌트
__소개
__C++에서 사용자 정의 액터 만들기
__SpawnActor를 이용한 액터 생성
__Destroy와 Timer를 이용한 액터 파괴
__SetLifeSpan을 사용한 지연된 액터의 파괴
__조합을 통한 액터의 기능 구현
__FObjectFinder를 사용해 컴포넌트에 에셋 로딩하기
__상속을 통한 액터의 기능 구현
__계층 구조를 만드는 컴포넌트 붙이기
__사용자 정의 액터 컴포넌트 생성
__사용자 정의 신 컴포넌트 생성
__사용자 정의 프리미티브 컴포넌트 생성
__RPG를 위한 인벤토리 컴포넌트 생성
__궤도 이동 컴포넌트 생성
__유닛들을 스폰하는 빌딩 생성

5장. 이벤트와 델리게이트 처리하기
__가상 함수로 구현된 이벤트 핸들링
__UFUNCTION에 바인딩된 델리게이트 생성
__델리게이트 등록 해제하기
__입력 파라미터를 사용하는 델리게이트 생성
__델리게이트 바인딩을 사용해 페이로드 데이터 전달
__멀티-캐스트 델리게이트 생성
__사용자 정의 이벤트 생성
__Time of Day 핸들러 생성
__1인칭 슈터 게임을 위한 리스폰 Pickup 만들기

6장. 입력과 충돌
__소개
__축 매핑 - FPS 캐릭터에 대한 키보드, 마우스 및 게임 패드 방향 입력
__축 매핑-정규화된 입력
__액션 매핑 - FPS 캐릭터를 위한 단일 버튼 처리
__C++에서 축, 액션 매핑 추가하기
__마우스 UI 입력 처리하기
__UMG 키보드 UI 단축키들
__충돌-Ignore를 사용해 다른 것을 통과하게 해주는 오브젝트
__충돌 - Overlap을 사용한 오브젝트 들어올리기
__충돌 - Block을 사용한 상호 침투 막기

7장. 클래스와 인터페이스 간 통신
__소개
__UInterface 만들기
__UInterface 객체 구현
__네이티브 코드에서 UInterface 구현을 위한 캐스팅
__C++에서 네이티브 UInterface 함수 호출
__다른 UINTERFACE에서 상속받기
__C++에서 UInterface 함수의 재정의
__네이티브 기반 클래스에서 블루프린트로 UInterface 함수 노출시키기
__블루프린트 안에서 UInterface 함수 구현
__블루프린트로 재정의할 수 있는 C++ UInterface 함수 구현 만들기
__C++에서 블루프린트로 정의된 인터페이스 함수 호출
__UInterfaces와 단순하게 상호작용하는 시스템 구현

8장. C++와 언리얼 에디터의 통합
__소개
__클래스나 구조체를 블루프린트 변수로 사용
__블루프린트에서 서브클래싱할 수 있는 클래스 혹은 구조체 만들기
__블루프린트에서 호출할 수 있는 함수 만들기
__블루프린트에서 구현할 수 있는 이벤트 만들기
__멀티-캐스트 델리게이트를 블루프린트에 노출하기
__블루프린트에서 사용할 수 있는 C++ 열거형 만들기
__에디터의 다른 위치에서 클래스 프로퍼티 편집하기
__프로퍼티를 블루프린트 에디터 그래프에서 접근 가능하게 만들기
__에디터로부터 프로퍼티 변경 이벤트에 대한 응답
__Construction 스크립트 네이티브 코드 구현
__새로운 에디터 모듈 만들기
__새 툴바 버튼 만들기
__새 메뉴 엔트리 만들기
__새 에디터 창 만들기
__새 에셋 타입 만들기
__에셋에 대한 사용자 정의 컨텍스트 메뉴 만들기
__새 콘솔 명령어 만들기
__블루프린트에서 새로운 그래프 핀 비주얼라이저 만들기
__사용자 정의 세부 정보 패널을 사용해 타입 검사하기

9장. 유저 인터페이스 - UI와 UMG
__소개
__Canvas를 사용해 그리기
__스크린에 Slate 위젯 추가하기
__UI를 위한 크기가 조절되는 스크린 생성하기
__게임 내에서 UMG 엘리먼트 시트 표시 및 숨기기
__붙이는 함수로 Slate 이벤트 호출하기
__Unreal Motion Graphics에서 데이터 바인딩 사용하기
__Styles로 위젯 외형 조작하기
__사용자 정의 SWidget/UWidget 만들기

10장. NPC 제어를 위한 AI
__소개
__내비게이션 메시 배치
__추적 행동
__캐릭터에 비헤이비어 트리 연결
__태스크 노드 구성
__조건을 위한 데코레이터 사용
__주기적인 서비스 사용하기
__콤퍼짓 노드-셀럭터, 시퀀스, 단순 병렬
__근접 공격자를 위한 AI

11장. 사용자 정의 머티리얼과 셰이더
__소개
__기본 머티리얼을 사용해 색상 수정하기
__머티리얼을 사용해 위치 수정하기
__사용자 지정 노드를 통한 셰이더 코드
__머티리얼 함수
__셰이더 파라미터와 머티리얼 인스턴스
__Glimmer
__나뭇잎과 바람
__시야각에 따른 반사율
__임의성 - 펄린 노이즈
__랜드스케이프 셰이딩

12장. UE4 API로 작업하기
__소개
__Core/Logging API-사용자 정의 로그 카테고리 정의하기
__Core/Logging API - FmessageLog로 메시지들을 메시지 로그에 작성하기
__Core/Math API - FRotator를 사용한 회전
__Core/Math API?FQuat를 이용한 회전
__Core/Math API - 한 오브젝트를 다른 것과 마주보기 위한 FRotationMatrix를 사용한
__회전
__Landscape API - 펄린 노이즈를 사용한 랜드스케이프 생성
__Foliage API - 레벨에 절차적으로 나무 추가하기
__Landscape와 Foliage API - 랜드스케이프와 폴리지 API를 이용한 맵 생성
__GameplayAbilities API - 게임 컨트롤로 액터의 게임 플레이 능력을 작동시키기
__GameplayAbilities API - UAttributeSet으로 스탯 구현하기
__GameplayAbilities API -GameplayEffect로 버프 구현하기
__GameplayTags AP - 액터에 GameplayTags 붙이기
__GmaplayTasks API - GameplayTasks로 일을 일어나게 하기
__HTTP API - 웹 리퀘스트
__HTTP API - 상태바

도서소개


 

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.