서브메뉴

본문

유니티 게임 프로그래밍 바이블 (23가지 다양한 게임을 만들면서 배우는 유니티 게임 개발의 모든 것)
유니티 게임 프로그래밍 바이블 (23가지 다양한 게임을 만들면서 배우는 유니티 게임 개발의 모든 것)
저자 : 요시야 미키토|후루카와 히데카즈|이치죠 타카아키|니시모리 타케토시|무로호시 료타
출판사 : 위키북스
출판년 : 2019
ISBN : 9791158391362

책소개

《유니티 게임 프로그래밍 바이블》은 이제 막 유니티 초보자의 길을 졸업한 개발자에게 한 단계 올라설 수 있는 실력을 갖추도록 도와주는 정보를 제공한다. 계속 진화하는 유니티 개발 환경의 최신 기능 활용법을 설명함으로써 게임 개발의 효율화와 새로운 게임에 대한 도전에 두려움 없이 나아갈 수 있도록 돕는다.

가능한 한 많은 장르나 테마를 수록하여 당장 실전에서 필요한 정보뿐만 아니라 앞으로 알아 두면 게임 제작에 도움이 될 만한 정보를 총망라해서 설명하고 있어 실질적인 게임 개발에 대한 아이디어와 노하우를 익히는 데 많은 도움이 될 것이다.
[교보문고에서 제공한 정보입니다.]

출판사 서평

★ 이 책에서 다루는 내용 ★

- 개발 중인 게임이나 앞으로 개발할 게임에 즉시 사용할 수 있는 기술을 익힌다.
- 전문가로 가는 유니티 고급 기술을 활용한 23개의 프로젝트를 만들면서 배운다.
- 현업에서 활약 중인 저자들이 설명하는 완성도 높은 샘플 게임을 배우면서 소스코드나 에셋 등 모든 예제를 내려받아 실행할 수 있다.

◎ 3D
- 캐릭터 조작(애니메이터/애니메이터 컨트롤러/메카님/애니메이션 클립/아바타/애니메이션 레이어/IK/블렌드 트리/Animator Override Controller)
- 그래픽 최적화(카메라 컬링/오클루전 컬링/다이내믹 배칭/Frame Debuggger/Optimize Game Objects)
- 커스텀 셰이더, 셰이더 언어
- Particle System(슈리켄), Terrain, Procedural Skybox, 내비게이션 시스템(NavMesh)

◎ 2D
- Anima2D, Sprite Editor, SpriteMesh, IK, Pose Manager, Animation
- Tilemap
- Perspective Projection, SpriteRenderer, Physics 2D, ParticleSystem, TextureAtlas

◎ UI/UX
- TextMesh Pro, ScriptableObject
- Input, 가상 패드, 카메라 제어, CharacterController, uGUI

◎ AR/VR
- ARKit, ARCore, Google VR

◎ 리소스
- WebCamTexture, Input.Location, Input.compass, Google Maps APIs
- JsonUtility, BinaryFormatter, ThreadPool, MD5CryptoServiceProvider, AESManaged
- AssetBundle, AssetbundleGraphTool
- Excel Importer, ScriptableObject
- 사운드 제어(BGM의 페이드, Audio Mixer, 볼륨 설정 만들기, 사운드 처리 최적화)

◎ 기타
- Unity ML-Agents
- 프로파일링, 프레임 디버깅, 성능 튜닝
- 동영상 광고, Unity Ads, 앱의 마네타이즈



요시야 미키토 - 19장
후루카와 히데카즈 - 13, 14, 15, 21장
이치죠 타카아키 - 20장
니시모리 타케토시 - 08, 18장
무로호시 료타 - 10장
쿠루마타니 하야토 - 16, 17장
미나토 신페이 - 01, 02장
츠치야 츠카사 - 07장
쿠로카와 유스케 - 22장
나카무라 유이치 - 23장
Garyu - 05, 06장
코포코포 - 11, 12장
카세 - 04장
Hataken - 09장
Monmoko - 03장
[교보문고에서 제공한 정보입니다.]

목차정보

