Руководство. Совместное использование пространственных привязок между сеансами и устройствами

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

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

Animation showing spatial anchors that are created with a mobile device and used with a different device over the course of days.

Из этого руководства вы узнаете, как выполнять следующие задачи:

  • Развертывание в Azure веб-приложения ASP.NET Core, которое можно применять для совместного использования привязок и сохранения привязок в памяти в течение указанного периода времени.
  • Настройка сцены AzureSpatialAnchorsLocalSharedDemo в примере Unity из наших кратких руководств для использования преимуществ веб-приложения для совместного использования пространственных привязок.
  • Развертывание и запуск привязок на одном или нескольких устройствах.

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начинать работу.

Необходимые компоненты

Для работы с этим учебником необходимо следующее:

  • Знакомство со статьей Описание службы "Пространственные привязки Azure".
  • Прохождение одного из 5-минутных руководств.

    Примечание.

    Краткие руководства по Android/NDK и iOS/Swift сейчас не содержат сведения о возможностях, описанных в этом руководстве.

  • Базовое знание любого из следующих вариантов:
    • ARCore, если вы используете Android;
    • ARKit, если вы используете iOS.
  • Компьютер Windows с Visual Studio 2019 или более поздней версии с рабочей нагрузкой ASP.NET и разработка веб-приложений.
  • Пакет SDK для .NET Core 3.1.
  • Одно или несколько следующих устройств, на которых необходимо развернуть и запустить приложение: HoloLens, HoloLens 2, iOS или Android.

Примечание.

В этом учебнике описано, как использовать Unity и веб-приложение ASP.NET Core, однако описанный здесь подход — это лишь пример того, как можно совместно использовать идентификаторы Пространственных привязок Azure на других устройствах. Вы можете использовать другие языки и серверные технологии в тех же целях.

Создание ресурса Пространственных привязок

Переход на портал Azure.

В области слева выберите Создать ресурс.

Выполните поиск по запросу Пространственные привязки с помощью поля поиска.

Screenshot showing the results of a search for Spatial Anchors.

Выберите Пространственные привязки, а затем щелкните Создать.

В области Учетная запись Пространственных привязок выполните следующие действия.

  • Введите уникальное имя ресурса, используя обычные буквенно-цифровые символы.

  • Выберите подписку, к которой нужно присоединить ресурс.

  • Создайте группу ресурсов, нажав Создать. Назовите ее myResourceGroup и нажмите ОК.

    Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (например, веб-приложений, баз данных и учетных записей хранения) и управление ими. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.

  • Выберите расположение (регион), в котором будет размещен ресурс.

  • Выберите Создать, чтобы начать создание ресурса.

Screenshot of the Spatial Anchors pane for creating a resource.

После создания ресурса на портале Azure отобразится оповещение о завершении развертывания.

Screenshot showing that the resource deployment is complete.

Выберите Перейти к ресурсу. Теперь можно просмотреть свойства ресурса.

Скопируйте значение идентификатора учетной записи ресурса в текстовый редактор для дальнейшего использования.

Screenshot of the resource properties pane.

Скопируйте также значение домена учетной записи ресурса в текстовый редактор для дальнейшего использования.

Screenshot showing the resource's account domain value.

В разделе Параметры выберите элемент Ключ доступа. Скопируйте значение первичного ключа (ключа учетной записи) в текстовый редактор для дальнейшего использования.

Screenshot of the Keys pane for the account.

Скачивание примера проекта и пакета SDK для импорта

Клонирование репозитория примеров

Клонируйте репозиторий примеров, выполнив следующие команды:

git clone https://github.com/Azure/azure-spatial-anchors-samples.git
cd ./azure-spatial-anchors-samples

Импорт пакета SDK ASA

Следуйте приведенным здесь инструкциям, чтобы скачать и импортировать пакеты SDK для ASA, необходимые для платформы HoloLens.

Развертывание службы совместного использования привязок

Примечание.

В этом руководстве мы будем использовать бесплатный уровень службы приложение Azure. Уровень "Бесплатный" истекает через 20 минут бездействия и сбросит кэш памяти.

Откройте Visual Studio, а затем откройте проект в папке Sharing\SharingServiceSample.

Запуск мастера публикации

В Обозреватель решений щелкните правой кнопкой мыши проект ShareService и выберите "Опубликовать...".

Запустится мастер публикации.

  1. Выберите "Целевой объект Azure>Далее".
  2. Выберите конкретную целевую службу приложение Azure (Windows)>Далее
  3. Войдите на портал Azure.
  4. Выберите зеленый "+" для создания службы приложение Azure

Параметры службы приложений

Параметр Предлагаемое значение Описание:
Имя. myASASharingService Присвойте службе уникальное имя
Название подписки Выберите предпочитаемую подписку Azure
Группа ресурсов myResourceGroup или выберите существующую. Группа ресурсов — это логический контейнер, в котором происходит развертывание ресурсов Azure (например, веб-приложений, баз данных и учетных записей хранения) и управление ими. Например, в дальнейшем можно удалить всю группу ресурсов при помощи одного простого действия.
План размещения Выберите "Создать" и см. таблицу ниже План службы приложений указывает расположение, размер и функции фермы веб-серверов, в которой размещается приложение. Вы можете сэкономить деньги при размещении нескольких приложений, настроив веб-приложения для совместного использования одного плана Служба приложений plan.Служба приложений определить:
  • регион (например, Северная Европа, восточная часть США или Юго-Восточная Азия);
  • Размер экземпляра (небольшой, средний, крупный)
  • Число экземпляров при масштабировании (от 1 до 20)
  • SKU ("Бесплатный", "Общий", "Базовый", "Стандартный" или "Премиум").

