Как разрабатывать приложения смешанной реальности для Microsoft HoloLens: создание проекта Unity 3D
4К открытий4К показов
В предыдущей части мы рассмотрели, что из себя представляет 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.
4К открытий4К показов