책 이미지
eBook 미리보기
책 정보
· 제목 : C++로 개발하는 언리얼 엔진 4 
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9791161752716
· 쪽수 : 604쪽
· 출판일 : 2019-02-25
· 분류 : 국내도서 > 컴퓨터/모바일 > 프로그래밍 개발/방법론 > 게임 프로그래밍
· ISBN : 9791161752716
· 쪽수 : 604쪽
· 출판일 : 2019-02-25
책 소개
언리얼 엔진 4의 설치부터 클래스, 메모리 관리, 액터와 컴포넌트, 이벤트와 델리게이트, 입력과 충돌, 클래스와 인터페이스의 통신, 에디터 확장을 다루는 책이다. 또한 유저인터페이스 개발, NPC AI, 머티리얼과 ...
언리얼 엔진 4의 설치부터 클래스, 메모리 관리, 액터와 컴포넌트, 이벤트와 델리게이트, 입력과 충돌, 클래스와 인터페이스의 통신, 에디터 확장을 다루는 책이다. 또한 유저인터페이스 개발, NPC AI, 머티리얼과 셰이더에 대해서도 알려주며, 추가적으로 도움이 될만한 API 등 전체적인 기능을 소개한다.
한국어판에서는 최신 4.19 버전을 기준으로 모두 업데이트했으며, 필요한 경우에는 현업 개발자들에 의해 다시 쓰였기 때문에 에디터 편집과 확장과 같은 쉽게 찾기 힘든 자료도 일부 포함하고 있다. 언리얼 엔진 4와 C++을 사용해서 체계적으로 게임 개발을 시작하려는 분들에게 도움이 된다.
한국어판에서는 최신 4.19 버전을 기준으로 모두 업데이트했으며, 필요한 경우에는 현업 개발자들에 의해 다시 쓰였기 때문에 에디터 편집과 확장과 같은 쉽게 찾기 힘든 자료도 일부 포함하고 있다. 언리얼 엔진 4와 C++을 사용해서 체계적으로 게임 개발을 시작하려는 분들에게 도움이 된다.
목차
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 - 상태바
__소개
__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 - 상태바
저자소개
추천도서
분야의 베스트셀러 >
분야의 신간도서 >




















