Top

유니티 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장, ‘다음은 무엇일까’에서는 이 책의 저자 입장에서 이 흥미로운 기술의 잠재력에 대해 언급한다.

상세 이미지

저자/역자 소개

지은이의 말

오늘날 우리는 가상현실(VR)이 급격하게 성장하는 것을 목격하고 있다. 가상현실은 우리가 우리의 정보, 친구, 세계 전체와 상호작용하는 방식을 근본적으로 변화시키는 흥미로운 신기술이다.
당신은 헤드 마운트 디스플레이(고글과 같은)를 착용하고, 입체 3D 씬을 볼 수 있다. 머리를 움직여서 주위를 둘러볼 수 있으며, 휴대용 컨트롤러나 모션 센서를 사용해 걸어 다닐 수도 있다. 완전히 현실적인 가상현실을 체험할 수도 있다. 이것은 마치 다른 가상 세계에 실제로 존재하는 것처럼 느껴질 것이다.
이 책은 유니티3D 게임 엔진을 사용해 가상현실을 개발하는 과정을 실용적인 내용과 프로젝트 기반 방식을 통해 자세하게 가르쳐 줄 것이다. 유니티 5와 다른 무료 또는 오픈소스 소프트웨어를 사용해 직접 일련의 프로젝트와 단계별 튜토리얼을 실습하고 깊이 있는 논의를 나눌 것이다. VR 기술은 빠르게 발전하고 있기 때문에, 우리는 VR 게임과 애플리케이션을 더 실감 나고 편안하게 만들 수 있는 기본적인 원칙과 기법을 중심으로 살펴볼 것이다.
유니티를 사용해 오큘러스 리프트(Oculus Rift)나 구글 카드보드(Google Cardboard) 같은 기기에서 체험할 수 있는 VR 애플리케이션을 개발하는 방법을 배울 것이다. VR에서 특히 중요하고 아마도 유일할 수 있는 기술적 고려 사항도 다룰 것이다. 이 책을 다 읽고 나면 유니티를 사용해서 다채롭고 인터랙티브한 가상현실을 개발할 수 있다.

지은이 소개

조나단 리노위즈(Jonathan Linowes)

스타트업 VR/AR 컨설턴트 회사인 파커힐 리얼리티 랩(Parkerhill Reality Labs)의 오너다. 진정한 VR 및 3D 그래픽 애호가이며, 풀스택 웹 개발자, 소프트웨어 엔지니어, 성공적인 기업가, 교육자다. 시러큐스 대학교에서 미술 학사 학위를, MIT 미디어 랩에서 석사 학위를 받았다. 여러 성공적인 스타트업을 창업했고 오토데스크(Autodesk Inc.)를 포함한 메이저 회사에서 기술 지도를 맡고 있다.

옮긴이의 말

이 책이 한국에서 출간된 2016년 현재, 가장 뜨거운 IT 분야라면 단연 가상현실(VR)/증강현실(AR)과 AI를 들 수 있다. 가장 뜨겁다는 것은 곧 식을 것이라는, 즉 이미 시장에 뛰어들기에는 늦었다는 뜻으로 받아들여질 수도 있겠다. 하지만 VR은 한순간의 유행으로 끝날 만한 분야는 아니므로, 이 책을 이제서야 접한 독자들도 늦었다고 볼 수는 없다.
사람들이 좀 더 현실적인 것을 원하는 덕분에 사각형 화면 안에서 표현되는 그래픽 수준은 점점 발전해왔다. 그런데 아예 그 사각형 화면조차 깨부수려 하는 것이 바로 VR이다. 이 흐름은 막을 수 없으며 VR을 위해 머리에 뒤집어 써야 하는 기기가 좀 더 가벼워질수록, 해상도가 좀 더 올라갈수록, 가격이 좀 더 내려갈수록 VR은 급격히 대중화될 것이다. 아직 VR 기기가 많이 보급되지 않은 점을 이유로 정말 VR 산업이 유망할지 고민하고 있다면, 실리콘밸리의 투자자들이 어디에 투자하고 있는지 확인해보면 될 것이다. 사실 딱히 고민할 필요도 없이, 투수나 타자, 또는 포수의 시점에서 보여주는 야구 중계 방송만 떠올려봐도 이 분야가 절대 쉽게 무너지지 않을 영역임을 짐작해볼 수 있다.
이 책은 그 편의성 덕분에 현재 가장 널리 쓰이는 유니티 엔진을 바탕으로 미래 산업이 될 VR을 다룬다. 이 책의 내용을 바탕으로 독자들이 자신만의 작은 VR 게임을 만들어봐도 좋고, 관련 직종에 취업해도 좋다. 중요한 것은 이 책이 미래 산업을 자신의 손으로 일구어 내는 첫걸음이 될 수 있다는 사실이다. 물론 이 책 하나만 읽고 미래를 선도할 수는 없을 테니 다른 책도 많이 읽으면서 스스로 열심히 공부해야 할 것이다.

