AR/VR в разработке приложений на Android

AR/VR в разработке приложений на Android, image #1

Словосочетание “дополненная реальность” или AR (Augmented Reality) уже давно на слуху и применяется во многих сферах жизни. AR активно внедряется и в мобильные приложения. Большую часть рынка AR занимают приложения для развлечений. Помните покемоновую лихорадку 2016 года? Однако, не развлечениями едиными. Уже сейчас AR применяется и в туризме, медицине, образовании, здравоохранении, ритейле и других сферах. Согласно исследованиям, на конец 2020 года в мире насчитывалось почти 600 млн. активных пользователей мобильных приложений с AR. К 2024 году прогнозируется почти трёхкратный рост (1,7 млрд.), а объём прибыли от таких приложений оценивается в $ 26 млрд. Будущее уже совсем близко!

Именно поэтому в этой статье мы рассмотрим несколько популярных инструментов разработки мобильных приложений для Android с функцией AR, их плюсы и минусы.

Немного истории

С момента появления технологии AR и до её внедрения в смартфоны прошло достаточно много времени. Изначально был частью VR (Virtual Reality). В 1961 году компания Philco Corporation (США) разработала первые шлемы виртуальной реальности Headsight. Как и большинство изобретений, они сначала использовались для нужд министерства обороны. Затем технологии развивались: появлялись различные симуляторы, виртуальные шлемы и даже очки с перчатками. Их распространение не носило массовый характер, однако этими технологиями заинтересовались NASA и CIA. В 1990 году Том Коделл предложил термин “Augmented reality” (дополненная реальность). Можно сказать, что с этого момента AR отделилась от VR. В 90-е годы появилось много интересных изобретений: экзоскелет, позволяющий военным виртуально управлять машинами, игровые платформы. В 1993 году компания Sega разработала игровую консоль Genesis. Однако, этот продукт не стал массовым: у пользователей были зафиксированы тошнота и головные боли во время игр. Высокая стоимость девайсов, скудное техническое оснащение и побочные эффекты вынудили людей на время забыть о технологиях VR и АR в массовом сегменте. В 1994 году AR впервые проникла в искусство: в театре прошла постановка под названием «Танцы в киберпространстве». В ней акробаты танцевали в виртуальном пространстве.

В 2000 году в популярной игре Quake благодаря шлему виртуальной реальности появилась возможность преследовать монстров на улице. Возможно, это вдохновило будущих создателей игры Pokemon Go. До 2010-х годов попытки вывести AR в массовый сегмент особым успехом не увенчались.

В 2010-х годах появляются достаточно успешные проекты: MARTA (приложение от компании Volkswagen, которое даёт пошаговые рекомендации по ремонту и обслуживанию автомобилей), очки Google Glass. В это же время начинается внедрение AR в мобильные приложения: Pokemon Go, IKEA Place, интеграция AR в различные приложения Google (Translate, Maps и др.), внедрение фильтров в Instagram и др. В настоящее время мобильных приложений с AR становится всё больше и их применение распространяется не только в сфере развлечений.

Что такое AR и как он работает на смартфоне

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

  1. Естественные маркеры. На окружающий мир накладывается виртуальная сетка. На этой сетке AR-движок определяет опорные точки, которые определяют точное место, к которому в будущем будет привязан виртуальный объект. Преимущество: объекты реального мира служат естественными маркерами. Не нужно создавать маркеры программно.
  2. Искусственные маркеры. Появление AR-объекта привязывается к какому-то конкретному маркеру, созданному искусственно, например, месту, где просканировали QR-код. Эта технология работает надёжнее, чем с естественными маркерами.
  3. Пространственная технология. В этому случае положени AR-объекта привязывается к определённым географическим координатам. Используются данные GPS/ГЛОНАСС, гироскопа и компаса, встроенного в смартфон.

Инструменты для AR в Android

Google ARCore

Первое, что приходит на ум - это ARCore от Google. ARCore - это не SDK, а платформа для работы с AR. Поэтому нужно дополнительно реализовывать графические элементы, с которыми взаимодействует пользователь. Это значит, что одним ARCore тут не обойдёшься, и нужно внедрять технологии для работы с графикой.

Для этого есть несколько решений.