▣ 01장: 3D RUN 게임
샘플에서 다루는 내용
샘플 게임의 플레이 방식
유니티 애니메이션의 기초 지식
__메카님이란
__애니메이터의 기능
__애니메이터 컨트롤러의 기본
__스테이트 머신에서 애니메이션 동작 연결
RUN 게임 프로그램의 설명
__프로그램의 개요
__애니메이터 컨트롤러 에셋의 구성
__애니메이션을 제어하는 스크립트
정리

▣ 02장: 3D RUN & 사격 게임
샘플에서 다루는 내용
샘플 게임의 플레이 방법
캐릭터를 애니메이션하는 「아바타」의 기초 지식
__3D 애니메이션의 기초 기술
__유니티에서 3D 애니메이션 기술의 활용
아바타 만들기
애니메이션 레이어의 설정
__애니메이션 레이어를 이용한 애니메이션의 합성
__애니메이션 레이어의 기본 조작
__아바타 마스크
__애니메이션 레이어의 동기화
IK(Inverse Kinematics)를 이용한 캐릭터의 자세 제어
블렌드 트리
__BlendType(블렌드의 계산 방법) 지정
Animator Override Controller로 실행 시 애니메이션의 교환
「3D RUN 게임」의 기능 확장
__사격 애니메이션 만들기
__새로운 캐릭터 추가
정리

▣ 03장: 안경 언니의 거리 산책
샘플에서 다루는 내용
샘플 앱의 개발 환경
샘플 앱의 사용 방법
캐릭터의 설정
__Rig 설정
__Animation 설정
__캐릭터의 배치
환경 설정
__스카이박스와 Ambient 설정
__필드 설정
Input 설정
__키보드와 마우스 조작
__컨트롤러로 조작
__Input Manager 설정
스크립트 설정
애니메이션 설정
__Character Controller 컴포넌트
애니메이터 설정
__Animator Controller 작성
__애니메이션용 변수의 설정
__걷는다, 뛴다, 멈춘다 애니메이션 설정
__낙하 애니메이션 설정
Cloth 설정
__빈 게임 오브젝트 배치
__캡슐의 크기와 위치 맞추기
__Cloth 컴포넌트 설정

▣ 04장: 낮과 밤이 흐르는 오픈 월드
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 플레이 방법
프로젝트 구성
필드가 되는 「Terrain」을 만들고 설정하기
__Terrain의 개요
__새로운 Terrain 생성
__지형 에디트로 지형 만들기
__Paint Texture를 이용한 지면 칠하기
__Paint Details를 이용한 풀 기르기
__Terrain Settings에서 성능 조정
플레이어와 포털 만들기
__플레이어 만들기
__포털 만들기
낮과 밤의 흐름을 관리하는 「SkyboxController」
__스카이박스란
Procedural Skybox를 동적으로 조작하는 「SkyboxController」
__「SkyboxController」의 시간 경과 처리
라이트를 항상 움직이기 위해 필요한 그리기 설정
정리

▣ 05장: 3D 미로
샘플에서 다루는 내용
샘플 게임 개발 환경
샘플 게임의 플레이 방법
프로젝트를 구성하는 오브젝트
미로 자동 생성 스크립트 설정
미로 자동 생성 알고리즘
캐릭터 설정
Hit 스크립트에서의 각종 판정
미로의 메인 처리
__버튼 이벤트 처리
그래픽의 고속화 처리
__카메라링
__오클루전 컬링
__렌더링 순서의 최적화(다이나믹 배치)
__캐릭터 뼈대의 최적화
이용할 셰이더의 용도에 따라 사용 구분
기타 표준 셰이더의 소개

▣ 06장: 3D 두더지 잡기
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 사용법
프로젝트를 구성하는 오브젝트
UI 구축
게임 화면 만들기
__두더지 구멍 만들기
__두더지 구멍의 포그 설정
__오브젝트를 그리는 순서 변경
충돌 판정하기
두더지를 표시한다
두더지 그래픽
셀 룩 셰이더를 이용해 두더지 그리기
__셀 룩의 그늘 표현
__아웃라인 그리기
파티클 이펙트 만들기
__두더지를 탭했을 때의 파티클 이펙트
__새로운 파티클 만들기
자주 사용되는 파티클의 기능
__파티클의 움직임에 노이즈나 난기류 더하기
__파티클의 트레일 사용하기
__파티클에 텍스처 시트 애니메이션 사용하기

