как создать ar приложение на андроид unity
Как создать AR приложение в Unity
Время чтения: 10 минут
После того, как мы установим все необходимое, мы перейдем к созданию простого проекта, который позволит нам изучить поверхности и размещать пользовательские объекты на этих поверхностях.
Убедитесь, что у вас есть совместимый телефон
Прежде чем вы зайдете слишком далеко, помните, что вам понадобится совместимое устройство для тестирования вашего приложения. К счастью, когда ARCore покинул предварительный просмотр и перешел на выпускную версию, Google выпустил огромное количество устройств, совместимых с ARCore.
Загрузите все программное обеспечение
Теперь, перейдем к программному обеспечению, которое нам понадобится. Вот что вам понадобится:
При установке Unity, нам нужно убедиться, что у нас есть параметры, которые будут использоваться для разработки ARCore, установленной во время этого процесса.
Перейдите в то место, где вы загрузили все файлы для этого проекта, и дважды щелкните файл «UnityDownloadAssistant-2017.3».
Двигайтесь вперед в процессе установки, пока не дойдете до окна выбора компонентов. Теперь убедитесь, что выбрана «Unity 2017.3.1f1» (или какая бы версия 2017.3 вы ни устанавливали), а также «поддержка сборки Android.»
Создайте свой проект ARCore
Теперь мы создадим новый проект и настроим специфику ARCore, которая нам нужна, чтобы наш проект был запущен.
Добавление ARCore SDK & Assets
Наконец, для завершения, нам нужно импортировать наши элементы ARKit в нашу сцену. Дважды нажмите на кнопку «arcore-unity-sdk-v1.0.0.» файл «unitypackage».
Это вызовет окно импорт пакета Unity. Просто нажмите на кнопку «Импорт». Нам не нужно ничего отменять в этом списке, просто оставьте его как есть.
Создайте новую сцену
Нам нужно создать свою сцену, но нам также нужно место, чтобы сохранить ее. Так что давайте создадим папку для нашей сцены. В окне проекта щелкните правой кнопкой мыши на «Активы», затем выберите «Создать», а затем «Папка». Назовите новую папку Scenes.
Далее, нажмите на «File» в строке меню, а затем «Save Scene as». Перейдите в свою недавно созданную папку «сцены». Введите NRARCore (или любое другое имя, которое поможет вам запомнить сцену) в поле Имя файла и нажмите кнопку «Сохранить».
Перенесите ARCore Prefabs в сцену
Префабы-это тип активов в Unity, который позволяет нам хранить коллекцию GameObjects и их связанных компонентов таким образом, что их легко создать в движке в режиме реального времени.
Все настройки, сохраненные при создании сборного модуля, сохраняются вместе с самими компонентами.
В Unity, в окне иерархии, выберите как «основная камера», так и «направленный свет». Щелкните правой кнопкой мыши на них и выберите «Удалить», когда появится меню.
В окне ПРОЕКТА Перейдите в каталог «Prefabs» в разделе «GoogleARCore». «Выберите префабы» устройство «ARCore» и «экологический свет», затем перетащите пару префов из окна проекта в окно иерархии.
Затем нажмите на кнопку Создать в окне иерархии, выберите «пользовательский интерфейс», а затем «система событий.»
Чтобы начать эту часть урока, нам необходимо место, чтобы поместить наши файлы сценариев, поэтому мы создадим папку сценариев. В окне проекта, выбрав папку «активы», щелкните правой кнопкой мыши в открытом пространстве и выберите «Создать», а затем «Папка».
Назовите эту папку при появлении соответствующего запроса.
Теперь дважды щелкните по вновь созданной папке, чтобы открыть ее. Снова щелкните правой кнопкой мыши в открытом пространстве и выберите «Создать», а затем «скрипт C#.»
Назовите файл «AppController» и дважды щелкните его, чтобы открыть в нашей интегрированной среде разработки ( IDE ) по выбору.
Здесь, в нашем блоке using, в верхней части класса (строка 2), нам нужно добавить строку: использование GoogleARCore;
Это заявление дает нам возможность получить доступ к элементам Google ARCore SDK.
Когда Unity создает класс C#, он автоматически создает два метода: Start () и Update (). В нашем методе Start() нам нужно добавить вызов метода: QuitOnConnectionErrors();
Целью метода QuitOnConnectionErrors () является запрос и получение разрешения от устройства и пользователя на доступ к камере. Если по какой-то причине разрешение не может быть дано, приложение будет закрываться.
В методе Update () нам нужно добавить строки 14-20 на изображении ниже.
Здесь мы проверяем, действительно ли отслеживается состояние текущего кадра. Если это не так, мы устанавливаем тайм-аут экрана до 15 секунд. Это дает отслеживания некоторое время для восстановления перед завершением работы.
Если TrackingState отслеживает, то sleepTimeout устанавливается в NeverSleep.
В методе QuitOnCeonnectionErrors () мы тестируем для трех условий. При выполнении любого из этих условий мы отправляем соответствующее сообщение об ошибке на экране с помощью метода ShowAndroidToastMessage ().
Настройка устройства для тестирования
Для того, чтобы получить наш файл пакета Android (или APK-файл) на телефоне и проверить его, нам нужно включить «параметры разработчика». Это меню скрыто по умолчанию, но его можно легко разблокировать, нажав номер сборки в разделе «О телефоне» приложения «Настройки» семь раз подряд. Возможно, вам придется ввести свой PIN-код, для завершения.
В параметрах разработчика убедитесь, что включен параметр «Отладка USB».
Вернитесь на главную страницу меню настроек, выберите пункт Блокировка экрана и безопасность или что-то подобное. Оказавшись внутри этого экрана, выберите «неизвестные источники» и включите эту опцию. Если вы не видите эту опцию, это, вероятно, потому, что вы используете Android Oreo или Android P. В этом случае он попросит вас включить «Неизвестные источники» при попытке установить APK.
После всех необходимых настроек вы можете перейти к тестированию и исправлению недочетов в вашей AR игре на Android.
Augmented reality
Unity provides powerful tools to make rich, deeply engaging augmented reality experiences that intelligently interact with the real world.
AR keynote segment from Unite Copenhagen 2019
Unity has custom resources to bring your immersive vision to life. Our industry-leading software development platform pairs tools purpose-built for Augmented Reality creators and a unified workflow across devices that lets you focus on pushing the boundaries of your imagination.
Having proactively embraced and integrated AR development, Unity was a vital element of our technology stack as both an expressive sandbox for rapid prototyping and a solid platform for shipping final product.
Tools to bring your creative vision to life
AR Foundation
A framework purpose-built for AR development allows you to develop your app once, then deploy it across multiple mobile and wearable AR devices. It includes core features from each platform, as well as unique Unity features that include photorealistic rendering, physics, device optimizations, and more.
Unity MARS
Unity MARS provides AR creators across industries with specialized tools and a streamlined workflow to create AR experiences that intelligently interact with the real world.
Use Unity as a library
Insert AR powered by Unity directly into your existing native mobile app. Instead of rebuilding your app to add AR functionality, you can unlock the full power of Unity’s AR offerings by embedding into what you’ve already created.
XR Interaction Toolkit
Add interactivity to your AR apps by simply dropping components into your scene – no more coding these object interactions from scratch.
Interactive AR experiences across industries
HoloMaps
Taqtile’s Holomaps solution, created in Unity, brings great context and understanding to AEC stakeholders. It displays topography, infrastructure, and buildings in a holographic model, and overlays real-time data to bring contextually relevant information into the map.
INFINITI QX50 X-Ray app
Visionaries 777 worked with INFINITI to disrupt the traditional showroom experience using AR. Sales teams at dealerships around the world helped car shoppers to understand the car’s inner workings, without ever opening the hood.
PHAROS AR
Childish Gambino, known for being a global trailblazer, wanted an augmented reality (AR) app as a way to deeply engage his fans. The experience combines storytelling, music, and technology and allows fans to enter the Pharos world, which includes new songs and artwork by Childish Gambino himself.
Wayfair AR
Wayfair uses AR to help users easily visualize how a variety of Wayfair furniture designs would look in their home. Users scan their floor plan with their phone, and then select furniture designs and drag and drop them into place using their smartphone as a viewfinder.
AR Games
Unity is the preferred platform for creating immersive games, with an industry-leading developer experience, toolset, and comprehensive platform partnerships. See how studios like Rovio, Niantic, and Ludia successfully bring imaginative immersive games to life.
Learn more
Unity XR platform has a new architecture
Unity developed a new architecture that improves the support for existing and future augmented reality (AR) and virtual reality (VR) platforms. Learn about the technology under the hood, the consequent benefits, and improvements to the platform, and how it impacts your workflows in creating AR/VR experiences.
Introducing Unity MARS
Unity MARS, our new AR authoring environment, solves the most common pain points for AR creators across industries. Its specialized tools and streamlined workflow enable users to unlock the next generation of AR experiences.
XR graphics: Delivering the best AR/VR experiences
Virtual reality (VR) and augmented reality (AR) are powerful tools for storytelling, but poor execution can negatively impact consumer reactions and engagement. This video guides you through the latest Unity tech and best practices for creating stunning high-end VR and mobile AR visuals.
Product roadmap for AR Foundation
Learn about the latest developments in AR Foundation, the Unity framework purpose-built for augmented reality (AR) development that lets you build your app once and deploy across mobile and wearable AR platforms. Hear about the roadmap for AR Foundation and what’s in the works.
Дополненная реальность / Создание простого AR приложения
Благодаря совместным стараниям многих крутых компаний технология дополненной реальности плотно вошла в нашу жизнь и сегодня простым AR приложением никого не удивить.
Несмотря на столь большое распространение для многих данная тема до сих пор является очень страшной и непонятной.
AR программа
Итак, наша программа будет достаточно простой. Мы будем наводить смартфон на некую ровную поверхность и далее на ней будет появляться объект. Данным объектом можно будет управлять за счет пользовательского интерфейса в приложении.
Разработка приложения
Технология Vuforia
После создания проекта нам необходимо подключить в него технологию Vuforia.
Создание программы
Следующий этап, удаляем основную камеру на сцене и вместо неё добавляем AR камеру. Такая камера идет от библиотеки Vuforia и она позволяет обрабатывать различные поверхности для расположения на них объектов.
Чтобы всё работало нужно в AR камере нажать на «Open Vuforia configuration» и далее в поле «Add licence key» нужно установить ключ.
Теперь добавим на сцену объекты «Plane Finder», а также «Ground Plane Stage». За счёт «Plane Finder» Vuforia сможет определить ровную поверхность, а за счёт «Ground Plane Stage» она сможет расположить на этой поверхности различные объекты.
Также не забудьте перенести ссылку на объект «Ground Plane Stage» в объект «Plane Finder». Это нужно чтобы «Plane Finder» понимал с чем требуется работать.
Расположение объектов
Далее выбираем объект и перетаскиваем внутрь «Ground Plane Stage». Уменьшаем размеры если необходимо, а также отодвигаем камеру, чтобы объекты не находились в одном месте.
Компиляция проекта
Теперь всё готово и остается лишь скомпилировать проект и запустить на устройстве. Для этого заходим в Build Settings, добавляем открытую сцену, а также выполняем перекомпиляцию проекта под iOS или Андроид в зависимости от того какое устройство у вас есть под рукой.
Далее заходим в Player Settings и прописываем некоторые основные настройки. К примеру: название игры, идентификатор, иконки для приложения, если хотите и по сути на этом всё. Кстати, если компилируете под Андроид, то там ещё не забудьте подключить SDK к Unity, а также не забудьте создать ключ приложения всё в тех же Player Settings.
Перед компиляцией обязательно установите XR плагин. Именно он контролирует большинство вещей в вашем приложении с дополненной реальностью. Без него ничего работать не будет.
После компиляции вы можете загрузить приложение на ваш смартфон и протестировать его работу.
Видеоурок по AR
Для более детального ознакомления предлагаем просмотреть небольшой урок на эту тему:
Дополнительный курс
Как создать приложение AR Android для Vuforia и Unity
Следующее программное обеспечение и соответствующие версии будут использоваться в следующих двух сообщениях:
Краткий обзор
Существует несколько подходов к созданию приложений дополненной реальности. Мы будем использовать маркерный подход для создания нашего приложения AR для мобильных устройств. В следующем уроке мы добавим поддержку картона.
Marker / Image Target — это изображение, которое распознается и отслеживается камерой мобильного устройства. Это действует как источник для увеличения. После распознавания контент может отображаться относительно него.
Этот учебник будет состоять из трех частей:
Начало работы с Vuforia
Для начала нам нужно перейти на портал разработчиков Vuforia и создать учетную запись.
После входа в систему мы можем перейти на страницу «Разработка». Чтобы использовать Vuforia с Unity, нам нужно сделать две вещи:
Создайте лицензионный ключ для нашего приложения
Лицензионный ключ — это уникальный идентификатор, необходимый для создания приложения в Unity, использующего Vuforia. Чтобы создать лицензионный ключ, нам нужно перейти в «Разработка >> Менеджер лицензий» и выбрать «Добавить лицензионный ключ». Нам будет предложена страница, подобная этой:
После того, как мы заполним данные, мы можем выбрать «Далее», а затем «Подтвердить». Это перенаправит нас на страницу «Диспетчер лицензий», где появится название приложения.
Как только мы выберем «ARDemo», мы получим лицензионный ключ. Этот ключ будет использован позже в Unity.
Создайте базу данных и цель изображения
Следующим шагом является установка изображения в качестве цели. Мы переходим в «Разработка >> Target Manager», выбираем «Добавить базу данных» и заполняем детали:
После короткого времени загрузки, цель будет добавлена, и у нас будет опция «Загрузить набор данных».
Здесь важно отметить «Рейтинг». Хороший рейтинг означает, что его можно использовать для отслеживания, тогда как плохой рейтинг означает, что на изображении недостаточно характерных точек (интересные точки на изображении, такие как края, углы и т. Д., Которые используются для отслеживания при обработке изображения).
Мы также можем взглянуть на характерные точки нашего изображения, выбрав «stone_hires >> Show features»
Давайте загрузим набор данных, выбрав «Загрузить набор данных >> Редактор Unity».
Это создаст пакет Unity, содержащий отслеживаемую информацию об этой отслеживаемой базе данных.
Интеграция с Unity
Начнем с создания нового проекта Unity3D под названием «ARDemo».
Пришло время добавить несколько 3D моделей в наш проект. Давайте перейдем к «Окно >> Магазин активов». Здесь мы можем бесплатно найти модель самурая под названием «Красный самурай». Для загрузки и импорта этой модели нам потребуется войти в систему с нашей учетной записью Unity.
После импорта наша папка Assets будет выглядеть так:
Далее нам нужно добавить ARCamera на нашу сцену. «ARCamera» — это сборник камер дополненной реальности от Vuforia, который очень похож на обычную камеру. Мы можем найти это в «Assets >> Vuforia >> Prefabs» и перетащить его в нашу сцену в X = 0, Y = 0, Z = 0. Давайте также удалим основную камеру со сцены (ее можно найти на панели иерархии «Правый клик >> Удалить»), поскольку у нас уже есть ARCamera.
Чтобы запустить нашу ARCamera, нам нужно будет добавить лицензионный ключ приложения. На панели «Инспектор» нам нужно будет вставить уникальный ключ, который мы ранее получили от менеджера лицензий Vuforia.
В этот момент, если мы нажмем кнопку «Воспроизвести» в редакторе Unity, мы сможем увидеть наш веб-канал в представлении игры.
Далее, давайте перетащим нашего самурая на сцену. Его можно найти в разделе «Активы >> сборные >> самузай». Чтобы самураи появлялись над ImageTarget, его нужно сделать дочерним для ImageTarget (это можно сделать, просто перетащив префаб samuzai на панель «Иерархия»). Затем, всякий раз, когда ImageTarget обнаруживается камерой мобильного устройства, все дочерние объекты цели также отображаются вместе. Масштаб самузая необходимо изменить на X = 0,5, Y = 0,5, Z = 0,5.
Теперь нам нужно активировать набор данных Image_Targets. Это можно сделать, выбрав «ARCamera», и на панели «Инспектор» в разделе «Поведение загрузки набора данных (сценарий)» нам нужно выбрать «Загрузить набор данных Image_Targets», а затем «Активировать».
В этот момент, если мы выберем «Выполнить» и направим отпечаток изображения на нашу веб-камеру, мы должны увидеть самурая на нем и выполнить «Анимацию атаки», которая является его анимацией по умолчанию.
Мы почти закончили. Давайте сохраним сцену с именем «ARDemo».
Последний шаг — создание проекта для Android. Нам нужно перейти в «Файл >> Настройки сборки». Нам нужно добавить текущую сцену, выбрав «Добавить текущий». Затем нам нужно выбрать платформу (Android). Здесь у нас будет несколько вариантов:
Мы будем делать простую сборку следующим образом:
Прежде чем нажать кнопку «Построить», нам нужно внести еще некоторые изменения в «Настройки игрока» на панели «Инспектор». Здесь необходимо изменить название компании; например, в «SitePoint». Затем нам нужно изменить идентификатор пакета в «Других настройках», скажем, на «com.SitePoint.ARDemo».
Теперь мы можем перейти к «Построй и беги». Другие изменения, такие как минимальный уровень API и т. Д., Могут быть сделаны в соответствии с дополнительными требованиями. Нам потребуется подключить мобильное устройство Android через USB и включить отладку по USB.
Нам также потребуется настроить среду разработки Android, прежде чем мы сможем протестировать наши игры Unity на устройстве. Это включает в себя загрузку и установку Android SDK с различными платформами Android и добавление нашего физического устройства в нашу систему (это делается немного по-разному в зависимости от того, работаем ли мы под Windows или Mac).
Окончательный результат (Демо)
Наконец, забавная и волшебная часть!
Как только приложение будет создано и запущено на Android, мы сможем направить камеру мобильного устройства на маркер и посмотреть анимацию. Вот так выглядит анимация в моем Nexus 5.
Приложение AR будет работать даже с черно-белым изображением камней, потому что характерные точки останутся (они обычно зависят от других факторов, таких как градиент и т. Д., А не от цвета).
Вывод
Множество действительно классных вещей можно сделать с помощью Unity и Vuforia. В этом уроке мы сделали простое AR-приложение с анимацией без написания сценария! В следующем уроке мы добавим поддержку картона и некоторые другие интересные функции Vuforia в наше приложение.
Если вы делаете что-то классное из этого урока, или у вас есть какие-либо вопросы / отзывы, не стесняйтесь оставлять примечания в комментариях ниже!