유니티 입문 [3D 게임엔진 유니티 4 기초부터 차근차근]
- 원서명UNITY NYUMON - KOUKINOU GAME ENGINE NI YORU MULTI-PLATFORM KAIHATSU (ISBN 9784797365337)
- 지은이타카하시 케이지로
- 옮긴이최재원
- ISBN : 9788960773721
- 35,000원
- 2012년 12월 10일 펴냄 (절판)
- 페이퍼백 | 372쪽 | 188*250mm
- 시리즈 : 게임 개발 프로그래밍
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
일본에서 높은 호평을 받은 유니티 분야 베스트셀러!
Unity Japan 사의 에반젤리스트가 직접 저술한
멀티플랫폼 개발환경과 고성능 게임엔진 Unity3D 입문서
최신 유니티 4 버전을 완벽히 대응한 책!
유니티 4를 처음 접하는 독자뿐만 아니라 게임 개발 분야에 이제 막 입문한 초보자에게 매우 유용한 최고 가이드!
[한국어판 특별 부록] 유니티 4.0에서 새롭게 추가된 기능 (글쓴이 이득우 / 『유니티 게임 개발의 정석』)
유니티 재팬 사의 에반젤리스트가 직접 저술한 이 책은 일본인 특유의 꼼꼼함과 친절함이 듬뿍 묻어있다. 유니티의 기본 기능이나 의외로 중요하지만 지나쳐버리기 쉬운 사소한 사항까지도 빠짐없이 기술되어 있고 각 장에서는 기본적인 기능이 반복적으로 설명되므로 끝까지 읽다 보면 자연스레 유니티의 필수적인 사용법을 완전히 자기 것으로 익히게 된다. 또한 자바스크립트를 활용한 게임 개발 과정을 이해하기 쉽게 설명하고 있어 프로그래밍 초보자라도 어렵지 않게 접근할 수 있을 것이다.
무엇보다도 이 책의 장점은 간단하지만 하나의 게임을 끝까지 진행시켜 보는 데 있다. 게임 플레이의 핵심적인 기능은 물론, 타이틀 시작화면, 미션 클리어 시의 화면전환, 최종 플랫폼으로의 포팅 등 부차적이지만 게임이 갖추고 있어야 할 모든 부분을 학습하게 함으로써 독자들이 게임 개발의 성취감을 맛보게 하고 게임 개발에 더 흥미를 느끼고 매진할 수 있도록 하는 훌륭한 자극제가 될 것이다.
[ 추천의 글 ]
『유니티 입문』은 매우 훌륭한 책입니다. 저는 그간 국내에서 유니티를 보급하고 알리는 일을 맡아왔습니다. 저자인 케이지로 씨는 이 책에서 새로운 기법을 설명하는 것은 물론이고 게임 개발에 관한 접근 방식을 개선하고 능률을 높이는 방법에 대한 모든 정보를 한데 모아 보여줍니다. 따라서 이 책이 일본에서 커다란 판매를 기록했던 것은 당연한 일일지도 모릅니다. 우리나라 독자들에게도 일본에서만큼 큰 반향을 불러 일으키는 서적이 되기를 바랍니다.
날마다 새로운 모바일 플랫폼이 등장함에 따라, 향후 게임 개발은 새로운 고도에 도달할 것이며, 좋은 책들도 함께 많이 출간될 것입니다. 그 중에서도 이 책은 여러분의 서가에 으뜸으로 구비해둬야 할 필독서입니다.
이 책의 번역서가 에이콘출판사에서 출간된다는 소식을 듣고 매우 기뻤습니다. 이 책은 이해하기 쉽게 쓰여졌으며, 매우 어렵지도 그렇다고 지나치게 간단하지도 않습니다. 모쪼록 이 책을 읽고 난 독자분들이 게임 개발에 관한 새로운 아이디어를 창안해내주기를 부탁합니다. 또한 이 책의 저자인 케이지로 씨처럼, 게임 개발을 사랑하는 사람들이 저술한 책들을 더 많이 읽고 가르침을 얻기를 바랍니다.
감사합니다.
- 윌리엄 양 / 유니티 테크놀로지스 코리아 지사장
유니티 테크놀로지에서 근무하면서 즐거운 점이 있다면 전 세계에 흩어져 있는 직원들이 어떻게 활동하는지, 각 나라의 유니티 유저들은 어떻게 유니티를 사용하는지를 한눈에 볼 수 있다는 것입니다. 오늘날 전 세계에서 유니티 활용에 가장 두각을 나타내는 나라는 일본이며, 여기에는 저와 같은 역할을 하는 에반젤리스트 여럿이 똘똘 뭉쳐 좋은 성과를 내고 있기 때문입니다.
이 책의 저자인 케이지로 타카하시는 플레이스테이션 플랫폼의 전문 개발자이자 일본 지역을 담당하는 에반젤리스트이며, 유니티를 소개하고 올바른 사용법을 전파하는 기술 전도사 역할을 함과 동시에, 캡콤, 닌텐도 같은 일본의 대형 개발사들이 진행하는 유니티 프로젝트에 많은 도움을 주고 있습니다. 전문 개발자인 그가 입문자용 서적을 출간했다고 들었을 때, 초보자들이 보기에 약간은 어렵지 않을까라는 생각을 했지만, 몇 장 넘기지 않아 초보자들을 배려하여 단계별로 잘 정리해둔 구성과, 각 단락별로 반드시 알아야 하는 기능들에 관한 상세한 정보를 넣어둔 꼼꼼함에 감탄하게 되었습니다. 한국 지역을 담당하는 유니티 에반젤리스트로서 일본의 유니티 베스트셀러인 이 책의 번역본이 나오게 된 것에 대해 에이콘출판사와 우리말로 훌륭히 번역해주신 최재원 PD님께 깊은 감사를 드립니다.
이 책은 유니티를 사용해 모바일 게임 개발에 입문하고자 하는 독자 여러분들께 큰 도움이 될 것이라 확신합니다.
- 이득우 / 유니티 테크놀로지스 프로덕트 에반젤리스트
[ 한국어판 출간에 부쳐 ]
『유니티 입문』이 한국어로 출판된다니 매우 기쁩니다. 한국과 일본은 문화적으로는 상당히 닮아 있지만 게임 분야에서는 미묘하게 다른 배경을 가지고 있습니다. 한국의 독자들에게는 게임이라는 것이 단지 PC로 즐기는 것으로만 인식되어 있을지 모르지만, 일본에서는 아직도 플레이스테이션3나 엑스박스360 같은 콘솔 게임기의 인기가 매우 높습니다. 최근에 모바일 소셜게임의 인기가 날로 높아지고 있는데, 이런 트렌드는 일본에서 유니티가 급격하게 보급된 이유이기도 합니다.
유니티는 ’게임 개발의 민주화’라는 비전으로 내세우고 있지만 이러한 비전의 의미도 나라나 지역에 따라 다릅니다. 미국과 유럽에서는 우선 아이폰 게임 개발이 유니티에 의해 민주화 되었습니다. 일본에서도 모바일 게임 개발에서는 유니티가 상당한 영향을 미치고 있는데 실질적인 의미에서 일본의 게임 개발이 민주화 되려면, 우선 콘솔 게임 개발 분야가 변해야 한다고 생각합니다. 한국의 경우라면 유니티를 이용해 PC용 MMORPG 등의 게임을 누구라도 만들 수 있게 된다면 비로소 ’한국의 게임 개발이 민주화 되었다’라고 말할 수 있을지도 모르겠군요.
세계 어떤 곳에서도 진정한 의미에서 ’게임 개발의 민주화’가 달성되는 것은 아직 먼 미래의 이야기일 것입니다. 이 책은 누구라도 게임 개발을 시작할 수 있다고 표방하는 유니티의 비전을 추구합니다. 일본뿐만 아니라, 한국 독자들 중에서도 이 책을 계기로 유니티로 게임 개발을 시작하는 사람이 생긴다면 저로서는 매우 기쁜 일이 될 것입니다.
앞으로 여러분 모두 훌륭한 게임을 개발하게 되기를 기원합니다!
- 저자 타카하시 케이지로
[ 상세 이미지 ]
목차
목차
- 1장 유니티 스타트 가이드
- 1.1 유니티란?
- 게임 개발의 ‘민주화’
- 풍부한 정보와 거대한 커뮤니티
- 1.2 유니티의 제품 구성
- 기본 구성인 ‘유니티 프리’와 추가 라이선스
- 업무용 라이선스 ‘유니티 프로’
- 시험판 라이선스
- iOS/안드로이드 개발에 필요한 환경
- 컬럼: 유니티와 유니티 프로의 차이
- 1.3 유니티 설치
- 다운로드와 설치
- 유니티 프리 액티베이션 순서
- 시험판 액티베이션
- 유료판 구입과 액티베이션
- 1.4 데모로 체험해 보기
- 1.5 유니티 화면 구성
- 1.1 유니티란?
- 2장 일단 무엇인가 만들어 보기
- 2.1 밸런스 게임 만들기
- 2장에서 만들어 볼 게임
- 2.2 판 만들기
- 스케일 툴로 늘이기
- 컬럼: Scene 뷰 조작
- 라이팅
- 2.3 볼 만들기
- 2.4 물리 시스템 구축하기
- 반사 계수 추가하기
- 2.5 키 입력 구현하기
- 컬럼: Mac판 MonoDevelop의 일본어 문제에 대해
- 컬럼: 스크립트 해설
- 씬 저장과 빌드
- 2.1 밸런스 게임 만들기
- 3장 모바일용으로 빌드하기
- 3.1 데스크톱 PC와 모바일의 차이
- 조작성의 차이
- 디스플레이의 차이
- 처리 능력의 차이
- 3.2설계 재검토
- 가로 화면 대응
- 기울기 입력 대응
- 컬럼: iOS 시뮬레이터와 안드로이드 에뮬레이터에 대해
- 3.3 ios용 빌드 순서
- 플랫폼의 변환
- Player Settings 조정
- 디폴트 화면의 방향
- 번들 식별자
- 컬럼: 번들 식별자에 관해
- 서스펜드 시점의 종료
- 베이스 SDK 버전
- 엑스코드 프로젝트 출력
- 엑스코드상에서의 빌드
- 컬럼: 링커 경고(Linker Warning)에 관해
- 3.4 안드로이드를 위한 빌드 순서
- 컬럼: 안드로이드 플랫폼 버전(API 레벨)에 관해
- 플랫폼의 변환
- Player Settings의 조정
- 디폴트 화면의 방향
- 번들 식별자
- 빌드와 실행
- 컬럼: 구형 안드로이드 디바이스에서 에러가 표시될 때
- 3.1 데스크톱 PC와 모바일의 차이
- 4장 미로 게임
- 4.1 미로 게임 디자인
- 게임 요소
- 4.2 미로와 배경 만들기
- 무대(판) 만들기
- 광원 만들기
- 무대에 무늬 넣기(텍스처 매핑)
- 카메라 배치 변경
- 배경 만들기
- 4.3 외벽과 장애물 배치
- 프리팹을 이용한 복제
- 외벽 만들기
- 장애물 만들기
- 재질 추가
- 컬럼: 스케일을 수정한 오브젝트의 텍스처 매핑
- 4.4 볼 만들기
- 오리지널 볼 만들기
- 프리팹 작성과 인스턴스 배치
- 볼 굴리기
- 4.5 문제점 발견과 해결
- 볼이 움직이지 못하는 경우
- 볼이 무대를 빠져나가는 문제
- 컬럼: 만약 제대로 구현한다면 - 또 하나의 해결법
- 4.6 제어 스크립트 추가
- 중력 컨트롤러(GravityController.js)
- 볼 제어 스크립트(Ball.js)
- 4.7 기울기 연출
- 기울기 리그 만들기
- 기울기 리그 제어 스크립트(TiltRig.js)
- 4.8트랩 추가
- 트랩 설계
- 트리거를 사용한 접촉 검출
- 게임 오브젝트에 대한 태그의 설정
- 컬럼: pre-set 태그
- 리스타트 지점 배치
- 트랩 스크립트(Trap.js)
- 4.9 골(goal) 만들기
- 골 트리거 만들기
- 골 판정 스크립트(Goal.js)
- 4.10 클리어 메시지 표시
- 컬럼: 유니티의 GUI 시스템
- GUI의 구조
- 폰트 추가
- 컬럼: 폰트 라이선스에 대해
- 스타일 설정
- 4.11 타이틀 화면 만들기
- 게임 본편 씬 저장
- 타이틀 화면 씬 추가
- 타이틀 화면 씬 구축
- 게임 클리어 시의 동작 변경
- 컬럼: yield문과 코루틴(co-routine)
- 4.12 외형 개선
- 라이팅 조정
- 볼 스페큘러의 설정
- 트랩의 점멸
- 4.13 완성!
- 개선안
- 4.14 모바일 플랫폼으로 이식
- 조작성 재설계
- 카메라와 부모/자식 관계 변경
- 컬럼: 카메라의 화각에 대해
- 타이틀 화면 조정
- 폰트 설정 조정
- 컬럼: 다이내믹 폰트 렌더링이란
- Rendering Path 변경
- 컬럼: 모바일 플랫폼에서 Forward Rendering 선택의 어려움
- 컬럼: 간편한 디바이스 동작 확인 툴 - 유니티 Remote
- 컬럼: 쿼터니언에 관해
- 4.1 미로 게임 디자인
- 5장 블록 슈터 게임 디자인
- 5.1 블록 슈터 게임 디자인
- 5.2 방 만들기
- 바닥ㆍ벽ㆍ천장 만들기
- 광원의 배치
- 계층구조 구축
- 씬의 저장
- 카메라 배치
- 5.3 상자 만들기
- 컬럼: 폴더로 조정
- 5.4 총 쏘기
- 탄환 프리팹 만들기
- 총 쏘기 만들기
- 클릭한 위치로 발사되게 하기
- 컬럼: 월드 좌표계와 화면 좌표계
- 충돌 시의 파괴 처리 작성
- 메시징의 도입
- 시각적 연출의 개선(파티클 효과 추가)
- 컬럼: 파티클 시스템 파라미터
- 추가 연출의 개선(소멸의 지연)
- 컬럼: 힘 모드(ForceMode)에 관해
- 5.5 상자 제너레이터 만들기
- 컬럼: Random.Range의 주의점
- 5.6 안 보이는 벽 만들기
- 일반 벽을 이용한 ‘안 보이는 벽’ 만들기
- 레이어와 콜리전 필터링 도입
- 5.7 스코어 측정
- 스코어 측정 기능의 대략적인 설계
- Scorekeeper 스크립트 구현(점수 관리와 표시)
- Referee 스크립트 구현(룰에 따라 판정하는 처리)
- Box 스크립트 개조
- Game Controller 게임 오브젝트 만들기
- Box 프리팹 설정
- 5.8 GUI 스킨 설정
- GUI 스킨 제작
- GUI 스킨의 적용
- 5.9 시간제한 설정
- Timekeeper 스크립트 작성(제한시간 설정)
- TimeUp 메시지 처리 추가
- 5.10 결과 화면 만들기
- ResultScreen 스크립트 작성(게임의 결과 표시)
- 기타 설정과 동작 확인
- 5.11 게임 시작 연출
- GameStarter 스크립트 작성(게임 시작 화면 연출)
- StartGame 메시지 처리 추가
- 기타 설정과 동작 확인
- 5.12 타이틀 화면 추가
- 타이틀 화면 씬 만들기
- TitleScreen 스크립트 구현(타이틀 화면의 표시와 제어)
- ResultScreen 스크립트 수정
- 5.13 완성
- 개선안
- 5.14 모바일 플랫폼으로 이식
- 일단 동작시켜 보기
- 라이트 매핑의 도입
- Graphics Emulation의 변경
- 컬럼: 씬 간에 라이트 맵 공유
- 5.15 iOS 플랫폼 버전 미세 조정
- 화면 회전 애니메이션 방지
- frame rate 올리기
- 컬럼: 유니티와 자바스크립트
- 6장 캐릭터를 이용한 액션 게임
- 6.1 액션 게임 디자인
- 6.2 스테이지 구성
- 광원 배치
- 물리 재질의 설정
- 카메라 조정
- 이름과 구조의 정리
- 6.3 캐릭터 이용하기
- 파일의 임포트
- 컬럼: 유니티에서 이용 가능한 3D CG툴과 파일 형식
- 컬럼: 본(bone, 뼈) 구조와 본 애니메이션
- 캐릭터 배치
- 캐릭터 내용 이해
- 애니메이션 이해
- 스크립트로 애니메이션을 제어하기
- 애니메이션을 매끄럽게 연결하기
- 애니메이션 재생 속도 변경하기
- 6.4 플레이어 캐릭터 구축
- CharacterController 컴포넌트 추가
- 스크립트에 의한 Character Controller의 제어
- 점프 구현
- 컬럼: 그림자 표시(유니티 Pro용)
- 6.5 코인과 장애물 구현
- 모델 임포트와 조정
- 물리 엔진 설정
- 제어 스크립트 추가
- 6.6 제너레이터 만들기
- 제어 스크립트 작성
- 6.7 코인 획득과 데미지 메시징
- 충돌 판정 무효화와 트리거의 추가
- 레이어 설정
- 트리거 추가
- 송신측 스크립트의 추가
- 수신측 스크립트 추가
- 6.8 시각적 연출과 외형 개선
- 데미지 연출 구현
- 파티클 효과 추가하기
- GUI를 보기 쉽게 하기
- 6.9 사운드 적용
- 사운드 파일 임포트
- 음원 추가
- 컬럼: 사운드를 듣는 위치 설정
- 사운드 발생 스크립트 작성
- 3D 사운드 조정
- BGM 재생
- 다른 효과음도 적용해보기
- 6.10 마무리
- 6.11 모바일 플랫폼으로 이식
- Standard Assets 임포트와 가상 조이스틱 적용
- 조작방법을 가상 조이스틱에 이식하기
- 점프 버튼 이식
- 7장 다음 단계로
- 7.1 유니티 Asset Store
- 스스로 만들 수 없는 것을 구하기 위해
- 시간 절약을 위해
- 애셋 스토어와 유니티 커뮤니티
- 애셋 스토어와 유니티 커뮤니티
- 7.2 유니티 Answers
- 7.3 유니티 Technologies 공식 블로그
- 7.1 유니티 Asset Store
- 부록 재질 설정에 관해
- A.1 표준 셰이더 설명
- Diffuse - 확산 반사
- Decal - 데칼 확산 반사
- Specular - 거울 반사
- Unlit - 라이팅 없음
- Bumped Diffuse/Bumped Specular - 범프드 맵핑
- Self-Illumin / * - 자체 발광성 셰이더
- Transparent/* - 투과성 셰이더
- Reflective/* - 반사성 셰이더
- A.2 법선 맵 제작법
- 컬럼: 모델링 툴 ZBrush
- A.3 큐브 맵의 제작법
- Skybox 소재에서 큐브 맵 만들기
- 파노라마 사진으로 큐브 맵 만들기
- A.1 표준 셰이더 설명
도서 오류 신고
정오표
정오표
1, 2쇄 오류/오탈자
[ p128 리스트 4-4 1행 ]
functionOnTriggerEnter(Other:Collider) → function OnTriggerEnter(Other:Collider)
[ p261 마지막 행 ]
이 책의 부록 DVD에 있는 CommonAssets의 Models/GenericMAn 폴더 안에 저장돼 있다. → 이 책의 부록 DVD에 있는 CoinCrazyAssets\CoinCrazyAssets\GenericMan 폴더 안에 저장돼 있다.