▣ 07장: 셰이더 언어
샘플에서 다루는 내용
셰이더 언어로 프로그래밍
렌더링 파이프라인
가장 간단한 셰이더 코드의 개요
가장 간단한 셰이더 코드의 정점 셰이더
__입출력 시맨틱스
__좌표 변환
가장 간단한 셰이더 코드의 프래그먼트 셰이더
셰이더 코드의 개량(램버트 확산 반사)
마무리

▣ 08장: NavMesh Can Kickers
샘플에서 다루는 내용
샘플 게임 개발 환경
샘플 게임의 실행 방법
프로젝트 구성
내비게이션 시스템(NavMesh)의 기초
__캐릭터를 놓는다
__배경 설정
__캐릭터에 에이전트를 추가해 움직여보기
__마우스로 특정 지점을 클릭해 캐릭터 움직이기
__에이전트 설정
내비게이션 시스템(NavMesh) 구현
__캐릭터와 애니메이션
__캐릭터를 점프시키기 위한 경로 설정(오프 메시 링크)
__Jumper 스크립트를 사용해 점프하기
__점프의 처리
__Climber 스크립트를 사용해 사다리 오르기
내비게이션 메시 만들기
__신규 씬의 작성과 Navigation 창 표시
__내비게이션 메시의 자동 생성
__자동 설정의 조정
__오프 메시 링크를 자동으로 생성
__오프 메시 링크를 수동으로 생성
__구역의 비용
깡통과 나무 상자로 내비게이션 메시에 장애물 설정
트러블 슈팅

▣ 09장: 2D 본 애니메이션
샘플에서 다루는 내용
샘플 앱의 개발 환경
샘플 앱 사용법
프로젝트를 구성하는 오브젝트
아틀라스를 준비한다
애니메이션 제작 준비
캐릭터를 쌓아 올리다
캐릭터에 뼈대 추가하기
SpriteMesh에 Bone 설정
캐릭터의 모션 설정
포즈 추가하기
애니메이터 컨트롤러로 모션을 제어
Animation 기능으로 모션을 붙인다
스크립트를 사용해 캐릭터 움직이기

▣ 10장: 타일맵 던전
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 플레이 방법
프로젝트의 개요
타일맵을 구성하는 요소
타일맵의 작성 흐름
스프라이트 설정
SpriteAtlas 만들기
TilePalette 만들기
Tile 에셋 만들기
타일맵 관련 게임 오브젝트 만들기
Tile 그리기
Collider 설정
TerrainTile을 사용해 효율적으로 맵 작성하기
GameObjectBrush로 코인 배치
게임의 마무리
마무리

▣ 11장: 노벨 게임
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 플레이 방법
TextMesh Pro의 개요
샘플 프로젝트의 구성
__TextMesh Pro의 기능
__TextMesh Pro로 텍스트를 표시
TextMesh Pro의 인스펙터
머터리얼에 대한 인스펙터의 자세한 내용
텍스트 입력 시 사용할 수 있는 리치 텍스트 기능
__루비의 사용법
__스타일 시트 이용 방법
__스프라이트 에셋(이모티콘)의 작성 방법
__금칙 처리
폰트 에셋의 작성 방법
__Font Asset Creator의 기능
__영어의 폰트 에셋 작성 방법
__한국어 폰트 에셋 작성 방법
TextMesh Pro의 강점과 약점
노벨 게임 제작의 개요
__노벨 게임에 필요한 것
노벨 게임의 프로그램 설명
__노벨 데이터의 구조
__노벨 명령의 구현
__노벨 명령의 실행
__리치 텍스트 기능의 링크 구현
마무리

▣ 12장: 3D 액션
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 플레이 방법
샘플 게임에서 설명하는 개요
샘플 프로젝트 구성
프로그램의 설명
__TouchInputController 오브젝트의 자세한 내용
__BothHandVirtualPadView 오브젝트의 자세한 내용
__Fighter(FighterController) 오브젝트의 자세한 내용
__CameraModeEvent(CameraModeEventReceiver) 오브젝트의 자세한 내용
__Main Camera(CameraController) 오브젝트의 자세한 내용
기타 처리의 프로그램 개요

