EnJoyTheVR: доступная виртуальная реальность на базе смартфонов

в 18:33, , рубрики: android, AR, C#, CardBoard, iOS, unity, VR, виртуальная реальность, разработка игр, разработка приложений
EnJoyTheVR: доступная виртуальная реальность на базе смартфонов - 1

Всем привет! Меня зовут Евгений, я разработчик приложения EnJoyTheVR – приложения, которое позволяет погружаться в виртуальную реальность с 6DOF отслеживанием движений головы и рук прямо через ваш смартфон. В этой статье хотел бы рассказать о проекте, его задумке, этапах разработки, а также поделиться положительными и отрицательными моментами.

Сейчас почти каждый знает, что такое VR, но не у всех есть возможность приобрести дорогостоящее оборудование для полного погружения в виртуальную реальность. Уже давно существует такая штука, как Google Cardboard, но большинство приложений, созданных под него, обладают ограниченным функционалом — они предлагают лишь базовое отслеживание головы и зачастую простое взаимодействие. В отличие от них, EnJoyTheVR предоставляет полноценное 6DOF-отслеживание как головы, так и рук, что делает опыт гораздо более реалистичным и насыщенным.

Именно эта идея и легла в основу моего школьного проекта :) Посмотрим, насколько удалось ее реализовать.

Для разработки я выбрал Unity как основную платформу. Она предоставляет простые инструменты для создания приложений с хорошей графикой и оптимизацией (что стало второй важнейшей задачей после реализации отслеживания рук). К тому же Unity позволяет почти без лишних проблем разрабатывать сразу две версии приложения — для Android и iOS. Например, компоненты ARCore и ARKit задействуются одинаково.

Самой сложной задачей оказалось реализовать отслеживание рук. Вдаваться в технические детали не буду, но скажу, что после долгих поисков решения я остановился на свёрточной нейронной сети (CNN). Этот подход позволил добиться довольно точного отслеживания, хотя не идеального.

Далее я модернизировал сцену-пример из официального ассета для разработки VR-приложений XR Interaction Toolkit. К руке был «варварски приклеен» виртуальный контроллер, и управление было переделано под Джой-коны.

        Модернизированная сцена

        Модернизированная сцена

После этих доработок я принял участие в своей первой школьной научной конференции, где занял первое место среди 10 и 11 классов. Это стало для меня источником мотивации продолжать работу над проектом.

После полной переработки метода «приклеивания» виртуального контроллера и нескольких экспериментов с различными механиками, стало ясно, что управление одной рукой недостаточно. Я доработал код для поддержки второй руки. К этому моменту приложение выглядело гораздо более функциональным и завершённым по сравнению с его ранними версиями.

Доработанное управление под две руки

Доработанное управление под две руки

Вскоре я решил попробовать свои силы на городской научной конференции «Инженеры будущего», которая проходила в МЭИ. Мой проект стал победителем в категории «3D-моделирование, 3D-печать и VR/AR-технологии».

Чтобы показать, что этот проект можно использовать не только как отдельную игрушку, но и как простой инструмент для портирования VR-игр с других платформ, я за пару летних дней (не без помощи магии декомпиляции) портировал две игры: MineSouls III (с Oculus Quest 2) и Rick and Morty: Virtual Rick-ality (с SteamVR).

MineSouls III

MineSouls III
Rick and Morty: Virtual Rick-ality

Rick and Morty: Virtual Rick-ality

Затем было сделано главное меню, настройки, поддержка сторонних уровней и многое другое.

Главное меню

Главное меню

Результатом долгой работы стало VR-приложение с 6DOF-отслеживанием головы и рук, возможностью полноценного взаимодействия с игровым пространством, поддержкой высокогерцовых экранов, возможностью записи видео (как от лица игрока, так и с виртуальной камеры, которую можно закрепить в любом месте), а также встроенным магазином приложений, куда энтузиасты смогут загружать свои игры и приложения.

Селфи на виртуальную камеру

Селфи на виртуальную камеру
Сама виртуальная камера

Сама виртуальная камера
Магазин приложений

Магазин приложений
Смена окружения в лобби

Смена окружения в лобби
Фейерверк (* ^ ω ^)

Фейерверк (* ^ ω ^)

Кому интересно следить за развитием проекта, можете подписаться на группу ВК :)

https://vk.com/enjoythevr

P.S. Также в данный момент происходит набор участников для тестирования приложения на различных смартфонах, закрепленный пост в группе ВК

Автор: Zhes

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js