LECTURE

구글 카드보드 SDK를 이용한 VR 가상현실 콘텐츠 만들기

구글에서 제공하는 카드보드용 유니티 SDK를 다운받아서 안드로이드 폰에 설치할 VR 앱을 만들어 보겠습니다.유니티의 무료 Asset Store를 이용해서 간단하게 VR 가상공간 모델링을 따라 하는 과정으로 진행해 봅니다.  

 먼저, https://developers.google.com/cardboard/unity/download?hl=ko로 접속해서 구글에서 제공하는 카드보드용 유니티 SDK를 다운 받습니다.빨간 밑줄 그어놓은 링크 클릭 하시면 됩니다.(* 2016.06.02 최근 구글 SDK가 업데이트 되었습니다. 아래 실습을 위해서는 첨부파일을 이용해 주세요!)

 유니티에서 프로젝트 만드시고프로젝트 에셋 탐색기에서마우스 오른쪽 클릭 -> Import Package -> Custom Package…를 선택합니다.

위 링크에서 다운받은 패키지를 선택해서 열기를 합니다.  

패키지 파일 목록이 뜨는데 그대로 Import 버튼을 눌러줍니다. 

  정리를 쉽게 하기 위해서 다운 받은 패키지들은 한 폴더 안에 넣도록 합니다.프로젝트 에셋 뷰에서 오른쪽 클릭 -> Create -> Folder 를 선택하여 폴더를 만듭니다. 

 앞으로 다운받은 패키지는 모두 AssetStore에 넣도록 합니다.옮길 폴더를 드래그 하여 AssetStore에 끌어다 놓으면 됩니다.

 땅을 추가해 보겠습니다.적당한 땅을 다운받아보도록 하겠습니다.도구 모음 -> Winodow -> Asset Store 를 선택해 에셋 스토어 창을 엽니다.

 카테고리를 환경-> 지형으로 선택 하시고

 필터를 Free Only(무료 에셋만)로 선택합니다.

 찾아보시면 Snow Mountain이 있을겁니다 다운 받습니다.

 이제 월드에 땅과 VR 카메라를 배치 해 보겠습니다.MainCamera는 VR에서 사용하는 카메라가 있으므로 선택한 후 Del키를 눌러 삭제 해 줍니다.하이어라키 뷰는 월드에 배치 된 오브젝트 목록을 계층 구조로 보여줍니다.프로젝트 뷰에서 AssetStore -> Cardboard -> Prefabs -> CardboardMain 과AssetStore -> For_sale -> snow_mountain -> Snow_mountain 을  찾아 하이어라키 뷰에 끌어다 놓습니다. 

 다음은 하늘이 없어서 허전하니까 하늘을 추가해 보겠습니다.에셋 스토어 창을 열어서 skybox 키워드로 검색하고 필터는 역시 무료로 해서 걸러줍니다 

 Wispy Skybox를 다운받아 보겠습니다.창을 열어두면 다운받고 난 후 자동으로 임포트 하는 창이 뜹니다.

 도구 모음에서 -> Window -> Lighting 으로 라이팅 창을 엽니다.창에서 보시면 Skybox라고 있는데 오른쪽에 ⊙ 모양을 클릭하시면 사용가능한 하늘 머테리얼(재질) 목록이 뜹니다.원하는 것을 선택하면

 다음과 같이 하늘을 그리기 시작합니다.

 너무 허전하니까 효과를 추가 해 보겠습니다.Sky FX Pack을 찾아서 다운받은 후 임포트 후 월드에 배치해 주세요

 혹시나 중간에 유니티가 오류가 발생 해 꺼질 수 있으니 씬(Scene)을 저장합니다. 

 File -> Build Setting을 선택 하시면 다음과 같은 창이 나타 납니다.플랫폼을 안드로이드로 선택 하시고 빌드를 하시면 잠시 컴파일 하다가 오류가 발생 합니다.

 패키지 이름을 정해주지 않아서 발생하는 오류인데 콘솔에서 오류를 더블클릭 해주신 후 Bundle Identifier 의 패키지 이름을 변경해 주신 후 다시 Build And Run 해주시면 됩니다.  작성자 : 이경용   

https://developers.google.com/cardboard/unity/download?hl=ko

One thought on “구글 카드보드 SDK를 이용한 VR 가상현실 콘텐츠 만들기

  • 마우스에서 조이스틱으로 변경하면서 공격 버튼 적용.
    http://docs.unity3d.com/ScriptReference/Input.html 참조.

    void Update()
    {
    //마우스 왼쪽 버튼을 클릭했을 때 Fire 함수 호출
    if (Input.GetMouseButtonDown(0) || Input.GetButtonDown(“Fire1”))
    {
    Fire();
    }
    }

    댓글달기

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.