▣ 13장: AR 댄스 믹스 - ARKit 대응판 -
샘플에서 다루는 내용
샘플 앱의 개발 환경
샘플 앱의 사용 방법
ARKit의 개요
프로젝트의 설정
샘플 씬의 실행
__iOS 기기를 사용하는 씬의 실행
ARKitRemote에서 AR 앱의 동작 확인
프로그램 설명
__현실 공간의 카메라 위치와 유니티의 카메라 위치 맞추기
__카메라 영상을 배경으로 표시
__현실 공간의 밝기와 유니티 씬 내의 밝기를 맞춘다
__평면 검지 처리의 구현
__히트 테스트의 구현
__그림자 추가
__캐릭터 추가
__라벨 추가
「Unity ARKit Plugin」의 편리한 스크립트
__UnityARGeneratePlane 스크립트
__PointCloudParticleExample 스크립트
__UnityARHitTestExample 스크립트
ARKit 1.5의 새로운 기능

▣ 14장: AR 댄스 믹스 - ARCore 대응판 -
샘플에서 다루는 내용
샘플 앱의 개발 환경
샘플 앱의 사용법
ARCore의 개요
프로젝트 설정
샘플 씬의 실행
__안드로이드 기기에서 샘플 씬 실행하기
프로그램의 설명
__현실 공간의 카메라 위치와 유니티의 카메라 위치 맞추기
__현실 공간의 밝기와 유니티 씬 내의 밝기를 맞춘다
__프레임 정보의 취득
__세션 정보의 취득
__평면 검지 처리의 구현
__히트 테스트의 구현
__그림자 추가
__캐릭터 추가
__라벨 추가
ARCore SDK for Unity의 편리한 스크립트
__PointcloudVisualizer

▣ 15장: VR 레이싱
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 사용법
Google VR의 개요
프로젝트 설정
샘플 씬의 실행
__유니티 에디터에서 샘플 씬 실행
__안드로이드 기기에서 샘플 씬 실행
__iOS 기기에서 샘플 씬 실행
Instant Preview에서 VR 앱의 동작 확인
프로그램의 설명
__유니티 에디터에서 움직이는 레이싱 게임 작성
__유니티 에디터에서 VR 기기의 동작 시뮬레이트
__카메라의 VR 대응
__자동차 조작의 VR 대응
__시선 포인터의 추가
__X 버튼 입력으로 게임 종료
데이드림 컨트롤러로 조작

▣ 16장: Web 카메라
샘플에서 다루는 내용
샘플 앱의 개발 환경
샘플 앱의 사용법
샘플 앱에서 샘플 씬 재생
프로그램 설명
__WebCamTexture의 구현
__캡처 이미지의 생성
__퍼즐의 생성
샘플 앱으로 얼굴 인식
__윈도우 애저의 개요
__Face API의 준비
샘플 앱(얼굴 인식)에서 샘플 씬 실행
얼굴 인식 씬 프로그램의 설명
__웹 카메라로 촬영한 이미지를 Face API에 전달
__눈을 하트 모양으로 교체하고 특정 정보 표시

▣ 17장: GPS+ 지도 운동 앱
샘플에서 다루는 내용
샘플 앱의 개발 환경
샘플 앱의 사용 방법
GPS, 전자 나침반의 개요
Google Maps API의 준비
__구글 계정 생성
__Google Static Maps API의 키 취득
__Google Places API Web Service 사용 설정
샘플 씬의 실행
프로그램의 설명
__GPS 실행
__맵 그래픽 요청
__전자 나침반의 반영
__주변 정보를 요청
__장소 이미지 요청
__취득한 장소 이미지를 장소 위치에 표시
__주변 정보를 맵에 표시하고, 점수를 환산할 때까지의 흐름

