Научная статья на тему 'ОСОБЕННОСТИ РАЗРАБОТКИ ИГР ДЛЯ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ'

ОСОБЕННОСТИ РАЗРАБОТКИ ИГР ДЛЯ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
452
49
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РАЗРАБОТКА ИГР / ВИРТУАЛЬНАЯ РЕАЛЬНОСТЬ / UNITY / ПРОГРАММИРОВАНИЕ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Томашин Е.Д., Арсентьев Д.А.

Статья посвящена разработке приложений и игр виртуальной реальности (VR - Virtual Reality) с помощью игрового движка Unity Engine с использованием языка программирования C#. В качестве конечного устройства используется шлем виртуальной реальности HTC Vive Focus Plus, вышедший в начале 2019 года, на ОС Android. В статье представлены общие принципы создания проекта от идеи до её реализации и публикации.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Томашин Е.Д., Арсентьев Д.А.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «ОСОБЕННОСТИ РАЗРАБОТКИ ИГР ДЛЯ ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ»

[1]. Это инструмент для разработки двух- и трёхмерных приложений и игр, работающий под операционными системами Windows, OSX.

Visual Studio - это интегрированная среда разработки (IDE) от Microsoft, основной инструмент разработки приложений для платформы .NET и Windows в целом. Оптимально работать в последней версии среды от 2019 года, которая доступна по ссылке [2]. Данная версия полностью совместима с Unity.

В качества источника «воспроизведения» игры будет использован шлем виртуальной реальности HTC Vive Focus Plus, который является полностью автономным средством на операционной системе Android.

Игры виртуальной реальности можно писать не только под специализированные шлемы с джойстиками, но и под обычный телефон. На данный момент это гораздо доступнее, поскольку практически любой бюджетный смартфон поддерживает такие возможности. В качестве примера можно привести небольшой сборник мобильных мини-игр виртуальной реальности для смартфонов под управлением операционной системы Android [3]. Всё управление производится с помощью взгляда: нужно направлять метку на экране на требуемые объекты (надписи, объекты и тому подобное). Для этого всего есть Google Cardboard - существуют как обычные картонные шлемы, так и пластиковые, некоторые из которых содержат механизм для нажатия по экрану.

Но проблема мобильного VR от обычного заключается в том, что сложно взаимодействовать в виртуальном мире посредством взгляда (направления точки на объекты) и изредка с помощью одной кнопки (некоторые шлемы, как упоминалось выше, имеют кнопку для нажатия по экрану), что позволяет получить одно дополнительное нажатие. Но всё же двух действий недостаточно для комфортной работы с виртуальным миром, чтобы делать практически всё то же самое, что и в реальной жизни. Поэтому на смену приходят шлемы с джойстиками, которые заменяют руки, чего вполне достаточно для желаемого результата, который пока недоступен для всех.

В процесс создания игры на первом этапе необходимо создать трехмерный проект, который получит название, например, «TutorialGame». После внедрения всех

ассетов и стандартных настроек будет создана пустая сцена.

216

Теперь требуется зайти на сайт разработчика Vive [4], и во вкладке Develop и выбрать VIVE Wave VR SDK. Данный компонент необходим для разработки приложений под шлемы виртуальной реальности VIVE.

После получения необходимого компонента его нужно импортировать в проект. Для этого в Unity нажимается в верхней панели «Assets» - «Import Package» - «Custom Package ...». Далее находится установленная папка и открывается файл «wvr_unity_sdk.unitypackage». Необходимо дождаться окончания импорта, после чего появятся две новые папки - «Plugins» и «WaveVR».

Далее требуется перенастроить проект под ОС Android для Vive Focus Plus. Для этого в Unity в верхней панели нужно нажать «WaveVR» - «Preference» -«DefaultPreferenceDialog». Далее в открывшемся диалоговом окне «WaveVR_Settings» нажать кнопку «Accept All», либо же на всех пунктах выбрать «Use recommended (...)». Требуется время, пока всё перенастроится.

Для упрощения создания игр с минимальным написанием кода для работы VR разработчики создали несколько различных примеров использования оборудования. Всё это доступно в Asset Store под названием «VIVE Input Utility» [5].

Чтобы приступить к созданию сцены необходимо из Sample Scene удалить «Main Camera». Далее нажатием правой кнопки мыши создать объект «Plane» из раздела «3D Object». Таким же образом добавить объект Cube и разместить его чуть выше поверхности плоскости. В инспекторе куба добавить компонент Rigidbody, чтобы он вел себя как физический объект, имеющий массу. Продублировать куб несколько раз, выбрав его и нажав Ctrl+D. Разместить их так, чтоб они не накладывали^ друг на друга.

