사용VR기기(헤드마운트): DPVR E3B / 전신모션캡쳐장비: Perception Neuron

프로젝트 목적: 화재진압 VR가상체험
대상연령: 초등학교 1년생~6년생


총 제작기간: 2주
참여 인원수: 3명(기획1/프로그래머1/TA1) + 보조모델러(소화기담당)

사용어셋: Industrial Asset Pack(배경)
                Fire Extinguisher,
CamelotVFX

                      (▲사장이 적용 해 달라고 요청하면서 이 외에도 다수의 불 관련 이펙트를 구입하였으나
                          대부분 사용할 수 없어 소화용 이펙트 외엔 거의 새로 만들었다)

▲빌드 완료 후 실제 플레이 스크린샷▲
초보기획자가 만든 기획서와....
VR용 프로젝트라고는 상상도 할 수 없는 격렬하고 화려한 이펙트!! 불속에서 같이 타오르는 붉은 UI!!

언제나 그렇지만 프로그래머가 심혈을 기울여 정성껏 꾸며놓은 디자인들은 늘 말로 표현할 수 없는 슬픔을 안겨준다.
(개발 초기에 피치 못할 사정으로 빠졌다가 돌아와보니 엄청난 화면들과 수치들이 나를 맞이 해 주었다)

기간이 넉넉한 편이 아니었기에 왠만하면 이미 만들어져 있는 Scene이나 요소들을 그대로 사용하고 싶었으나, 최적화부터 시작하여 라이트맵 파괴상태 등 여러가지 사항들을 검토 한 결과 그냥 처음부터 다시 만드는 게 빠를 거라는 결론을 내렸다. 일단 프로그램 기동 시 나와야 하는 회사 CI출력 scene이나 게임오버에 관련 된 요소가 전혀 없다거나 폰트 컬러 등 프로젝트에 있어야 할 레벨디자인과 기본적인 UX개념이 없었다. 고치느니 다시 만드는 게 나았다.
(랄까 이것들을 그대로 쓸 자신이 없었다)
라이트맵을 다 구운 어셋이었는데 프로그래머가 레고블록 놀이를 잘못하는 바람에 맵을 새로 지정시키고...
뜬금없이 불이 타오르고 있는 상태보다 원인을 보여주는 것 같아 형광등에 스파크를 일으키는 이펙트를 추가한 뒤
불이 옮겨붙을 순서와 오브젝트들을 지정 해 주고, 프로그래머에게는 기본적인 Scene분리와 이펙트가 연속적으로 이동할 수 있도록 이펙트 출현 부분의 스크립트 수정을 부탁했다.

기본적인 컬링..당시 유니티 프로그래머는 어째서인지 VR모드에서 오클루전 컬링이
작동하지 않는다고 배워서 넣지 않았었다고 한다. 아주 잘 되니 제발 쓰시길 바랍니다.

아무튼 필요한 이펙트 리소스타입과 갯수를 파악한 뒤 (기둥/박스/벽을 감싸는 불, 기본 연기, 게임오버용 연출 스모크 등등)죄다 새로 만들어 뜯어고쳐 적절한 위치에 배치한 Scene을 작성한 뒤 통째로 프로그래머에게 전달.

VR에서 불꽃관련 이펙트는 보통 스프라이트 이미지로 작성 된 파티클이펙트를 사용하지 않는다. 정석대로라면 메쉬이펙트여야 하겠으나 다른 툴도 아니고 유니티에서, 자칫하면 시야 전체가 타오를 경우가 발생할 수도 있는 시뮬레이션이라는 점을 고려하여 기본 스모크부터 불꽃 이펙트는 스프라이트 텍스쳐를 사용 한 이펙트로 구성했다.

상부에서 구입한 뒤 전달받은 이펙트는 (판매용이 으례 그렇듯이)그대로 쓸 수 없는 상태였으므로 전부 유니티 내부에서 수치나 크기들을 VR에서도 사용할 수 있게끔 최적화시켰다.

Stat에서 160FPS가 표시될 경우라면 ▶ VR장착 유저가 체험하는 프레임이 80FPS라고 생각하면 된다.
Frame late를 높일 수 있을 때까지 높인 뒤에 직접 VR을 장착하여 모든 불이 타오를 때나, 직접 움직였을 때 프레임 저하발생이나 멀미상태 등을 체크하였다. 비록 메쉬 이펙트는 없지만 불은 가장 기초적이면서도 최적화하기 힘든 이펙트라 질을 떨어뜨리지 않으면서 프레임을 유지하기 위한 최적화 스킬들을 임계점까지 다 끌어다 썼다.
사실 복잡한 구조의 시뮬레이터도 아니었으므로, 딥프로파일링등에 시간을 들이고 싶지 않았다.
메인을 마무리 한 뒤 적용되었던 폰트들도 뜯어고치고 유저 유도를 위한 UX/UI애니메이션이나 인트로용 셋업(회사로고+문 열림 애니메이션+경고등연출+사운드)을 넣어 빌드한 뒤 프로젝트는 마무리되었다.
Back to Top