[Из песочницы] Первый код под HoloLens
Признаться, я не был удивлен почти полному отсутствию статей по данной тематике. Так уж сложилось — людей, которые имели возможность поработать с HoloLens, едва ли наберется десяток на всю страну. Тем не менее, в рамках Imagine Cup в Редмонде, принять участие в котором мне довелось, был проведен один из первых тест-драйвов средств разработки данной платформы.
HoloLens overview
HoloLens — всерьез засекреченный проект Microsoft, который был начат аж в 2012 году. С тех пор компании удалось разработать прототип, который был представлен прессе в январе этого года. С достаточно сносным обзором можно ознакомиться, к примеру, здесь.
Я опишу это конструктивно, с точки зрения девелопера. Итак, девайс HoloLens — это достаточно крупные, удобно фиксирующиеся на голове затемненные очки. Хотя, учитывая способ крепежа, кому-то может быть естественней охарактеризовать его как шлем. Никаких особых датчиков на первых порах заметить мне не удалось: ни явно выраженных камер, микрофонов и даже наушников. Он достаточно удобен и легко настраивается с учетом индивидуального PD (расстояние между зрачками).
Мой стек технологий при работе с данным устройством включал, помимо самой платформы HoloLens, также Unity 3D и Windows Store application. Что-то мне подсказывает, что использование Unity в привязке к универсальным приложениям на связанных платформах (от Windows Phone до XBox) будет наиболее популярным и производительным комплексом и в дальнейшем.
Функционал
Поработать с HoloLens удалось продуктивно — охватили существенное число доступного функционала. Виртуальные дополнения действительности выглядят впечатляюще, они отлично представлены в официальном ролике.
Это и правда впечатляет. Не думаю, что следует что-то здесь дополнять. Лучше я расскажу про то, чего в этом ролике нет.
Привыкнув к основным жестам, которыми на видео выполнялись действия по добавлению, выделению и перемещению предметов, были опробованы первые голосовые команды. Они работают достаточно точно и основаны (кто бы удивился) на движке Cortana. Для HoloLens работа голосом разрабатываются той же командой. Напомню, Cortana резко увеличивает количество поддерживаемых локализаций и уже к концу года покроет все наиболее популярные языки. Увы, кроме русского. Что ж, будем ждать.
Угол зрения
Далее участники тест-драйва погрузились в первый намек на магию данного девайса. С помощью платформы HoloLens программа может знать, куда смотрит пользователь. Пример этого вы можете увидеть на презентации HoloLens на конференции Build здесь:
Это очень интересно и позволяет быстро, удобно и, главное, интуитивно понятно выполнять необходимые действия по вызову команд, относящихся к каким-либо конкретным областям обзора. Это крайне важно для четкой виртуализации происходящего. Рассмотрим пример на абстрактной игре, в которой рыцарь встречается с драконом. Вы можете непосредственно задать алгоритм действий, как продемонстрировать голограмму чудища перед носом у героя (изобразить целого дракона на заданном расстоянии или лишь его злобный оскал). Если же коварный противник находится позади спасителя — можно добавить рычание, приправленное огненным пламенем под нужным углом «из-за спины», рассчитав при этом все необходимые параметры (громкость, расстояние — что душе угодно).
Это очень удобно делается средствами указанных мной платформ. Все прекрасно и удивительно! С помощью описанных возможностей уже сейчас можно биться с драконами в играх, производить наглядные учебные пособия, помогать, скажем, в расследовании преступлений и поисках улик, и, и, и… Но, опережая ваши вопросы, в реальности не все из этого сейчас реализуемо. Конкретная реализация очень точно следит за малейшим изменением в положении головы пользователя, но никак не привязана к зрачку.
В реальной жизни этого и правда может быть достаточно, ибо мы интуитивно поворачиваем не только зрачок, но и голову, изменяя угол зрения. Правда деятельность, основанная на поиске мелких деталей, в нынешней реализации данной платформы весьма ограничена. К сожалению, мне на данный момент ничего не известно касаемо будущего обработки взгляда пользователя. Хотя примеры получения информации о непосредственной точке взора человека уже есть и активно применяются в дизайне и тестировании мобильных приложений в крупнейших IT-компаниях. Они основываются на положении зрачка, а не только головы. Так что я верю, что данное уточнение в том или ином виде обязательно будет внесено.
И иже с ними
На тест-драйве мы уже успели опробовать готовые сущности и библиотеки. Например, голограмма взрыва (совокупность звука и изображения), анимации физических процессов (мячик катится) и даже преисподней (второй мир со своими законами гравитации и контентом).
Из прочих интересностей не могу не заметить совершенно поразившая меня работа со звуком на данном устройстве. Надев очки, ты идеально четко слышишь все происходящее в рамках устройства, при этом не выпадая и из звуков реальной жизни. Твои уши по-прежнему свободны от каких-либо устройств. Нет вероятности, что наушник-проказник все же выпадет при неудачном или резком движении. Магия же при этом заключается в практически полной неслышности происходящего для внешнего мира. Ты никому не мешаешь, тебя никто не подслушивает. Не очень понял, как это им удалось, но звук этих очков можно назвать практически индивидуальным. Чудо! Звук достоин высочайших оценок! Вот, что заставит меня бегать по утрам.
Как итог, HoloLens выглядит вполне жизнеспособным, учитывая серьезные успехи в визуализации, звуке и интегрированности с почти любыми устройствами средствами Windows 10. Есть детали, которые необходимо допилить — это касается как параметров самого устройства, так и средств разработчика. Тем не менее, я с большим интересом буду наблюдать за развитием этого устройства. Учитывая, что в финале Imagine Cup одним из судей был создатель HoloLens Alex Kipman, можно заметить прослеживающиеся тренды этого года.
Футуризм
Здесь мы приходим к вопросу идеологическому, который у меня остался после работы с данным устройством. Я был весьма впечатлен и переваривал тысячи затей, которые можно осуществить с помощью. Но огорошил меня лишь ответ на вопрос синхронизации одного мира на несколько устройств. Он был предельно короток, но не совсем ясен — нет.
В ближайшем будущем это не предусмотрено. Вы можете смотреть на копии одного и того же мира, но не делить его с кем-либо. Это чисто индивидуальное устройство, которое позволяет человеку настроить действительность под себя. Признаться, лично у меня это вызвало (возможно, излишне консервативное) беспокойство. В голове всплыли десятки примеров фантастического жанра, в которых будущее представлялось сильно индивидуализированным. Возможно, на уровне конкретных приложений это будет решаться по примеру сетевых игр — покажет время. Но однозначно, что ближайшее будущее нас ждет весьма занятное. Да не переведётся гик на Руси.
Спасибо!