Практика 7. Дополненная реальность
Дополненная реальность в Unity и Vuforia
1. Введение
Существуют два вида невещественных реальностей, управляемых компьютерными устройствами - Виртуальная реальность (VR - virtual reality) и Дополненная реальность (AR - augmented reality).
Первая подразумевает полное погружение, например полная замена видимого мира виртульным, и для этого используются шлемы виртуальной реальности.
Вторая - это дополнение к вещественной реальности, где в реальном мире отображаются какие-либо созданные компьютером объекты, через AR-очки или смартфон.
Примером AR приложения является Google Lens, который определяет объекты и переводит текст прямо на объектах.
Для Unity существует множество AR-движков.
Основные - ARKit и ARCore, для iOS и Android, соответственно. Они сложные и многофункциональные, поддерживают меньше количество устройств чем остальные движки и более требовательны к ресурсам устройства.
Дальше - основные коммерческие движки - Unity MARS, Vuforia, Maxst. Они имеют дорогие платные версии, и бесплатные с ограничениями на AR и приложения.
2. Установка Vuforia
Взять Vuforia для Unity можно на портале разработки Vuforia
При выборе файла пакета Unity сайт попросит вас зарегистрироваться (по кнопке Create new account). После успешной регистрации и входа можно скачать этот файл.
Создайте новый проект Unity, перетащите файл Vuforia в панель Project.
Спустя полтора часа Vuforia загрузится в ваш проект и теперь его нужно настроить. Пройдите в Help - Vuforia Engine - Show Developer Agreement и подтвердите.
Дальше нужно настроить лицензионный ключ. Для этого нужно опять пройти на портал разработчиков, в раздел Develop:
Там получить ключ (задайте имя ему сами), нажмите его снова и скопируйте его в Window - Vuforia Configuration, там в Inspector - App License Key.
3. Работа с Vuforia
3.1. AR Camera
Теперь можно создать объект камеры, в изображение которой будут вставляться объекты дополненной реальности. Это может быть камера вашего телефона (если верно настроить пакеты и сборку для проекта Unity) или вебкамера вашего настольного компьютера или ноутбука.
Создайте GameObject - Vuforia Engine - AR Camera.
При запуске программы будет показан вывод вашей камеры.
3.2. Image Target
Одна из вещей, которая часто выполняется в AR, это действие над изображением на плоскости. Так бывает в приложении Google Lens, которое переводит таблички с иностранного языка прямо на самой поверхности текста, или какие-либо рекламные кампании магазинов игрушек или еды, которые предлагают скачать приложение и навести камеру на картинку, которая прилагается вместе с продуктом, чтобы отобразить какой-либо объект над ней.
Для того чтобы понять, как должна Vuforia реагировать на изображение, нужно добавить цель (Target). Удобно, как в последнем примере, прикрепляться к определенному изображению, так как сразу становится видно как изображение расположено в мире - где его края, как оно искажено в проекции камеры.
Создайте объект Vuforia Engine - Image Target.
Теперь нужно сообщить сервису Vuforia что такой объект есть. Пройдем на портал разработчиков в Target Manager и создадим новую базу данных:
В созданной базе данных создаем новую цель (Target), там выберем Single Image (изображение которое вы выберете должно обязательно быть 8-битным черно-белым или 24-битным цветным jpg или png). Width изображения 0.2 (как по-умолчанию в Vuforia).
Созданную базу данных можно загрузить в проект нажав Download Database. Там выбираем Unity, и перетаскиваем полученный файл в Project.
Добавленное нами изображение теперь можно выбрать в Inspector, выбрав Type - From Database, выбрав нашу базу данных и изображение.
Рис. 1. Цель-изображение, добавленное в Unity
При запуске, при наведении камеры на изображение можно видеть, как меняются координаты объекта, так как камера следит за этим изображением (если этого не происходит, проведите рукой перед камерой).
Рис. 2. Координаты цели меняются в зависимости от положения объекта.
Теперь добавим объект, который будет менять положение на экране в зависимости от положения изображения. В нашем случае, это будет куб, чьи размеры будут меньше размеров Image Target (мы задавали ширину 0.2) и расположение выше нее.
Расположите новый куб над изображением как показано на рис. 3, внутри объекта Image Target по иерархии.
Рис. 3. Расположение куба для помещения в дополненной реальности.
Если все выполнено верно, то при запуске и наведении камеры можно видеть, как куб располагается над изображением.
Рис. 4. Куб расположен над изображением в дополненной реальности.
Комментарии
Отправить комментарий