Параметры плана размещения

Параметр Предлагаемое значение Description
План размещения MySharingServicePlan Присвойте плану размещения уникальное имя
Местонахождение Западная часть США Центр обработки данных, где размещается веб-приложение. Выберите расположение, ближайшее к физическому расположению приложения, будет использоваться
Размер Бесплатно Ценовая категория, которая определяет возможности размещения
  1. Выберите "Создать", чтобы создать Служба приложений
  2. После создания службы приложений выберите ее в списке "Экземпляры службы приложений" и нажмите кнопку "Готово"
  3. На вкладке "Общий доступ" выберите "Опубликовать"

После публикации веб-приложения ASP.NET Core в Azure можно перейти https://<your_app_name>.azurewebsites.net или щелкнуть ссылку рядом с сайтом: на вкладке "ShareService: публикация". Скопируйте этот URL-адрес в текстовый редактор для последующего использования.

Screenshot of a published ASP.NET web app in Azure.

Настройка и развертывание примера приложения

Открытие проекта

В Unity откройте проект в папке Unity. Unity может уведомить вас о разнице между версией в проекте и версией, установленной на компьютере. Это предупреждение допустимо, если версия Unity Editor новее, чем та, с помощью которой создан проект. В таком случае выберите Continue (Продолжить). Если ваша версия старше, чем требуется проекту, щелкните Quit (Выйти) и обновите Unity Editor.

Screenshot of the Unity pane.

Настройка Параметры сборки

Откройте Build Settings (Параметры сборки), выбрав пункты File>Build Settings (Файл > Параметры сборки).

В разделе Platform (Платформа) выберите Universal Windows Platform (Универсальная платформа Windows). Измените целевое устройство на HoloLens.

Выберите Switch Platform (Изменить платформу), чтобы изменить значение на Universal Windows Platform (Универсальная платформа Windows). Если отсутствуют какие-то дополнительные компоненты UWP, Unity может запросить их установку.

Screenshot of the Unity Build Settings pane - HoloLens

Закройте окно Build Settings (Параметры сборки).

Настройка сведений об учетной записи

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

В области Проект перейдите к Assets\AzureSpatialAnchors.SDK\Resources.

Выберите SpatialAnchorConfig. В области Инспектор введите Account Key в качестве значения ключа учетной записи Пространственных привязок, Account ID в качестве значения идентификатора учетной записи Пространственных привязок и Account Domain в качестве значения домена учетной записи Пространственных привязок.

Откройте сцену с именем AzureSpatialAnchorsLocalSharedDemo , найдя ее Assets/AzureSpatialAnchors.Examples/Scenes/AzureSpatialAnchorsLocalSharedDemo , дважды щелкнув ее на панели проекта

На панели "Проект" перейдите в раздел Assets\AzureSpatialAnchors.Examples\Resources.

Выберите SpatialAnchorSamplesConfig. Затем в области Inspector (Инспектор) введите URL-адрес Sharing Anchors Service (из развертывания веб-приложения ASP.NET в Azure) в качестве значения для Base Sharing Url. Добавьте URL-адрес с /swagger/api/anchorsпомощью . Результат будет выглядеть так: https://<your_app_name>.azurewebsites.net/swagger/api/anchors.

Сохраните сцену, выбрав File>Save (Файл > Сохранить).

Экспорт и развертывание приложения HoloLens

Откройте Build Settings (Параметры сборки), выбрав пункты File>Build Settings (Файл > Параметры сборки).

В разделе Scenes In Build (Сцены в сборке) убедитесь, что возле всех сцен установлен флажок.

Выберите Build (Сборка). В диалоговом окне выберите папку для экспорта проекта HoloLens в Visual Studio.

После завершения экспорта появится папка, содержащая экспортированный проект HoloLens.

Чтобы открыть проект в Visual Studio, дважды щелкните HelloAR U3D.sln в папке.

Укажите для параметра Solution Configuration (Конфигурация решения) значение Release (Выпуск), а для параметра Solution Platform (Платформа решения) значение x86 и выберите Device (Устройство) в списке целевых вариантов развертывания.

При использовании HoloLens 2 платформой решения будет ARM64, а не x86.

Visual Studio configuration

Включите устройство HoloLens, войдите и подключите его к компьютеру с помощью USB-кабеля.

Выберите Debug>Start debugging (Отладка > Начать отладку), чтобы развернуть приложение и запустить отладку.

Запуск приложения

В приложении выберите LocalSharedDemo со стрелками, а затем нажмите кнопку Go! для запуска демонстрации. Следуйте инструкциям для размещения и отзыва привязки.

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

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

Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.

В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.

Следующие шаги

Из этого учебника вы узнали, как развернуть веб-приложение ASP.NET Core в Azure, а затем настроить и развернуть приложение Unity. Вы знаете, как создать в приложении пространственные привязки и предоставить к ним доступ другим устройствам с помощью веб-приложения ASP.NET Core.

Вы можете улучшить веб-приложение ASP.NET Core, чтобы оно использовало Azure Cosmos DB для хранения хранилища общих идентификаторов пространственных привязок. Добавив поддержку Azure Cosmos DB, вы можете создать привязку в веб-приложении ASP.NET Core уже сегодня. Затем, благодаря идентификатору привязки, хранящемуся в веб-приложении, вы может вернуться к приложению через несколько дней и найти привязку снова.