25 марта 2021

❓ Как освоить разработку приложений AR/VR с нуля

Веб-разработчик, фрилансер... Пишу об ИТ и смежных технологиях.
Попробуем разобраться, какие навыки потребуются новичку, чтобы стать востребованным разработчиком приложений виртуальной и дополненной реальности.
❓ Как освоить разработку приложений AR/VR с нуля

Разработка технологий дополненной (AR) и виртуальной реальности (VR) все еще находится в зачаточном состоянии – именно поэтому сейчас идеальное время, чтобы научиться создавать такой контент. Вы можете придумать захватывающие миры и среды с возможностью взаимодействия в трех измерениях. Порог вхождения в эту сферу все еще относительно невысок, однако новичку придется разобраться с 3D-моделированием и сканированием, движками 3D-игр, панорамными фотографиями и видео. Необходимо знание языков C, C++, C# и комплектов для разработки программного обеспечения (SDK). Давайте обо всем по порядку.

Аппаратное обеспечение

Дополненная и виртуальная реальность и вся 3D-разработка в целом требуют производительного оборудования. Если мы посмотрим на требования двух самых популярных платформ VR (HTC Vive и Oculus Rift), то увидим их схожесть. Рекомендуемые технические характеристики компьютера на сегодняшний день таковы:

  1. Процессор: Intel Core i5-4590 или AMD FX 8350;
  2. Видеокарта: NVIDIA GeForce GTX 1060 или AMD Radeon RX 480;
  3. Оперативная память: 8 ГБ;
  4. Порты: 3x USB 3.0;
  5. Операционная система: Windows 7 или выше.

Это не означает, что имея процессор i3 или карту GTX 1050 вы не сможете заниматься разработкой. Все зависит от вашего проекта: выше приведены рекомендуемые характеристики. Проверить минимальные требования и убедиться в совместимости вашего оборудования можно здесь.

❓ Как освоить разработку приложений AR/VR с нуля

Устройства виртуальной реальности

Устройства VR/AR классифицируются по степени свободы (DOF или Degrees of freedom), т.е. по способу перемещения объекта. Тут есть два варианта: 3-DOF и 6-DOF. Три степени свободы означают, что вы сможете взаимодействовать с виртуальным миром в трех измерениях (в системе координат X, Y, Z) с помощью головного дисплея (HMD), но не сможете двигаться вперед или назад. С шестью степенями свободы двигаться получится во всех шести направлениях.

Эти устройства поддерживают три степени свободы:

  1. Cardboard Google
  2. Google Daydream
  3. Samsung Gear VR

А у этих шесть степеней свободы:

  1. HTC Vive
  2. Oculus Rift

Под каждое устройство используются разные SDK и языки программирования, у них разные ограничения, но есть и общие черты:

  1. Принципы создания виртуальной реальности.
  2. Большинство из них совместимы с контроллерами движений для взаимодействия с виртуальным миром.
  3. Устройства 3-DOF используют смартфоны в качестве закрепленных на голове дисплеев.
  4. Устройства 6-DOF используют настольные гарнитуры.

На этом этапе нужно выбрать одно или несколько устройств для разработки.

Совет
Лучше начать с более простого варианта и только разобравшись со всеми нюансами переходить к сложному.
❓ Как освоить разработку приложений AR/VR с нуля

Движки 3D-игр и языки программирования

Опыт предыдущих лет показывает, что чаще всего для разработки продуктов AR/VR используются C# и C/C++. Это справедливо и для основных игровых движков, которые вам нужно изучить:

  1. Unity – для работы с ним потребуется язык программирования C#.
  2. Unreal Engine – здесь нужен C++ и язык узлов под названием Blueprints Visual Scripting.
Все устройства VR имеют SDK для обоих движков, поэтому вы можете выбрать любой из них для разработки приложений. Досконально изучить эти игровые движки непросто: большинство специалистов рекомендуют осваивать Unity из-за большего количества учебных ресурсов. С другой стороны, Unreal может предложить вам лучшую графику и большую мощность.

У Unity множество версий с разной стоимостью, но есть и бесплатная. Unreal доступен бесплатно, но требует периодических отчислений за право пользования в размере 5% от валового дохода продукта (после $1,000,000 за игру в календарный квартал). Рекомендуется попробовать оба варианта, чтобы выбрать наиболее подходящий.

Google предоставляет SDK для Android (на Java) и iOS (на Objective-C) при разработке для устройств Daydream и Cardboard.
❓ Как освоить разработку приложений AR/VR с нуля

3D-модели

Первое, что вам понадобится для разработки AR/VR – это 3D-модели. Есть два варианта: сделать их самостоятельно или использовать готовые шаблоны. Самостоятельное создание моделей – сложный путь, но в конечном итоге он может оказаться самым лучшим и рентабельным. В этом случае вам придется освоить специальные программы. Например, такие:

  1. Blender;
  2. Autodesk Maya;
  3. Autodesk 3ds Max.