▣ 18장: AssetBundle Can Kickers
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 플레이 방법
프로젝트 구성
에셋 번들의 기초
__에셋 번들 파일 만들기
__에셋 번들로부터 에셋 로드
__에셋 번들의 언로드
__씬을 에셋 번들로 만들고 로드
__에셋 번들로 만들 수 있는 에셋과 만들 수 없는 에셋
네트워크를 통해 에셋 번들 로드하기
__네트워크 환경의 준비
__웹으로부터 에셋 번들 내려받기
__UnityWebRequest 캐싱
여러 에셋 번들의 빌드와 의존성
__에셋 번들 간의 의존성 해결
__에셋 이름으로부터 로드하는 에셋 번들 파일을 특정
__각 에셋 번들 파일의 변경을 검지하고 다시 내려받기
__에셋 번들의 캐싱 동작
에셋 증가를 사용하는 압축 설정
에셋 번들 로드 방법의 차이
에셋 번들 간의 에셋 중복
에셋 번들을 사용하기 위한 툴
__AssetBundle Browser
__AssetBundle Manager
__AssetBundleGraphTool

▣ 19장: 마스터 데이터 퀘스트
샘플에서 다루는 내용
샘플 게임의 개발 환경
샘플 게임의 플레이 방법
게임에서 마스터 데이터의 사고 방식과 제작 도구
__마스터 데이터 분리의 중요성
__마스터 데이터의 형식과 입력 툴의 선택
Excel Importer의 이용
__Excel Importer의 개요와 데이터 임포트의 흐름
__유니티에 Excel Importer 추가
__Entity 스크립트 정의
__Excel 파일의 작성과 유니티로의 임포트
__Excel 에셋의 생성과 Entity 클래스의 연결
__Excel 에셋의 반영과 이용
샘플 게임의 마스터 데이터 구현
__샘플 게임에서의 마스터 데이터
__마스터 데이터의 배치와 로드
__마스터 데이터의 이용과 모델 클래스로의 변환
__모델 데이터의 이용과 표시
마무리

▣ 20장: 사운드 처리
샘플에서 다루는 내용
샘플 게임의 플레이 방법
샘플 프로젝트의 사용법
유니티의 사운드 재생의 기초
가장 단순한 사운드 재생 스크립트
__사운드 재생 처리 구현의 핵심 4
게임에서 재생되는 소리의 종류를 나눈다
사운드 컴포넌트의 설정
__AudioClip의 설정
__AudioSource 컴포넌트의 설정
__AudioListener의 설정
사운드 연출의 구현
__Play 함수의 확장
__BGM의 페이드인
__재생 완료 통지의 구현
샘플 게임 프로젝트의 개요
발소리 구현
__3D 사운드의 설정
__애니메이션과 연동한 소리의 재생
Audio Mixer와 볼륨 설정의 구현
__Audio Mixer란
__Audio Mixer의 파라미터를 스크립트로 조작
기타 사운드 제어 관련 Tips
마무리

▣ 21장: AI 파이터
샘플에서 다루는 내용
샘플 게임의 플레이 방법
샘플 앱 개발 환경
강화 학습의 학습순서
유니티 ML-Agents의 개요
프로젝트 설정
샘플 씬의 실행
학습 환경 만들기
파이썬 스크립트에서 학습
TensorBoard를 이용한 학습 상황 확인
유니티에서의 추론
프로그램 설명
__Academy의 구현
__Brain 구현
__Player 설정 항목 지정
__Heuristic 스크립트 작성
__Agent 구현
__배경과 캔버스
__학습과 추론

▣ 22장: 스마트폰 게임 최적화
샘플에서 다루는 내용
샘플 게임 개발 환경
샘플 게임의 진행 방식
최적화 처리를 하기 전의 사전 지식
프로파일링의 순서
__유니티의 프로파일러 창
__iOS/안드로이드 실제 기기에서의 실행을 프로파일링
샘플 프로젝트의 처리 최적화
__Physics의 최적화 실시
__렌더링 최적화 실시
프로파일링하지 않고 수정 작업을 할 때

▣ 23장: 동영상 광고 넣기
이 장에서 다루는 내용
동영상 광고가 주목받는 이유
스마트폰 앱의 동영상 광고 종류
동영상 광고의 구현 방법
__동영상 광고로 확보해 두고 싶은 데이터
__동영상 광고 구현의 핵심
유니티 애즈(Unity Ads)의 특징
__유니티 애즈 대시보드의 편리한 기능
유니티 애즈로 동영상 광고 출간
마무리
[교보문고에서 제공한 정보입니다.]