Как разрабатывать приложения смешанной реальности для Microsoft HoloLens: сборка и тестирование

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

Общие советы по тестированию

Принципиально тестирование голографических приложений мало чем отличается от тестирования обычных приложений: вам нужно всё проверить до мельчайших деталей, чтобы всё работало как надо, чтобы нигде не падала производительность, не было графических артефактов, чтобы были правильные данные и т.д. Ввиду особенностей приложений смешанной реальности вам придется запускать его в разных помещениях, при разном уровне освещения, смотреть на голограммы под разным углом и на разных расстояниях. И не забывайте, что чем раньше вы достигнете производительности 60 кадров в секунду, тем лучше (вспоминаем ч. 3).

Тестирование в Unity

Первым делом работоспособность приложения необходимо проверить в Unity. Нажимаем на Play, смотрим, ходим. Для имитации нажатий можно использовать следующий код в Update методе GestureTest:

То же самое можно использовать для имитации голосовых команд, если у вас на компьютере не работает микрофон.
Стандартные утилиты Unity, такие как FrameDebugger и Profiler, тоже могут быть очень полезны:

Проблема в том, что Unity не отображает в полной мере все недостатки приложения, особенно те, которые связаны с производительностью. Если в Unity ваше приложение выдаёт стабильные 60 кадров в секунду, то не факт, что те же 60 кадров вы увидите на устройстве.

Для того, чтобы протестировать приложение на эмуляторе, вам необходимо собрать Solution Visual Studio. Воспользуемся скриптом, созданным в части 2.

По завершении процесса сборки, если всё прошло хорошо и в консоли нет ошибок, откроется директория, содержащая Solution Visual Studio. Запустите проект, вы должны увидеть следующее:

Эмулятор

Первым делом попробуем загрузить приложение на эмулятор. Чтобы сделать возможным запуск эмулятора, вам необходимо активировать Hyper-V (панель управления → программы и компоненты → включить или отключить компоненты Windows). Напоминаю, что Hyper-V не работает на Windows 10 Home. Также не забудьте включить режим разработчика в настройках.

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

Обязательно ставим Release, т.к. под другими конфигурациями эмулятор на данный момент не работает. Установим BreakPoint в классе VoiceTest. Однако, когда вы произнесёте «», ничего не произойдет. Чтобы это исправить, уберите у каждого проекта оптимизацию кода (ПКМ → PropertiesBuild). Запуск выполнять через F5 (Start Debugging). Высветится окно «You do not have permission to run the emulator«, ставим галочку «Join the Hyper-V Administration Group«, жмём Retry:

После чего вы наконец-то сможете увидеть окно эмулятора:

Что есть что в эмуляторе:

 

Закрыть Окно эмулятора, завершить отладку

Свернуть Окно

Переключится на эмуляцию человеческого ввода (см. ниже)

Прямое управление с клавиатуры и мыши

Развернуть на максимум

Увеличить/уменьшить размер окна

Справка

Device Portal (см. ниже)

Дополнительные инструменты

Основное назначение элементов, думаем, вам ясно. Единственное, что нуждается в пояснении – это эмуляция ввода. При нажатии на иконку человека, в приложении вы сможете:

  1. Перемещаться вперёд-назад-влево-вправо, используя клавиши W, S, A, D соответственно.
  2. Управлять взглядом, зажав ПКМ и двигая мышью, или используя стрелки на клавиатуре.
  3. Выполнить AirTap, нажав ПКМ.
  4. Выполнить Navigation или Manipulation, зажав ПКМ.
  5. Выполнить Bloom, нажав на клавишу F2.

Дополнительные инструменты высвечиваются при нажатии на соответствующую клавишу:

Всего нам доступно 5 вкладок:

  1. Simulation. Показывает координаты положения человека в виртуальном пространстве, угол поворота головы, нажатие AirTap.
  2. Room – позволяет загрузить комнату в эмулятор. Можно выбрать либо готовые (всего доступно 5 вариантов), либо создать модель своей комнаты через Device Portal.
  3. Account – ввести данные учётной записи Microsoft.
  4. Network – параметры адаптеров.
  5. Optional Settings – дополнительные настройки, например, включить/отключить ускорение графики.

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

Дополнительными средствами отладки в эмуляторе являются Performance Profiler и Graphic Debugger. Первое позволит получить детальный анализ производительности, время вызова методов, графики нагрузки на CPU и GPU. Graphic Debugger позволяет покадрово рассмотреть отрисовку графических объектов.

Запуск на устройстве

Работать с устройством можно либо через USB (в таком случае, выбираем в качестве target-платформы Device), либо через Wi-Fi, если вы подключены к одной сети. Обязательно нужно активировать режим разработчика на Hololens. Для этого выполните Bloom, зайдите в настройки, закрепите окно, зайдите в раздел UpdateFor Developers. В том же разделе, если вы пролистаете ниже, можно включить Device Portal. Сделайте это сразу.

При первом запуске через Visual Studio или Device Portal вам потребуется PIN, который генерируется автоматически на устройстве. Просто надевайте очки, заходите в настройки UpdatePair Device, запомните PIN и введите его в появившемся на ПК окне.

Всё готово к работе. Осталось только ввести адрес устройства:

  1. Для запуска через USB — http://127.0.0.1:10080.
  2. Для запуска через Wi-Fi вам необходимо знать адрес устройства. Посмотрите в настройках Network & Internet, или, надев очки, спросите у Кортаны («Hey Cortana! What’s my IP-address?»). Адрес выглядит примерно так: https://192.168.88.212.

Эти же IP-адреса будут использоваться для входа в Device Portal.

Device Portal

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

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

Как видно на скриншоте, в Device Portal находится 13 вкладок (слева), которые позволяют получить подробную информацию о производительности, состоянии сети, файловой системы и т.д. А также статус устройства, уровень заряда, температуру и кнопки управления загрузкой (правый верхний угол). В рамках статьи мы не будем рассматривать их все подробно, расскажу о самом интересном.

Первое — это загрузка приложений. Если у вас по каким-либо причинам не получается загрузить приложение через Visual Studio, то это всегда можно сделать через Device Portal. Соберите App package вашего приложения. Для этого, в Visual Studio, выберите в Solution Explorer startup project (название жирным шрифтом), ПКМ -> StoreCreate App Package. В первом окне «Create your package» вам предложат создать Package для загрузки в Store, выбираем ответ No. В следующем, Select and configure packages, укажите следующие настройки:

Версия и директория могут быть любыми. По завершении процесса сбора, если всё прошло хорошо и высветилось сообщение «Package Creation Completed«, зайдите в Device portal, в раздел Apps, загрузите ppxbundle и 2 appx файла:

Нажимаем Go, ищем в списке приложений наше. Как только нашли, выполняем запуск. Теперь мы можем:

    1. Посмотреть производительность во вкладке System Performance:

      1. Во вкладке Mixed Reality Capture сделать скриншот или посмотреть глазами пользователя:

        1. Отслеживать положение в пространстве и выполнить SpatialMapping комнаты, которую потом можно загрузить в Unity (вспоминаем ч. 4). Для лучшего результата придётся несколько раз пройтись по комнате, каждый раз обновляя результат. Впоследствии полученный Mesh комнаты можно экспортировать как файл с расширением *.obj.

        Заключение

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


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

        Для справки: HoloGroup является одним из первых разработчиков для HoloLens в России и 1 сентября 2016 года выпустила первое русскоязычное приложение HoloStudy.