ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • VR Interior
    유니티/VR Interior 2021. 4. 4. 17:05

    VR Interior 튜토리얼 씬

    VR Interior는 직접 공간을 만들어 인테리어하는 어플리케이션이다.

    인테리어할 공간의 크기를 결정할 수 있어 작은 원룸부터 방 여러개가 있는 큰 공간까지 만든다

    공간의 크기가 결정되면 벽을 세우는 것부터 조명, 창문, 가구 등 여러가지를 배치한다

     

    배치된 물건의 크기, 색상 등의 속성을 변경할 수 있으며

    하늘, 날씨까지 변경할 수 있어 인테리어한 공간이 다른 환경에서 어떤 느낌인지도 볼 수 있다.

     

    저장기능으로 인테리어한 공간의 저장파일을 만들며 작업할 수 있다.

    불러오기 기능을 통해 작업을 이어서 할 수 있고 다른 사람이 만든 공간을 불러와 인테리어할 수 있다.

    플레이어에게 최대한의 자유도를 주고자 했다.

     

    개발은 Unity 19.3.10, HDRP 7.3.1을 이용했다.

    소스관리는 Git을 사용했다.

    VR기기는 HTC VIVE 제작은 3명이 했고 5주 정도 걸렸다.

    1. 결과

     

    VR Interior 영상

    2. 제작과정

    - 공간 만들기

    새로운 방을 만들거나 저장된 방을 불러올 수 있다. 새로운 방을 만들때는 방의 사이즈를 정할 수 있다.

    먼저 인테리어할 공간을 만드는 부분이 필요했다.

    정확하진 않지만 유니티에서의 크기 1을 1m라고 생각하고 가로, 세로 길이를 정하게 했다.

    그리고 크기에 맞는 바닥과 외벽들이 생성되고 그 안에서 여러가지 물건을 설치한다.

     

    - 물건 설치하기

    의자설치와 조명설치

    태블릿으로 물건들을 검색하고 끌어와서 공간에 설치하는 컨셉이다.

    물건들마다 설치되는 공간이 구별되어 있다.

    조명의 경우 천장조명인지 벽조명인지 바닥에 설치되는 조명인지 다 구별한다.

    일반 물건도 바닥에 설치되는지 벽에 걸리는건지 구별된다.

    물건을 끌어와 설치될 수 없는 곳에 놓으면 설치되지 않는다.

     

    - 내벽과 문 설치

    벽의 크기조절(왼쪽), 벽에 문을 설치하려고 만든 구멍(오른쪽)

    인테리어 컨셉으로 만들기로 결정한 후에 가장 고민되는 것은 내부에 문을 어떻게 설치해야 하는 것이었다.

    처음엔 마인크래프트처럼 작은 블럭을 쌓아서 내벽을 쌓고 문을 설치할 공간을 만들게 하려고했다.

    하지만 그 방법은 시간도 오래걸리고 다른 물건을 설치하는 방법과 너무 다르기 때문에 포기했다.

     

    결국 내벽을 설치하고 벽 오브젝트의 Mesh에 있는 vertex를 조절해서 벽에 구멍을 만들기로했다.

    블렌더로 미리 엄청 작은 구멍을 만들고 유니티로 가져와 그 구멍의 vertex를 찾아

    확장해서 구멍의 가로,세로 크기를 조절하는 방법을 사용했다.

    위 이미지의 오른쪽처럼 구멍을 만들고 그 사이에 문을 설치해 넣을 수 있었다.

     

    Snap 기능

    그리고 내벽 설치를 편하게 하기 위해 Snap 기능을 만들어봤다.

    이미 설치된 내벽의 바닥 4개의 vertex를 이용해 그 위치에 다가가면 자동으로 붙게 했다.

    - 창문설치

    창문설치와 날씨변경

    창문설치도 내벽과 같이 고민이 많았으나 다행히 Material을 이용해서 해결할 수 있었다.

    외벽 Material을 Transparent로 만들고 불투명하게 만들었다.

    창문 부분도 Transparent지만 투명하고 렌더링 순서를 창문 먼저 렌더링되게 했다.

    이렇게해서 다른 구멍을 만들 필요 없이 창문은 바로 설치하면 배경이 보이게 됐다.

    영상에서도 있지만 창문은 열 수 있으며 낮/밤을 바꾸고 비오는 날씨로 바꿀 수 있다.

     

    - 물건들의 성질 변경하기

    조명의 색상, 밝기를 조절

    설치된 물건들마다 성질이 있다.

    조명이라면 색상, 밝기가 있고 벽이라면 벽의 색상 벽의 크기 높이 등이 있다.

    물건들을 설치하고 나서 물건을 설치하면 왼손에 UI가 나타나며 이를 이용해 물건의 성질을 변경한다.

    물건마다 성질이 다르기 때문에 선택될때 UI에 표시되는 버튼들을 물건마다 다르게 활성화 시켰다.

    바닥바꾸기
    벽 색상바꾸기

    3. 소감

    5주동안 만든 VR 프로젝트이다.

    나를 포함해 3명이서 만들었고 VR로 인테리어하자는 아이디어는 내가 낸거 였기 때문에

    결과가 잘 안나올까봐 되게 불안해하면서 만들었던 기억이 난다. 그만큼 신경도 좀 날카로웠다.

     

    가장 힘들었던 점은 내벽설치와 관련된 부분이었다.

    Mesh를 다루고 vertex를 다루는게 처음이라 공부할게 많았었다.

    몇번 vertex들이 구멍을 만들고 그 위치는 어떻게 가야하는지 계산하는게 생각이 많이 필요했었다.

    여러가지 자료를 보고나서 정리하는데 3일 정도 걸리고 생각을 정리하고 다음날에 바로 만들었다.

    작성한 코드 자체는 되게 짧지만 여러가지 개념이 필요했었던 작업이었다.

    그래픽스 하는 분들이 정말 천재들이구나라고 생각했다.

     

    잘했다고 생각하는 점은 인테리어에 그치지 않고 여러가지 놀 수 있는것들을 만든 점이다.

    영상에 나오지만 물건들과 여러가지 상호작용할 수 있다.

    물건을 양손으로 잡아서 크기를 늘이거나 줄일 수도 있고, 음악을 플레이할 수도 있고 문, 창문도 연다.

    배경, 날씨, 밤낮을 바꿔 자신이 만든 인테리어가 다양한 환경에서 어떤 느낌을 내는지도 확인한다.

    직접 공간을 만들고 놀 수 있어 그냥 게임같이 재밌다는 얘기도 들었었다.

     

    이 프로젝트도 HDRP를 이용해 최대한 사실적인 공간을 만들려고했다.

    HDRP에 대해서 더 공부하게 됐고 특히 Shadow Map과 Reflection Probe에 대해서 더 알게됐다.

    실시간으로 변경하게하면 사양을 너무 많이 잡아먹기 때문에

    원하는 타이밍에 그림자를 렌더링하고 Reflection Probe을 활성화하는 방법으로 최적화했다.

Designed by Tistory.