옮긴이 소개

김세중

연세대학교 컴퓨터과학과를 졸업했다. YNK 코리아(현 플레이위드)에서 3D 온라인 MORPG를 개발했고, 컴퍼니원헌드레드에서 유니티3D를 이용해 3D 모바일 MORPG <메탈브레이커>를 개발했다. 개인 개발한 2D 퍼즐 게임 을 운영 중이며, 현재 산호세에 있는 콩 스튜디오Kong Studios, Inc.에서 모바일 RPG를 개발 중이다.

최용훈

연세대학교 컴퓨터과학과를 졸업했으며, 동 대학원 석사 과정에 재학 중이다. 모바일 운영체제의 임베디드, 프레임워크, 애플리케이션 전반에 걸쳐 성능과 에너지 효율을 연구하고 있다. 모바일 게임 개발에도 관심이 많아 관련 서적을 탐독 중이다.

목차

목차
  • 1장. 가상의 모든 것을 모두에게
    • 당신에게 가상현실이란 무엇인가
    • 헤드 마운트 디스플레이 종류
      • 데스크톱 VR
      • 모바일 VR
    • 가상현실과 증강현실의 차이
    • 애플리케이션 vs. 게임
    • 이 책이 다루는 영역
      • 이 책을 읽어야 할 사람
    • VR 체험의 종류
    • VR에서 전문적인 기술
    • 정리

  • 2장. 오브젝트와 스케일
    • 유니티 시작하기
      • 새로운 유니티 프로젝트 시작하기
      • 유니티 에디터
      • 기본 월드 공간
    • 간단한 디오라마 만들기
      • 큐브 추가하기
      • 평면 추가하기
      • 구체와 몇 가지 매터리얼 추가하기
      • 씬 뷰 변경하기
      • 사진 추가하기
      • 그라운드 평면 색상 변경하기
    • 측정 도구
      • 유닛 큐브 만들기
      • 그리드 프로젝터 사용하기
      • 에단 캐릭터 측정하기
    • 블렌더에서 임포트하기
    • 블렌더 소개
      • 유닛 큐브
      • UV 텍스처 이미지
      • 유니티로 임포트하기
      • 몇 가지 문제
    • 정리

  • 3장. VR 빌드하고 실행하기
    • VR 기기 통합 소프트웨어
      • 유니티 내장 VR 지원
      • 기기별 SDK
      • OSVR 프로젝트
      • WebVR
      • 3D 월드
    • MeMyselfEye 프리팹 만들기
    • 오큘러스 리프트에서 빌드하기
    • 구글 카드보드에서 빌드하기
      • 안드로이드 설정
      • iOS 설정
      • 카드보드 유니티 패키지 설치하기
      • 카메라 추가하기
      • 빌드 설정
      • 플레이 모드
      • 빌드하고 안드로이드에서 실행하기
      • 빌드하고 iOS에서 실행하기
    • 디바이스 독립적인 클릭커
    • 가상현실이 실제로 동작하는 방식
      • 입체 3D 뷰잉
      • 헤드 트래킹
    • 정리

  • 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장. 다음은 무엇일까

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

2016. 8. 11 수정 사항

[p.104: 8행]
GroundPlane
->
Ground

2016. 8. 16 수정 사항

안드로이드 VR을 다루는 라이브러리 다운로드 방법 및 링크

여기에서 확인하실 수 있습니다.