유니티 5 가상현실 VR 프로젝트 [실용적인 프로젝트와 상세한 설명을 통한 가상현실 개발]
- 원서명Unity Virtual Reality Projects (ISBN 9781783988556)
- 지은이조나단 리노위즈(Jonathan Linowes)
- 옮긴이김세중, 최용훈
- ISBN : 9788960778696
- 35,000원
- 2016년 05월 31일 펴냄 (절판)
- 페이퍼백 | 320쪽 | 188*235mm
- 시리즈 : acorn+PACKT
판매처
- 현재 이 도서는 구매할 수 없습니다.
책 소개
2017년 세종도서 학술부문 선정도서
소스 파일은 아래 깃허브 페이지에서 내려 받으실 수 있습니다.
(https://github.com/AcornPublishing/unity-vr)
요약
유니티는 직관적인 GUI와 높은 활용도로 실제 게임 제작에서 널리 사용되는 게임 엔진이다. 이 책은 유니티 5를 사용하여 가상현실 프로젝트를 만드는 방법을 다룬다. 가상현실에 대한 기본적인 지식과 함께, 단순히 물체를 보여주는 간단한 예제부터 여러 유저가 동시에 접속해서 서로 소통할 수 있는 멀티플레이어 가상현실 예제에 이르기까지 다양한 주제를 다룬다. 또한, 단계별 프로젝트를 통해 자칫 생소할 수도 있는 가상현실에 천천히 친숙해질 수 있게 독자를 배려했다.
이 책에서 다루는 내용
■ 월드 공간과 스케일에 대해 배우면서 유니티와 블렌더를 사용해서 3D 씬 만들기
■ 오큘러스 리프트와 구글 카드보드 같은 특정 헤드셋에서 VR 애플리케이션 빌드 및 실행
■ VR 애플리케이션에 사용할 수 있는 다양한 사용자 인터페이스(UI) 기법 실험
■ 오직 헤드 모션 제스처만을 입력으로 사용하는 1인칭과 3인칭 체험 구현
■ 유니티 엔진을 사용해서 물리 효과, 중력, 애니메이션, 조명으로 인터랙티브한 환경 제작
■ 애니메이션 워크쓰루 만들기, 360도 미디어 사용하기, 멀티유저 소셜 VR 체험 만들기
■ 모범 실무, 렌더링, VR 멀미를 포함한 VR 기술과 심리학 학습
■ 유니티 컴포넌트와 C# 프로그래밍을 사용하는 경험 얻기
이 책의 대상 독자
당신이 가상현실에 대해 관심이 있고, 가상현실의 동작 방식에 대해 배우고 싶거나 자신의 VR 체험을 만들고 싶다면, 이 책을 읽어야 한다. 당신이 프로그래머가 아니거나, 3D 컴퓨터 그래픽에 친숙하지 않거나, 혹은 프로그래밍과 3D 컴퓨터 그래픽 모두에 경험이 있으나 가상현실은 처음인 사람에게도 이 책은 도움이 될 것이다. 이것은 유니티 초보자를 위한 책이 아니지만, 그렇다고 전문가만을 위한 책도 아니다. 당신이 유니티 초보자라고 하더라도 이 책의 진도를 따라갈 수 있다면 상관없다.
게임 개발자는 이 책에서 VR에 관한 많은 아이디어를 배우는 동안 VR 프로젝트에 재적용된 개념에 이미 친숙할 수도 있다. 유니티를 사용할 줄 아는 모바일과 2D 게임 디자이너는 또 다른 차원을 발견할 것이다!
엔지니어와 3D 디자이너는 많은 3D 개념을 이해하고 있을지도 모르지만, 이 책을 통해 VR에서 게임 엔진을 사용하는 방법을 배울 수 있다. 애플리케이션 개발자는 게임이 아닌 분야에서 VR의 잠재적 사용법을 알아보고, 그것을 실현하기 위한 도구에 대해 배우기를 원할 것이다.
이 책의 구성
1장, ‘가상의 모든 것을 모두에게’에서는 게임 애플리케이션과 게임이 아닌 애플리케이션 둘 다의 관점에서 소비자 가상현실에서의 새로운 기술과 기회에 대해 소개한다.
2장, ‘오브젝트와 스케일’에서는 간단한 디오라마 씬을 만드는 방법에 대해 논의할 것이다. 유니티3D 게임 엔진과 3D 모델링을 위한 블렌더(Blender)를 소개하고, 월드 좌표와 스케일에 관한 문제도 다룬다.
3장, ‘VR 빌드하고 실행하기’에서는 당신의 프로젝트가 오큘러스 리프트와 구글 카드보드(안드로이드와 iOS)에서 동작하게 설정할 것이다. 그리고 VR 하드웨어와 소프트웨어가 동작하는 방식에 대해 자세히 살펴본다.
4장, ‘시선 기반 컨트롤’에서는 씬 안에서 VR 카메라와 오브젝트 사이의 관계에 대해 알아볼 것이다. 3D 커서와 시선 기반 광선총이 이에 해당한다. 또한 C# 프로그래밍 언어를 사용한 유니티 스크립팅에 대해서도 소개한다.
5장, ‘월드 공간 UI’에서는 VR에서 사용되는 여러 사용자 인터페이스(UI) 예시를 구현할 것이다. 헤드업 디스플레이(HUD, heads-up display), 정보 풍선(info-bubbles), 많은 코드와 설명을 갖는 인게임 오브젝트가 이에 해당한다.
6장, ‘1인칭 캐릭터’에서는 시선 기반 내비게이션을 사용하는 1인칭 캐릭터를 만들기 위해 사용되는 유니티 캐릭터 오브젝트와 컴포넌트를 분석한다.
7장, ‘물리와 환경’에서는 유니티 물리 엔진, 컴포넌트, 매터리얼(material)에 대해 살펴볼 것이다. 여러 VR 프로젝트 예시와 게임에서 힘과 중력을 적용해본다.
8장, ‘워크쓰루와 렌더링’에서는 3D 아키텍처 공간을 만들고 가상 워크쓰루를 구현할 것이다. 또한 유니티의 렌더링과 성능 최적화에 대해 다룬다.
9장, ‘360도 전부 사용하기’에서는 지구본, 파노라마, 포토스피어 등의 다양한 프로젝트에서 360도 미디어를 사용할 것이다. 또한 그것이 어떻게 동작하는지도 알아본다.
10장, ‘소셜 VR 메타버스’에서는 유니티 5 네트워킹 컴포넌트를 사용해 멀티플레이어를 구현하는 방법을 살펴볼 것이다. 또한 소셜 VR을 위한 확장 가능한 플랫폼의 예시로 VRChat을 살펴본다.
11장, ‘다음은 무엇일까’에서는 이 책의 저자 입장에서 이 흥미로운 기술의 잠재력에 대해 언급한다.
상세 이미지
목차
목차
- 1장. 가상의 모든 것을 모두에게
- 당신에게 가상현실이란 무엇인가
- 헤드 마운트 디스플레이 종류
- 데스크톱 VR
- 모바일 VR
- 가상현실과 증강현실의 차이
- 애플리케이션 vs. 게임
- 이 책이 다루는 영역
- 이 책을 읽어야 할 사람
- VR 체험의 종류
- VR에서 전문적인 기술
- 정리
- 2장. 오브젝트와 스케일
- 유니티 시작하기
- 새로운 유니티 프로젝트 시작하기
- 유니티 에디터
- 기본 월드 공간
- 간단한 디오라마 만들기
- 큐브 추가하기
- 평면 추가하기
- 구체와 몇 가지 매터리얼 추가하기
- 씬 뷰 변경하기
- 사진 추가하기
- 그라운드 평면 색상 변경하기
- 측정 도구
- 유닛 큐브 만들기
- 그리드 프로젝터 사용하기
- 에단 캐릭터 측정하기
- 블렌더에서 임포트하기
- 블렌더 소개
- 유닛 큐브
- UV 텍스처 이미지
- 유니티로 임포트하기
- 몇 가지 문제
- 정리
- 유니티 시작하기
- 3장. VR 빌드하고 실행하기
- VR 기기 통합 소프트웨어
- 유니티 내장 VR 지원
- 기기별 SDK
- OSVR 프로젝트
- WebVR
- 3D 월드
- MeMyselfEye 프리팹 만들기
- 오큘러스 리프트에서 빌드하기
- 구글 카드보드에서 빌드하기
- 안드로이드 설정
- iOS 설정
- 카드보드 유니티 패키지 설치하기
- 카메라 추가하기
- 빌드 설정
- 플레이 모드
- 빌드하고 안드로이드에서 실행하기
- 빌드하고 iOS에서 실행하기
- 디바이스 독립적인 클릭커
- 가상현실이 실제로 동작하는 방식
- 입체 3D 뷰잉
- 헤드 트래킹
- 정리
- VR 기기 통합 소프트웨어
- 4장. 시선 기반 컨트롤
- 걸어다니는 에단
- 인공지능 에단
- Navmesh bakery
- 랜덤하게 걸어 다니기
- 유니티 프로그래밍에 대한 빠른 소개
- RandomPosition 스크립트
- 좀비가 된 에단
- 보는 곳으로 가기
- LookMoveTo 스크립트
- 피드백 커서 추가하기
- 문제점
- 죽여보기
- KillTarget 스크립트
- 파티클 이펙트 추가하기
- 애셋 폴더 정리하기
- 정리
- 걸어다니는 에단
- 5장. 월드 공간 UI
- 재사용 가능한 기본 캔버스
- 바이저 HUD
- 십자선 커서
- 윈드실드 HUD
- 게임 요소 UI
- 정보 풍선
- 사용자 이벤트와 인게임 대시보드
- 버튼이 있는 대시보드 만들기
- 물 호스와 버튼 연결하기
- 스크립트에서 버튼 동작시키기
- 버튼을 보면 강조하기
- 보고 클릭해서 선택하기
- 보고 응시해서 선택하기
- 헤드 제스처와 반응형 오브젝트 UI
- 머리 위치 사용하기
- 헤드 제스처 사용하기
- 정리
- 6장. 1인칭 캐릭터
- 유니티 캐릭터 이해하기
- 유니티 컴포넌트
- 유니티 스탠다드 애셋
- 1인칭 만들기
- 보는 방향으로 이동하기
- 땅에 붙어있기
- 고체 오브젝트 통과하지 않도록 하기
- 월드 끝에서 떨어지지 않기
- 작은 오브젝트 넘기, 울퉁불퉁한 지형 처리하기
- 움직이기 시작하고 멈추기
- 헤드 제스처를 사용해서 걷기/멈추기
- 사용자 칼리브레이션
- 캐릭터 키
- 현실에서의 플레이어 키
- 리센터링
- 자아의식 유지하기
- 머리-몸 분리
- 머리와 몸…
- 그리고 발
- 몸 아바타
- 가상 코 만들기
- 오디오 큐
- 운동, 순간이동, 센서
- VR 멀미 해결하기
- 정리
- 유니티 캐릭터 이해하기
- 7장. 물리와 환경
- 유니티 물리 효과
- 탱탱볼
- 헤드샷
- 트램펄린과 벽돌
- 인간 트램펄린
- 벽돌같이
- 캐릭터같이
- 환경과 사물에 대한 빠른 소개
- Wispy Sky
- 행성 지구
- 기업 로고
- 엘리베이터
- 점프하기
- 정리
- 8장. 워크쓰루와 렌더링
- 블렌더에서 빌드하기
- 벽
- 천장
- 유니티에서 씬 조립하기
- 갤러리 룸
- 전시 장치
- 전시 계획
- 갤러리에 사진 추가하기
- 애니메이션 워크쓰루
- 유니티 애니메이션 시스템
- 스크립트를 사용한 애니메이션
- 성능과 편의 최적화하기
- 구현과 콘텐츠 최적화하기
- 유니티 렌더링 파이프라인 최적화하기
- 타깃 하드웨어와 드라이버에 최적화하기
- 유니티 프로파일러
- 정리
- 블렌더에서 빌드하기
- 9장. 360도 전부 사용하기
- 360도 미디어
- 크리스탈 공
- 매직 오브
- 파노라마
- 인포그래픽
- 정방형 도법
- 지구본
- 포토스피어
- 시야
- 360도 미디어 찍기
- 정리
- 10장. 소셜 VR 메타버스
- 멀티플레이어 네트워킹
- 네트워킹 서비스
- 네트워크 아키텍처
- 로컬 vs. 서버
- 유니티 네트워킹 시스템
- 간단한 씬 만들기
- 씬 환경 만들기
- 아바타 머리 만들기
- 멀티플레이어 네트워킹 추가하기
- 네트워크 매니저와 HUD
- 네트워크 아이덴티티와 트랜스폼
- 호스트에서 실행하기
- 스폰 위치 추가하기
- 두 개의 게임 인스턴스 실행하기
- 아바타와 1인칭 캐릭터 연결하기
- 멀티플레이어 가상현실 추가하기
- 오큘러스 리프트 플레이어
- 구글 카드보드 플레이어
- 다음 단계
- 커스텀 VRChat 룸 빌드하고 공유하기
- 월드 준비하고 빌드하기
- 월드 호스팅하기
- 정리
- 멀티플레이어 네트워킹
- 11장. 다음은 무엇일까
도서 오류 신고
정오표
정오표
2016. 8. 11 수정 사항
[p.104: 8행]
GroundPlane
->
Ground
2016. 8. 16 수정 사항
안드로이드 VR을 다루는 라이브러리 다운로드 방법 및 링크
여기에서 확인하실 수 있습니다.