Если вы хотите использовать Kotlin:

  • До недавнего времени можно было воспользоваться разработанным Google специально для этого Sceneform SDK. Но в 2020 году Google перевёл Sceneform в архив и отказался от его дальнейшей поддержки. В настоящее время репозиторий с Sceneform поддерживается энтузиастами и доступен по ссылке. Надо сказать, что репозиторий достаточно часто обновляется. Однако, всё же есть риск использования технологии, которая не поддерживается Google.
  • Интегрировать OpenGL в проект. OpenGL - библиотека, написанная на C++ специально для работы с графическими объектами. Android предоставляет SDK для работы с OpenGL для работы на Kotlin и Java. Этот вариант подходит, если ваши разработчики умеют работать с OpenGL или быстро смогут разобраться (что является нетривиальной задачей).

Если вы хотите использовать не Kotlin:

  • Android NDK. Если ваши разработчики знают C++, то они могут использовать Android NDK для разработки. Однако, там также нужно будет иметь дело с графикой. Для этой задачи подойдёт уже упомянутая библиотека OpenGL.
  • Unreal Engine. Нет ничего лучшего для работы с графикой, чем игровые движки. К сожалению, ARCore уже не поддерживается SDK для Unity, однако разработчики на Unreal Engine могут разрабатывать приложения.

Vuforia

Разработка компании PTC. Другой популярный инструмент для разработки AR приложений - Vuforia. Vuforia может работать как с обычными 2D и 3D объектами, так и с видео и аудио, в отличие от ARCore. Можно создавать виртуальные кнопки, изменять фон и управлять окклюзией (ситуацией, когда один объект немного скрыт другим).

Любопытный факт: используя Vuforia, разработчик может включить использование ARCore под капотом. Более того, официальная документация Vuforia рекомендует делать это. То есть, во время работы приложения Vuforia будет проверять, возможно ли на данном девайсе использовать ARCore и если возможно, то будет использовать его.

К сожалению, для фанатов Kotlin снова плохие новости. Vuforia можно использовать только на C или на Unity. Также минусом является то, что если вы планируете публикацию своего приложения для коммерческих целей, то придётся приобрести платную версию Vuforia (цены Vuforia).

Работает с Android от 6 и выше, есть список рекомендованных девайсов.

ARToolKit

ARToolKit - бесплатная open-source библиотека для работы с AR. Возможности:

  • поддержка библиотек для работы с графикой Unity3D и OpenSceneGraph
  • поддержка работы в режиме одной и двух камер одновременно
  • поддержка GPS
  • возможность создавать real-time приложения
  • интеграция с умными очками
  • поддержка мультиязычности
  • автоматическая калибровка камеры

Данная библиотека является полностью бесплатной. Однако, документация оставляет желать лучшего. Официальный сайт не реагирует на нажатия на пункты меню. Судя по всему, ARToolKit поддерживает разработку под Android на Unity. Использование данной библиотеки довольно рискованно.

MAXST

Популярное решение из Кореи. Имеется очень подробная документация. Есть SDK для работы с 2D и 3D объектами. Разработка доступна на Java и Unity. На Java нужно дополнительно реализовывать работу с графикой. Официальный сайт утверждает, что SDK работает на Android начиная с версии 4.3, что является огромным плюсом для тех, кто хочет охватить максимальное количество девайсов. Документация достаточно подробная. Однако, данный SDK платный, если планируется публикация приложения. Цены здесь.

Wikitude

Разработка австрийской компании, которую недавно поглотил Qualcomm. Позволяет распознавать и отслеживать 2D и 3D объекты, изображения, сцены, а также работать с геоданными, есть интеграция со смарт-очками. Есть SDK на Java (нужно дополнительно реализовывать работу с графикой), а также Unity и Flutter. Это решение полностью платное, но можно попробовать бесплатную версию на 45 дней.

Заключение

Сейчас есть возможность выбора фреймворка для разработки AR приложений для Android. Безусловно, их намного больше, но я постарался собрать самые популярные. Чтобы было удобнее сравнить перечисленные выше решения, я представил их краткие характеристики в таблице. Надеюсь, это поможет в выборе. Да прибудет с вами Android.

Fora Soft разрабатывает VR/AR-приложения! Загляните в наше портфолио, обратите внимание на Super Power FX, Anime Power FX, UniMerse.

AR/VR в разработке приложений на Android, image #2

Юра, Android-разработчик.

134 views·2 shares
134 views