Теперь настроить камеру виртуальной реальности. Для этого создать пустой объект (ПКМ в «Hierarchy» - «Create Empty») и назвать, например, «VR Camera». В инспекторе обнулить координаты позиции и переместить чуть подальше от кубиков по плоскости, по координатам X и/или Z. Этот объект будет в себе хранить пустой дочерний объект под названием, например, «Device Height» с обнуленными координатами. Через «Add Component» нового объекта необходимо найти скрипт «CustomDeviceHeight» - он устанавливает удобную для VR высоту отображения

камеры, которую можно изменить с «1.3» на любое другое число. В качестве стандартной единицы измерения используются метры.

Далее в поиске в окне Project необходимо найти следующие префабы (готовые и настроенные объекты) и поместить их в ранее созданный объект:

1) ViveCameraRig - с помощью него будет видно всё окружение;

2) ViveColliders - чтобы джойстики, с помощью которых производится управление, могли работать с объектами в сцене;

3) ViveCurvePointers - нажатия на джойстиках.

Собственно, теперь можно увидеть игровой мир от первого лица, но пока не нельзя взаимодействовать с ним полностью. Для решения этой задачи необходимо создать шарик, который нужно брать и бросать в кубики, чтоб они упали. Далее нужно создать так же, как и кубики, но уже не «Cube», а «Sphere». Расположить так, чтобы он был над поверхностью плоскости, не был далеко от объекта VR Camera, но не совпадал с его координатами. Чтобы шарик (сфера) вел себя как физический объект, к нему необходимо добавить компонент Rigidbody. А чтобы его можно было взять - скрипт «BasicGrabbable».

Итоговая сцена должна выглядеть так, как на скриншоте ниже.

Рис. 1. Итоговая сцена

Далее приступить к этапу компиляции игры и перемещения её на VR шлем. Включить Vive Focus Plus и джойстики, подключить его к компьютеру по проводу из комплекта. Открыть в Unity «File» - «Build Settings ...» или нажать Ctrl+Shift+B. В пункт Run Device нажать «Refresh», выбрать девайс.

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

Очевидно, что создавать несложные VR игры очень просто и интересно. Конечно, для создания чего-то масштабного, стандартных скриптов не хватит, но и там нет ничего сложного - стоит лишь знать C# и фантазировать для того, чтоб сделать собственную крутую игру в виртуальной реальности.

Список литературы:

Unity: официальный сайт [Электронный ресурс]. URL: https: //unity3 d. com/get-unity/download (дата обращения 29.12.2019).

Microsoft: официальный сайт [Электронный ресурс]. URL: https://visualstudio.microsoft.com/ru/free-developer-offers/ (дата обращения 29.12.2019). Google play: официальный сайт [Электронный ресурс]. URL: https://play.google.com/store/apps/details?id=com.FirsusGames.VRGamesCollection (дата обращения 20.12.2019).

Vive Developers: официальный сайт [Электронный ресурс]. URL: https://developer.vive.com/us/ (дата обращения 25.12.2019).

Unity Asset Store: официальный сайт [Электронный ресурс]. URL:https://assetstore.unity.com/packages/tools/integration/vive-input-utility-64219

УДК 004.4'27

Торопова А.Д.

студент

Московский политехнический университет (Россия, г. Москва)

Арсентьев Д.А.

к.т.н., доцент кафедры «Информатика и информационные технологии» Московский политехнический университет (Россия, г. Москва)

ОСНОВНЫЕ АЛГОРИТМЫ СКЕЛЕТНОЙ АНИМАЦИИ ТРЁХМЕРНЫХ МОДЕЛЕЙ

Аннотация: в данной статье рассмотрены методы анимации трехмерных моделей посредством их привязки к некому каркасу, виртуальному скелету. Рассмотрен процесс создания такой анимации и проанализированы сильные и слабые стороны определенных подходов. Обосновано широкое распространение концепции использования скелета в анимации.

Ключевые слова: модель, вершины, скелет, риггинг, вес, иерархия.

3D-анимация - это автоматизация перемещения и трансформации модели трехмерного объекта с течением времени. Такая модель представляет собой поверхность, состоящую из вершин, ребер и граней (т.н. полигональная сетка). Каждая вершина имеет свои координаты, и их изменение лежит в основе трехмерной анимации.

Существует множество различных способов визуализации движения трехмерных объектов, при этом методы скелетной анимации пользуются наибольшей популярностью.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.