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

Posted by

В предыдущей части мы рассмотрели, что из себя представляет Microsoft HoloLens, какие для него существуют приложения, и установили средства разработки. В этой и следующих частях мы создадим простое Holographic-приложение с использованием Unity 3D. 

Начало работы

Создайте проект Unity 3D.  Выберите название и директорию. Вид приложения — 3D:

!

Откроется главное окно Unity. Первым делом настроим проект для работы на HoloLens. Сохраняем сцену, для простоты назовём её Main.

!

Зайдите во вкладку File → Build Settings. Добавьте открытую сцену. В качестве целевой платформы укажите Windows Store и следующие настройки:

!

Обязательно выделяем Unity C# Projects.

!

В разделе Others в Player Settings выделяем две настройки: Use 16-bit depth buffer и Virtual Reality Supported. Последняя настройка автоматически добавит Windows Holographic SDK. Затем в разделе Publishing Settings в Capabilities необходимо выбрать Microphone, Internet Client и Spatial Perception. Зачем это нужно, вы узнаете позже.

Теперь перейдем к настройке графики (в меню: Edit → Project Setting → Quality). Выставляем по умолчанию Fastest. Данная опция рекомендуется, но не является финальной, и в дальнейшем вы можете экспериментировать с настройками. Для примера установим значение Texture Quality в Full Res.

!

Здесь же необходимо сразу прояснить требования к производительности для приложений HoloLens. Так как пользователь активно взаимодействует с окружающим пространством, обновления визуального отображения голограмм должны происходить с минимальной задержкой при максимально высоком качестве картинки. Также надо учесть, что на каждое приложение выделяется не более 900 МБ оперативной памяти. По-хорошему, необходимо достичь стандартных 60 кадров в секунду и поддерживать это состояние на всём жизненном цикле приложения. В противном случае значительно возрастает нагрузка на HPU и увеличивается расход энергии и температура. Это также отражается на качестве голограмм, которые начинают отображаться с задержкой, неправильно взаимодействовать друг с другом и с объектами реального мира, нарушая законы физики и здравого смысла. О способах повышения производительности вы узнаете в следующих статьях нашего цикла. Один из них — использование 16-битного буфера глубины, и соответствующую опцию мы как раз включали в Player Settings.

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

Настройте камеру (Camera main) для работы с HoloLens. То, что видит ваша камера — это то, что видит пользователь. А поскольку пользователь должен видеть реальный мир с добавлением голограмм, то и фон у камеры должен быть прозрачным. Чтобы задать его выберите камеру, в инспекторе поменяйте значение Clear Flag на Solid Color, а в Background задайте #00000000 (черный цвет со значением альфа-канала 0, или RGBA = (0,0,0,0)). Позицию и поворот камеры сбросьте в (0,0,0). Наконец, установите значение Near Clip Plane равным 0.85 для того, чтобы голограммы не рендерились слишком близко от пользователя.

Для удобства тестирования приложения в Unity добавьте скрипт SimpleCameraMover и прикрепите его к камере:

Теперь можно поворачивать и перемещать камеру — иными словами, имитировать движение пользователя.

Дополнительно необходимо скачать HoloToolkit — набор скриптов и компонентов, созданных для ускорения разработки под HoloLens. Далее копируем репозиторий с GitHub, и, следуя инструкциям, импортируем в Unity. В принципе, вы можете обойтись без него и писать все классы сами. В некоторых случаях это будет оправдано. Но всё же рекомендуем добавлять его во все ваши проекты, так как он значительно упрощает работу.

Напоследок, рекомендуем добавить в папку Assets/Editor скрипт для автоматической сборки проекта:

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

Всё готово к работе. Текущее состояние проекта можно сохранить отдельно и использовать как «заготовку» на будущее.

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

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *