[Unity]01.VR 시선처리 #1 - VR에 대해 알아보기

안녕하세요 유랑입니다.



오늘부터 VR에 대해 알아보겠습니다.

예제와 실습을 통해 차근차근 진행할테니 부족한 부분있으면 댓글 부탁드릴게요^^




1. VR(Virtual Reality)



가상현실이란? '실제와 유사하지만 실제가 아닌 인공 환경'을 의미한다.

영화 레디플레이원을 보면 주인공이 가상현실속 캐릭터가 되어 싸우는 장면이 묘사된다.

이렇듯 단순히 가상의 공간을 구현하는 것을 넘어서서 사용자의 오감에 직접적으로 작용하여 

실제에 근접한 공간적, 시각적인 체험을 가능케 하는 기술이 VR의 진정한 목표이며 기능이다.







2. VR기기에 대해 알아보기



2-1) 구글 카드보드



구글에서 출시한 간이 VR제품으로 도면이 공개되어 있고, 다이소에서 5천원 정도의 가격이라 쉽게 접할 수 있다.

비싼 제품들에 비하면 기능이 약소하지만, VR을 처음 접하고 다뤄보기에는 안성맞춤인 제품이다.







2-2) 오큘러스 리프트



과거 여러 VR 기기가 출현했지만 모두 실패를 거듭한 후 2012년에 오큘러스 리프트DK1이 등장했다.

어안렌즈를 활용함으로써 기존 VR 기기의 좁은 시야각을 획기적으로 개선해 많은 이목을 받았지만,

높은 가격과 초반 제품 수급 문제로 인해 시장 선점 효과를 누르는데는 실패했다.

그래도 지금은 대표적은 VR기기중 하나로써 많은 사람들에게 사랑을 받고있다.







2-3) HTC Vive



HTC Vive는 밸브(Valve)와 대만의 HTC가 합작해 만든 VR 기기로서 앞서 소개한 오큘러스 리프트보다 

먼저 출시해 시장을 선점하는 효과를 누렸다.

오큘러스 리프트와 유사한 체감형 HMD 기기이지만, 성능과 기능에서 조금씩 차이를 두고 있다.

- 플레이어가 좁은 공간에만 있는 경우라면 어떤 다른 VR 기기들보다도 현실감이 뛰어나다.

- 스마트폰과 블루투스 연동이 가능하여 전화를 받거나 부재 중 전화 확인이 가능하다.







2-4) 삼성 Gear VR



삼성전자가 오큘러스 VR과 협력해 만든 삼성 Gear VR은 저렴하면서 가상현실을 체험가능한 제품이다.

삼성 핸드폰으로 연동되는 점이 장점이자 단점이 될 수 있지만, 구글 카드보드 이외에 저렴하면서 

기능면에서 좋은 제품이라 많은 사람들이 연구나 공부를 할 때 많이 찾는 제품이다.







3. VR 환경구성



3-1) 프로젝트 생성과 준비



저장할 위치와 프로젝트 이름을 정하고 Create Project를 눌러 프로젝트를 생성합니다.






프로젝트뷰에는 개인 취향에 맞게 파일들을 생성해주세요.

- 01.Scenes => 씬을 저장한다.

- 02.Scripts => 스크립트를 저장한다.

- 03.Prefabs => 프리팹을 저장한다.

- 04.Images => 텍스처 파일을 저장한다.

- 05.Models => 3D 모델을 저장한다.

- 06.Animations => 애니메이터 애셋 및 애니메이션 클립을 저장한다.





상단에 있는 메뉴바 File => Build Settings를 누르거나 단축키 Ctrl + Shift + B를 눌러줍시다.

Switch Platform을 이용해 Android 플랫폼으로 바꿔줍니다.

나중에 바꿔줘도 되지만 리소스가 많아질수록 변환하는데 시간이 걸리니 지금하시는걸 권장드립니다.





상단에 있는 메뉴바 Window => General => Asset Store를 누르거나 

단축키 Ctrl + 9를 눌러 에셋스토어를 실행하자.





받은 에셋팩중에서 Demo1 씬이 있는데 실행시키고, 이름을 변경하거나 

Save Scene As를 눌러 01.Scenes폴더에 저장하자.






3-2) VR 게임으로 변경



VR 콘텐츠 개발 원리는 스테레오스코픽 비전을 사용한다.

스테레오스코픽 비전은 밑에 보이는 그림과 같이 왼쪽 눈과 오른쪽 눈이 바라보는 화각의 차이로 인해

3차원의 입체감을 인지하는 것이다.






Google VR SDK for Unity 다운로드 URL에 접속하여 임포트 시키자.

https://developers.google.com/vr/unity/download





unitypackage를 다운받고 해당 프로젝트에 Import 시켜주자.





메뉴바 Edit => Project Settings => Player를 실행시키자.

어플로 만들기 위해서는 Company Name과 Package Name을 변경해야 하며,

VR셋팅을 위해 API Level을 Android 4.4로 변경,

Virtual Reality Supported를 체크 후 Cardboard를 추가하자.

VR기기를 카드보드로 쓰지 않더라도 해당 기능만 사용하기 때문에 다음과 같이 설정해 주자.










3-3) 헤드 트래킹 시뮬레이션



오큘러스나 Vive의 경우 유니티 에디터를 통해 헤드 트래킹 시뮬레이션이 가능하지만

카드보드는 헤드 트래킹 정보를 받을 수 없기에 키보드와 마우스 조합을 통해 시뮬레이션을 한다.

GvrEditorEmulator를 하이라키뷰에 옮기고 실행시켜 보자.

Alt 키를 누른 채로 마우스 왼쪽 버튼을 클릭해 드래그하면 시야 변경이 가능하며,

Ctrl 키를 누른 채로 마우스 왼쪽 버튼을 클릭해 드래그하면 고개를 좌우로 돌릴 수 있다.






여기서 잠깐 가져온 에셋에 들어있는 카메라는 시각적인 처리를 주기위해 여러 컴포넌트가 포함되어 있다.

밑에 있는 그림을 참고하여 나머지 기능들을 삭제하거나, 

기존에 있는 메인카메라를 삭제하고 새로운 메인카메라를 생성시켜 주자.






3-4) 주인공 캐릭터 제작



게임을 실행시키면 카메라의 위치가 마음대로 지정되는걸 볼 수 있다.

GvrEditorEmulator 스크립트에 들어가 해당 코드를 주석처리 해주자.






빈오브젝트를 만들고 Player 이름을 바꾸고 Character Controller 컴포넌트를 추가해주자.

위치값은 시작하고 싶은 맵 위치를 기준으로 정해주자.





1인칭 시점으로 만들기위해서 Camera오브젝트를 Player에 자식으로 두고 위치값은 다음과 같이 변경해 주자.





게임을 실행시키면 단축키를 이용해 상하좌우로 시선처리가 가능해집니다^^




4. 마무리




오늘 강의는 여기까지입니다.

VR에 대해 알아보고, 프로젝트를 생성해 간단히 설정해 주었습니다.

다음 시간에는 이동에 대해 알아보겠습니다.

감사합니다.



수업자료: https://github.com/YouRang12/-Tistory-Unity---VR


댓글

Designed by JB FACTORY