2017-2-23

언리얼 엔진 4로 제작된 VR 리듬게임 ‘뮤직 인사이드’

By 남현욱 - 뮤직인사이드 리드 엔지니어,

리얼리티 리플렉션(Reality Reflection)은 매력적인 콘텐츠로 VR 시대를 앞당기고자 하는 VR 콘텐츠 스타트업입니다. 저희는 가상현실의 무한한 가능성을 보여주는 다양한 VR 콘텐츠를 기획하고 제작하고 있습니다. 하드코어 게이머 뿐 아니라 라이트 유저에게도 만족스러운 콘텐츠를 지속적으로 개발하여, 더 많은 사람들이 VR을 친근하게 느낄 수 있기를 바랍니다. 뮤직 인사이드(Music Inside)는 리얼리티 리플렉션이 출시한 첫 VR 게임으로, 바이브(HTC Vive) 버전에 이어 오큘러스 터치(Oculus Touch)와 함께 오큘러스 버전을 발매하였습니다. 뮤직 인사이드의 배경 그래픽은 마치 음악 속에 빠진 것 같은 몰입감을 선사하고, 리듬에 맞춰 10개의 노트 패드를 타격하는 게임 플레이는 음악을 온 몸으로 즐길 수 있도록 해줍니다. 기기를 가리지 않는 멀티 플레이어 기능으로 친구와 실력을 겨루어 볼 수 있을 뿐 아니라 노트 자동 생성 알고리즘으로 어떤 곡이든지 플레이할 수 있습니다.



뮤직 인사이드는 핵심 기능을 구현하고 또 쉽게 최적화할 수 있는 툴을 제공해준 언리얼 엔진 덕분에 더욱 매력적인 게임이 되었습니다. 우리는 뮤직 인사이드의 제작 과정 일부를 통해 어떻게 언리얼 엔진을 효과적으로 사용했는지 이야기해 보려고 합니다. - VR에서 UI를 구현하는 것은 어렵고 까다로운 문제입니다. 뮤직 인사이드에서는 언리얼 엔진에서 제공하는 위젯 블루프린트 기능을 이용하여 쉽고 빠르게 원하는 UI를 구현하였습니다. 하지만 단순히 위젯 블루프린트 기능만을 사용하여 만든 UI는 VR 환경에서 제대로 동작하지 않습니다. 모션 컨트롤러로 UI를 조작하는 기능은 4.13 버전부터 Widget Interaction Component로 제공되어 VR에서 UI를 쉽게 조작할 수 있지만, 당시 저희는 언리얼 4.12 버전을 사용하고 있었습니다. 하지만 언리얼 엔진의 오픈 소스 정책 덕분에, 저희는 기존 소스코드를 바탕으로 모션 컨트롤러를 이용하여 UI를 조작하는 기능을 미리 구현하여 사용할 수 있었습니다.

musicInside

- 뮤직 인사이드의 멀티플레이어 모드는 복잡도를 줄이기 위해, 각 플레이어의 현재 동작을 트래킹하는 정도로 간단하게 제작하였습니다. 이 과정에서 언리얼 엔진의 리플리케이션 서버를 사용하여 멀티플레이어 모드를 간단히 구현할 수 있었습니다.

musicInside

- 리듬 게임은 반응이 조금만 늦어도 사용자의 만족도가 떨어지기 때문에, 높은 반응성과 속도를 필수적으로 유지해야 합니다. 뮤직 인사이드는 어떤 곡이든 플레이할 수 있도록 자동으로 노트를 생성하는 알고리즘을 사용합니다. 하지만 알고리즘의 정교함에 비례해 연산량이 늘어나기 때문에 게임의 성능을 유지하기가 힘들어집니다. 뮤직 인사이드에서는 노트 생성 알고리즘의 품질을 유지하면서 게임의 성능도 놓치지 않기 위해 멀티 스레드를 이용했습니다. 언리얼 엔진은 멀티 스레드에 친화적인 기능을 기본적으로 많이 제공해주기 때문에 상대적으로 쉽게 알고리즘을 멀티 스레드로 동작하게 변형할 수 있었습니다. 특히 고성능이면서 Thread-safe한 자료구조들이 쓰기 편리하게 많이 만들어져 있다는 점이 굉장히 많은 도움이 되었습니다. 덕분에 정교한 알고리즘이 실시간으로 곡을 분석할 수 있도록 퍼포먼스가 향상되었고, 현재의 뮤직 인사이드는 라이브러리 내의 곡 뿐 아니라 사운드 클라우드의 곡도 빠르게 분석하여 플레이할 수 있습니다.

musicInside

- 또 VR 게임에서는 일관성 있게 초당 90 프레임을 유지해야 사용자가 쾌적하게 게임을 플레이할 수 있는데, 이 부분에서 Instanced Stereo 같은 기능이 렌더링 성능 최적화에 많은 도움이 되었습니다. 뿐만 아니라 프레임 단위로 어느 부분에서 부하가 걸리는지 상세하게 추적할 수 있는 프로파일링 기능이 게임의 마무리 단계에서 성능을 높이는데 큰 도움이 되었습니다. 뮤직 인사이드는 멀티 플레이, PC 및 사운드 클라우드에서의 곡 검색, 다운로드 등 IO 작업이 굉장히 많이 일어납니다. 프로파일링 기능을 이용해 프레임 드롭이 발생하는 부분을 쉽게 추적할 수 있었고, 각 부분을 비동기적으로 만들어 IO의 부하를 줄이는 과정에서도 언리얼 엔진의 뛰어난 멀티 스레드 기능을 이용해 쉽게 최적화할 수 있었습니다.

musicInside

이렇게 언리얼 엔진과 함께 뮤직 인사이드가 탄생했습니다. 뮤직 인사이드는 지금 스팀 스토어오큘러스 스토어에서 즐길 수 있고, 곧 모바일 VR 기기와 PSVR에서도 만나보실 수 있습니다. 현재 리얼리티 리플렉션은 언리얼 엔진의 강력하고 편리한 기능을 활용하여 새로운 VR 게임 (Code Name: T)를 개발하는 중 입니다. 향후 업데이트될 ‘Code Name: T’의 정보도 기대해주시기 바랍니다.

Recent Posts

리얼타임 기술의 잠재력을 선보인 Theia Interactive의 Harley Davidson AR

증강 현실은 리얼타임 프로젝트 샘플을 통해 비즈니스 고객들을 설득하는 중요한 도구로 자리잡았습니다. Theia Interactive가 ...

2018년 4월 NVIDIA Edge 프로그램 수상자

4월에도 NVIDIA Edge 프로그램에 멋진 작품들이 많이 제출되었으며, 그 중에서 세 개의 작품을 뽑아 수상작으로 선정하였습니다. ...

언리얼 엔진으로 BMW 차량 디자인에 혼합 현실 구현

리얼타임 기술과 VR이 자동차 제조의 새로운 시대를 열고 있는 가운데, 자동차 디자인 분야는 빠르게 변화하고 있습니다. BMW와 MIN...