Для создания собственных моделей стоит освоить и 3D-сканирование. Снятые специальным сканером в реальном мире объекты становятся виртуальной трехмерной моделью. Эти устройства пока не идеальны, но они помогут вам начать работу:

  1. David SLS2;
  2. Da Vinci 1.0 AiO;
  3. Structure Sense.

В интернете всегда можно найти и шаблонные 3D-модели:

  1. TurboSquid;
  2. Free3D;
  3. CGTrader;
  4. Sketchfab.

Этот вариант подходит начинающим разработчикам без навыков.

Для работы с видео и фотографиями в формате 360° (они обязательно потребуются вам в виртуальной реальности) необходимо также приобрести подходящую камеру, вроде RICOH THETA или Samsung Gear 360. Готовые варианты панорамных фото и видеороликов нетрудно найти на Flickr или в других стоковых файлообменниках. По звуковым эффектам никаких ограничений нет.

Веб-разработка и виртуальная реальность

Существует также открытый стандарт WebVR с API JavaScript, позволяющий использовать виртуальную реальность в браузере. Он работает с большинством устройств VR без необходимости подключения дополнительных плагинов. Вы можете проверить наличие поддержки браузера на WebVR Rocks и найти дополнительную информацию на сайте Mozilla VR.

Использование этого стандарта является хорошей альтернативой применению игровых движков.

Стоит упомянуть два фреймворка:

  1. aframe.io предназначен для создания виртуальной реальности с помощью HTML и подхода Entity-Component-System. Он был разработан командой Mozilla VR и предоставляет один из самых эффективных способов разработки контента WebVR.
  2. React VR – новая библиотека, разработанная в Facebook на основе React и React Native. Она позволяет создавать сайты VR, используя тот же подход декларативных компонентов, что и в привычном нам фреймворке React.
Поскольку оба инструментария основаны на Three.js (самой популярной библиотеке Javascript для использования трехмерной графики в браузере), знание этой библиотеки даст вам прочную основу.

Дополненная реальность

VR и AR – разные понятия. Виртуальная реальность предполагает создание иммерсионной среды, заменяющей реальный мир. Дополненная реальность добавляет слои данных в реальный мир, а не заменяет его. Можно, например, переводить иностранные слова, которые видит пользователь или показать ему каких-нибудь монстров в физической локации. Виртуальная реальность сама переносит пользователя в мир монстров.

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

Одним из самых популярных инструментов для разработки AR является Vuforia: он доступен для Unity, Android и iOS, предлагает огромное количество функций и поддерживает множество устройств, включая телефоны Tango, head-display, смартфоны, очки, а также специально изготовленные козырьки Microsoft HoloLens.

Проблемы

Первая проблема связана с новизной индустрии AR/VR – существует не так много передовых практик для разработки приложений. Еще один недостаток VR – это укачивание. При длительном использовании устройства у людей может возникнуть дезориентация, вызванная неестественными движениями. Возникает она из-за несоответствия между физическими и визуальными сигналами к действию.

Чтобы стать разработчиком AR/VR, необходимо пройти несколько этапов:

  1. Выбор платформы. Решите, какими устройствами вы будете пользоваться, на какие платформы ориентироваться и какой игровой движок, SDK или фреймворк предпочтете освоить.
  2. Обучение. Разберитесь с терминологией. Изучите 3D-моделирование, язык игрового движка, SDK или фреймворка, а также разработку интерфейсов для AR/VR.
  3. Учебный проект. Хотя большинство приложений AR/VR являются игровыми, есть много областей, на которые можно ориентироваться. Например, образование, визуализация данных, возможности 360°.
  4. Участие в сообществах. Ходите на встречи, общайтесь в форумах и чатах, переписывайтесь с другими разработчиками и не стесняйтесь задавать вопросы. Главное здесь – практиковаться и набираться опыта.

Несколько полезных ссылок для изучения технологий AR/VR:

  1. https://unity.com/ru/solutions/ar-and-vr-games – ПО для разработки дополненной и виртуальной реальности;
  2. https://www.uxofvr.com/ – пользовательский опыт в AR/VR;
  3. https://github.com/ExtendRealityLtd/VRTK – набор инструментов для VR-разработки в Unity3D;
  4. https://www.artefactgroup.com/case-studies/storyboard-vr/ – инструмент прототипирования, позволяющий визуализировать опыт в виртуальной реальности;
  5. Гайд по виртуальным мирам: AR и VR.

Выводы

Технологии AR/VR пока сыроваты. Они имеют массу ограничений, да и оборудование стоит недешево. Тем не менее, потенциал виртуальной и дополненной реальности огромен, а большинство специализирующихся в этой области профессиональных разработчиков не имеет большого опыта. К тому же некоторые из приобретенных в процессе освоения модного направления навыков (например, языки C/C++) можно применить и в других областях программирования. Попробовав, вы ничего не теряете. Удачи!

Источники

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