close

Вход

Забыли?

вход по аккаунту

?

ValyaevGertsev

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное
образовательное учреждение высшего образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
СИСТЕМЫ ВИРТУАЛЬНОЙ
И ДОПОЛНЕННОЙ РЕАЛЬНОСТИ
Лабораторный практикум
Под редакцией кандидата технических наук,
доцента А. В. Никитина
Санкт-Петербург
2017
УДК 004
ББК 32.81
C40
Рецензенты:
кандидат технических наук, доцент В. И. Исаков
Утверждено
редакционно-издательским советом университета
в качестве лабораторного практикума
Валяев, Д. В. C40 Системы виртуальной и дополненной реальности: лабораторный практикум/ Д. В. Валяев, А. А. Герцев, О. Н. Максимова, А. С. Топчий; под ред. А. В. Никитина. – СПб.: ГУАП,
2017.– 97 с.
Приведен цикл лабораторных работ по изучению различных устройств виртуальной и дополненной реальности – даны их общие
описания, порядок подключения и настройки, примеры работы
с приложениями, интеграция с инструментом для разработки двухи трёхмерных приложений и игр Unity 3D.
Предназначен для студентов направления 09.04.01 «Информатика и вычислительная техника», изучающих дисциплины магистерской программы «Системы мультимедиа и компьютерная графика».
УДК 004
ББК 32.81
© Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2017
ВВЕДЕНИЕ
Практические занятия по работе с гарнитурой GearVR, а также
со шлемами виртуальной реальности Oculus Rift CV1 и HTC Vive
подготовили О.Н. Максимова, А.С. Топчий, А.А. Герцев, Д.В. Валяев.
Практические занятия по работе с очками дополненной реальности Microsoft HoloLens подготовил Д.В. Валяев.
Общая редакция практикума выполнена доцентом, кандидатом
технических наук А. В. Никитиным.
Автор рисунка на обложке – А. В. Герцев.
Лабораторный практикум предполагает владение базовыми
навыками разработки в Unity 3D, а также программирования на
языке C#.
3
Практическое занятие № 1
ИЗУЧЕНИЕ УСТРОЙСТВА ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ
SAMSUNG GEAR VR
Цель работы: Изучение возможностей устройства виртуальной
реальности Samsung Gear VR. Получение практических навыков
работы с Samsung Gear VR и контроллером Moga Pro.
План выполнения
1. Установка приложения.
2. Настройка Samsung Gear VR.
3. Знакомство с демонстрационными приложениями.
4. Подключение контроллера Moga Pro.
5. Тестирование бесплатного приложения из магазина с использованием Samsung Gear VR и Moga Pro.
Техника безопасности
Перед использованием Gear VR необходимо убедиться, что
в окружающем вас пространстве нет никаких объектов, о которые
вы можете споткнуться или опрокинуть их. Также избегайте использования шлема возле открытых окон. Не разбирайте шлем, не
подвергайте его воздействию жидкости и избегайте попадания прямых солнечных лучей на линзы.
Если во время использования шлема возникают нарушения зрительного восприятия, тошнота, дезориентация, головокружение,
ощущение дискомфорта или боли в голове или глазах, немедленно
прекратите использование шлема.
Побочные эффекты посещения виртуальной реальности могут
быть длительными и проявляться через несколько часов после
использования шлема Gear VR. Такие побочные эффекты могут
включать в себя указанные выше симптомы, а также повышенную
утомляемость и снижение способности восприятия нескольких источников информации.Они могут подвергнуть Вас повышенному
риску получения травм в реальном мире.
Помните, что объекты, которые Вы видите в виртуальной реальности, на самом деле не существуют, поэтому не садитесь и не опирайтесь на них.
Основные сведения
Samsung Gear VR – шлем виртуальной реальности, разработанный компанией Samsung в сотрудничестве с Oculus VR. Впервые
устройство было представлено 3 сентября 2014 года на выставке
4
IFA 2014. В отличие от Oculus Rift, Gear VR полностью автономен и
не требует подключения к ПК [1].
Gear VR не имеет собственного дисплея и работает в связке со
смартфоном Samsung Galaxy. Устройство позволяет закрепить
смартфон на голове перед глазами. Оно снабжено линзами, регулятором фокусировки, сенсорной панелью управления, регулятором громкости, а также оснащено дополнительными датчиками
наклона головы, что увеличивает точность позиционирования и
уменьшает время задержки изображения. Источником звука также является смартфон. Соединение очков со смартфоном осуществляется посредством microUSB. Вид устройства без подключенного
смартфона показан на рис. 1.1.
Для выполнения лабораторной работы понадобятся учётные
данные Google-аккаунта и Oculus-аккаунта лаборатории. Для их
получения обратитесь к преподавателю.
Технические сведения
Угол обзора: 96 градусов.
Вес: 318 грамм (без смартфона).
Разрешение экрана: 2560x1440p (1280x1440 на каждый глаз).
Технические требования
Samsung Gear VR совместим со смартфонами Samsung семейства Galaxy: Galaxy Note5, S6 edge+, S6, S6 edge, S7, S7 edge.
Рис. 1.1. Внутреннее устройство
(линзы, слот для смартфона) GearVR
5
Описание комплекта поставки
Шлем Gear VR.
Ремешки для закрепления Gear VR на голове.
Руководство по эксплуатации.
Порядок выполнения практической работы
Включение и настройка Gear VR
Перед началом работы с Gear VR настоятельно рекомендуется
ознакомиться с инструкцией и мерами предосторожности, чтобы
избежать порчи устройства и получения травм, так как имеются
противопоказания к его применению.
Далее необходимо собрать устройство, следуя инструкции (присоединить к корпусу очков ремни). После этого снять защитную
крышку, подключить смартфон к Gear VR через USB разъём шлема.
Расположение разъёма показано на рис. 1.2. После этого необходимо
дождаться звукового сигнала, означающего начало процесса установки приложения. Для его завершения необходимо отсоединить
смартфон от устройства и следовать указаниям установщика. Подключённый к шлему смартфон изображен на рис. 1.3.
Рис. 1.2. Micro-USB для подключение смартфона,
встроенный в крепление
Рис. 1.3. Соединение смартфона с Gear VR
6
Регулировка
положения линз
Кнопка возврата
Сенсорная панель
Рис. 1.4. Элементы управления Gear VR
Примечание: для установки приложения необходимо соединение с Интернетом.
Установленное приложение при запуске требует создания аккаунта и указания PIN-кода. Для их получения обратитесь к преподавателю или заведующему лабораторией.
После установки приложения и завершения всех настроек появится приглашение войти в виртуальную реальность. Для этого
нужно подсоединить смартфон к Gear VR и надеть его. С первого
раза может не получиться, тогда нужно отключить смартфон, перезапустить приложение и выполнить повторное подключение его
к устройству.
Если приложение виртуальной реальности запустилось, оно попросит выполнить несколько обучающих упражнений. Перемещение
и взаимодействие с виртуальными объектами в виртуальной реальности осуществляется при помощи расположенных на корпусе справа
джойстика и кнопки возврата. Удержание кнопки возврата выводит
главное меню. Расположение кнопок показано на рис. 1.4.
Подключение контроллера Moga Pro
Внешний вид контроллера и элементы управления представлены на рис. 1.5.
Для подключения используется официальное приложение
MOGA Pivot (доступно в Google Play) [2]. Необходимо указать модель контроллера, режим подключения и следовать инструкциям
приложения.
7
Левый
аналоговый
джойстик
Кнопка
Select
D-pac
Кнопка
Power A
Правый
триггер
Кнопка Start
Кнопка действий
LED
индикатор
заряда
Боковые
кнопки
Правый
аналоговый
джойстик
Левый
триггер
Крепление для
смартфона
A / OFF / B
управление
питанием
USB-порт
для зарядки
Рис. 1.5. Элементы управления Moga Pro [3]
У Moga Pro есть два режима работы: A, предназначенный для
подключения к приложениям, полностью поддерживающим контроллер, и B, имитирующий аппаратный ввод и предназначенный
для всех прочих приложений.
Поскольку приложение для подключения к Gear VR не поддерживает контроллер полностью, для работы с ним необходимо использовать режим B.
Пример приложения из магазина
Игра Herobound Gladiators. (рис. 1.6).
Рис. 1.6. Скриншот из игры Herobound Gladiators
8
В этом приложении игрок, являясь частью отряда из четырёх
человек, должен бороться с большим количеством нападающих неигровых персонажей. Пользователь управляет поведением своего
персонажа с помощью контроллера Moga. Персонаж может перемещаться по арене и ему доступны несколько видов оружия. Наблюдение за действиями персонажей осуществляется при помощи
камеры, расположенной над ареной.
Основной недостаток данной игры – предметы становятся размытыми при удалении от игрока, так как разрешения экрана телефона не хватает для отрисовки мелких объектов на таком расстоянии. Поэтому, если персонаж игрока уйдет на дальний край арены,
становится сложно понять, что с ним происходит.
Контрольные вопросы
1. В чём преимущества и недостатки использования смартфона
в качестве средства погружения в виртуальную реальность?
2. Запустите Herobound Gladiators на смартфоне. Поиграйте несколько минут. Затем подключите смартфон к Gear VR и проделайте это ещё раз. Какие преимущества и недостатки у каждого из этих
режимов игры?
3. Подключите смартфон к Gear VR и проведите пару минут в виртуальной реальности. Затем снимите защитную крышку шлема и
проделайте это еще раз. Какие изменения вы можете наблюдать?
4. В чем различия между режимами работы А и В контроллера
MOGA?
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Характеристики используемого смартфона.
4. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
5. Результаты работы.
6. Выводы по результатам работы.
Список рекомендованной литературы
1. Очки виртуальной реальности Gear VR | SM-R322NZWASER |
Samsung RU – Samsung, 2016 [Электронный ресурс]. URL: http://
www.samsung.com/ru/wearables/gear-vr-r323/ (дата обращения:
25.05.2017).
9
2. Reddit, reddit Inc, 2016 [Электронный ресурс]. URL:https://
www.reddit.com/r/AndroidGaming/comments/1tz0fl/mogadrastic_
help_please/ (дата обращения: 25.05.2017).
3. MOGA PRO геймпад для Android – Mogapro.ru, 2014 [Электронный ресурс]. http://www.mogaanywhere.com/controllers/
moga-pro-controller/ (дата обращения: 25.05.2017).
4. Руководство пользователя SM-R322 | Samsung Electronics, 2015
[Элек­тронный ресурс]. URL: http://img.mvideo.ru/ins/50044255.pdf
(дата обращения: 25.05.2017).
10
Практическое занятие № 2
ИЗУЧЕНИЕ ШЛЕМА ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ OCULUS RIFT
Цель работы: Изучение возможностей и получение практических навыков установки, настройки и использования шлема виртуальной реальности Oculus Rift CV1.
План выполнения
1. Установка приложения Oculus App (если оно не установлено).
2. Подключение пульта дистанционного управления и контроллера X-Box.
3. Подключение и настройка сенсора.
4. Подключение шлема (Rift).
5. Знакомство с демонстрационными приложениями.
Техника безопасности
Перед началом работы нужно убедиться, что поблизости отсутствуют травмоопасные предметы. Для работы необходимо
минимум два человека. Один непосредственно использует Oculus
Rift, второй следит, чтобы первый случайно не пострадал от неожиданного контакта с реальностью, в частности, чтобы он не
запутался в проводе и не наткнулся на находящиеся поблизости
предметы.
Кроме того, следует учитывать, что в процессе использования
Oculus Rift есть риск укачивания: чтобы уменьшить вероятность
его возникновения, следует избегать резких движений. При плохо
отрегулированном шлеме могут начать болеть глаза. Кроме того,
при первом использовании навигации при помощи геймпада есть
риск возникновения головокружения.
Основные сведения об Oculus Rift CV1
Oculus Rift – очки виртуальной реальности, созданные компанией Oculus VR. CV1 означает «Consumer version 1» – «Пользовательская версия 1» [1].
Для выполнения практической работы требуется аккаунт
Oculus. Для получения учётных данных аккаунта лаборатории обратитесь к преподавателю.
Технические сведения
Oculus Rift CV1 имеет OLED дисплей с разрешением 1080×1200
пикселей на каждый глаз, с частотой обновления 90 Гц [2] и углом
11
обзора 110°. В комплекте поставляется контроллер Xbox One и отсоединяемые наушники.
Датчики: гироскоп, акселерометр, магнитометр, инфракрасные
датчики. Вес очков – 470г.
Технические требования
Oculus Rift CV1 рекомендуется подключать к компьютеру, удовлетворяющему следующим минимальным требованиям:
– Видеократа: NVIDIA GTX 1050Ti / AMD Radeon RX 470 или
лучше. Также можно использовать NVIDIA GTX 960 / AMD Radeon
R9 290 или лучше.
– Процессор: Intel i3-6100 / AMD FX4350 или лучше.
– Оперативная память: 8 ГБ или больше.
– Видео вывод: совместимый с HDMI 1.3
– Разъёмы USB: 2x USB 3.0 и 1x USB 2.0
– Операционная система: Windows 8.1 или новее.
Описание комплекта поставки
В комплект Oculus Rift (рис. 2.1 и 2.2) входят:
– Шлем виртуальной реальности.
– Сенсор для определения положения шлема в пространстве.
– Пульт дистанционного управления приложениями.
– Беспроводной контроллер от XBox One.
Пульт ДУ
Шлем
Сенсор
Рис. 2.1. Содержимое коробки
12
Рис. 2.2. Отделение с контроллером
– USB-ресивер для беспроводного контроллера от XBox One.
– USB-удлиннитель.
– Тряпочка для ухода за линзами.
Порядок выполнения практической работы
Перед тем, как перейти к установке и настройке Oculus Rift, необходимо организовать рабочую зону: желательно, чтобы вокруг
пользователя было около метра свободного пространства, где он
сможет свободно перемещаться, не рискуя получить травму.
Для настройки Rift нужно установить Oculus App, убедившись,
что компьютер соответствует требованиям. Возможно, потребуется
обновить драйвера для видеокарты.
Если на компьютере установлена предыдущая версия Oculus App,
могут потребоваться её деинсталляция и перезапуск компьютера.
Подключение пульта
В первую очередь необходимо запустить Oculus App. В этом приложении содержатся инструкции по настройке шлема. В самом начале предлагается подключить пульт. Это делается нажатием на
кнопку выбора. Снизу пульта может понадобиться вытащить защитную плёнку – изоляцию батарейки. Для этого нужно сдвинуть
заднюю крышку, вытащить батарейку, убрать плёнку и собрать
пульт. На рис. 2.3 показан внешний вид пульта.
13
О Вашем пульте
Используйте пульт для навигации по виртуальной реальности
и для доступа к Универсальному Меню
Кнопка выбора
Понизить громкость
Диск навигации
Повысить громкость
Кнопка «Назад»
Кнопка Oculus
(Универсальное меню)
Рис. 2.3. Внешний вид пульта
Подключение контроллера X-Box
На следующем этапе осуществляется подключение контроллера Xbox One. Для этого нужны две батарейки, USB-ресивер и USBудлинитель для него, входящие в комплект поставки.
Необходимо вставить батарейки в контроллер и подключить
USB-ресивер к компьютеру (можно через USB-удлинитель). Затем
нужно нажать и удерживать кнопку на ресивере, пока индикатор
на нём не начнёт мигать. После этого можно включить контроллер,
удерживая кнопку включения.
Затем необходимо удерживать кнопку синхронизации, пока
кнопка Xbox не перестанет мигать (рис. 2.4).
Установка сенсора
Сенсор Oculus Rift – устройство, предназначенное для отслеживания положения шлема. При выборе местоположения и при
подключении сенсора следует учесть, что для корректной работы
он должен свободно видеть шлем: желательно заранее расчистить
рабочую зону таким образом, чтобы ничто не загораживало сенсор,
когда пользователь будет ходить, наклоняться, приседать.
Желательно расположить сенсор таким образом, чтобы расстояние от него до головы пользователя составляло 1–2 метра, повернув
передней (глянцевой) стороной в сторону пользователя. При этом необходимо учесть, что сенсор должен устойчиво стоять на твёрдой поверхности, и располагаться немного выше, чем шлем (рис. 2.5).
14
О Вашем Контроллере
Ваш контроллер работает со многими играми и приложениями виртуальной
реальности, так что держите его поблизости при использовании Rift
Кнопка XBox
(Универсальное меню)
Назад
Выбор
Навигация
Кнопка питания
Кнопка синхронизации
Рис. 2.4. Внешний вид входящего
в комплект контроллера
РАСПОЛОЖИТЕ ВАШ СЕНСОР
1. Расположите Ваш сенсор в том месте,
где собираетесь использовать Rift, примерно
в 1 метре от себя.
2. Направьте блестящую сторону
сенсора себе на лицо.
3. Уберите всё, что закрывает Вас
от сенсора.
Рис. 2.5. Пример правильной
установки сенсора на стол
15
Как только сенсор установлен, необходимо удалить с его передней поверхности защитную плёнку (в случае её наличия).
Подключение и настройка шлема
Внешний вид шлема показан на рис. 2.6.
Подключение шлема к компьютеру осуществляется по HDMI и
USB 3.0 (отдельно для очков и для сенсора). Нужно учитывать, что
HDMI и USB спаренные. Если на материнской плате есть разъем
HDMI, его использовать нельзя, т.к. подключение осуществляется к видеокарте. Если соединение установлено, внутри шлема загорится зелёный индикатор. Когда шлем подключен, необходимо
убедиться, что сенсор его видит. Для этого нужно поводить шлемом
перед сенсором. После этого можно надеть шлем (рис. 2.7).
Oculus App может предложить обновить прошивку Rift. Обновление происходит в автоматическом режиме после подтверждения.
Затем Oculus App предложит настроить положение линз при помощи регулятора на нижней части шлема. На регулятор нужно сначала нажать, и только потом двигать. Когда положение линз будет
отрегулировано, необходимо нажать Select на пульте управления.
Затем нужно убедиться, что сенсор видит очки. Можно походить
по комнате, затем снова нажать Select для подтверждения. После
этого пользователю будет показано, как сенсор сканирует его.
Далее начнётся презентация, которая будет выводиться, в том
числе и на экран компьютера. После презентации откроется Oculus
Home.
Отслеживающий
треугольник
Верхняя липучка
Наушники
Боковая липучка
Обратите внимание на регулируемые детали крепления шлема.
Правильно настроив положение шлема, вы обеспечите себе более
комфортное погружение в виртуальную реальность
Рис. 2.6. Внешний вид шлема
16
УБЕДИТЕСЬ, ЧТО ШЛЕМ НАДЕТ
ПРАВИЛЬНО
Ваш Rift надет правильно, если:
1. Пружинящие элементы в шлеме
позволяют снимать и надевать его
без дополнительных регулировок.
2. Отслеживающий треугольник
расположен низко по центру головы
так, чтобы давление на щёки было
небольшим.
Чуть выше ушей
Низко
по центру
3. Наушники должны легко сидеть
на ушах.
Комфортное
давление
Рис. 2.7. Пример правильного положения шлема виртуальной
реальности на голове
Примеры приложений из магазина
Introduction to Virtual Reality [3] – служит, как следует из названия, для введения новых пользователей в виртуальную реальность.
Это бесплатное приложение, состоящее из нескольких сменяющих
друг друга неинтерактивных демо-сцен (рис. 2.8).
Farlands [4] – бесплатная игра об исследовании других миров.
Пользователь способен перемещаться в определённой области на
Рис. 2.8. Пример демо-сцены
17
различных планетах, сканировать представителей флоры и фауны (рис. 2.9). Кроме того, доступен вид на исследуемую область со
спутника и интерфейс космического корабля.
Вид со спутника – это просто вид на уменьшенную копию локации. При этом все объекты действительно воспринимаются как
миниатюрные, т.е. нет ощущения высоты и удалённости объектов
от игрока, напротив, можно подойти к конкретной пальме или кактусу и рассмотреть их со всех сторон (рис. 2.10).
Minecraft [5] – игра в жанре «песочница». Мир игры состоит из кубических блоков размером примерно 1 на 1 метр. Задача игрока – выживать в этом мире, а также исследовать его (при желании). Игрок
имеет возможность перемещаться по миру, взаимодействовать с окружением (рис. 2.11) и с неигровыми персонажами, изготавливать различные предметы и т.д. Это приложение платное, однако в магазине
есть бесплатная демо-версия с ограничением по времени.
Обратите внимание, что во время тестирования данного приложения у некоторых пользователей может наблюдаться небольшая
потеря равновесия в момент, когда игровой персонаж начинал двигаться, поэтому следует в первое время сохранять повышенную
осторожность. Чем резче и быстрее движение, тем сильнее эффект.
Наибольшие проблемы с равновесием возникают в момент резкого
начала движения и во время прыжков.
Рис. 2.9. Взаимодействие с аборигеном
18
Рис. 2.10. Вид со спутника
Рис. 2.11. Выглядывание из-за угла на корточках
19
Контрольные вопросы
1. Для чего нужен сенсор? Как его правильно расположить?
2. Перечислите основные элементы управления пульта. Выполните сравнительный анализ пульта ДУ и контроллера XBox.
3. Перечислите основные элементы управления контроллера
XBox. Выполните сравнительный анализ пульта ДУ и контроллера
XBox.
4. Как определить, что шлем одет правильно? Почему это важно?
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Характеристики используемого компьютера.
4. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
5. Результаты работы.
6. Выводы по результатам работы.
Список рекомендованной литературы
1. Oculus Rift | Oculus – Oculus VR, LLC, 2017 [Электронный ресурс]. URL:https://www3.oculus.com/en-us/rift/ (дата обращения:
25.05.2017).
2. Oculus Rift – Wikipedia – Wikimedia Foundation, Inc., 2017
[Электронный ресурс]. URL:https://en.wikipedia.org/wiki/Oculus_
Rift (дата обращения: 25.05.2017).
3. Introduction to Virtual Reality | Oculus – Felix & Paul Studios, 2016 [Электронный ресурс]. URL:https://www.oculus.com/
experiences/rift/1006887936048510/ (дата обращения: 25.05.2017).
4. Farlands | Oculus – Oculus VR, LLC, 2016 [Электронный ресурс].
URL:https://www.oculus.com/experiences/rift/926295224105459/
(дата обращения: 25.05.2017).
5. Minecraft Windows 10 Edition | Oculus – Mojang, Microsoft 2016
[Электронный ресурс]. URL:https://www.oculus.com/experiences/
rift/741306562635466/ (дата обращения: 25.05.2017).
20
Практическое занятие № 3
ИЗУЧЕНИЕ SDK OCULUS RIFT ДЛЯ UNITY
Цель работы: изучение различных способов создания приложений для Oculus Rift в Unity 3D на примере простейшей тестовой
сцены.
План выполнения
1. Подключение и настройка Oculus Rift.
2. Создание простейшей тестовой сцены в Unity 3D.
3. Подключение Oculus Rift к сцене стандартными методами Unity.
4. Подключение Oculus Rift к сцене с использованием Oculus
Uitilites.
Техника безопасности
Перед началом работы нужно убедиться, что поблизости отсутствуют травмоопасные предметы. Для работы необходимо минимум два человека. Один непосредственно использует Oculus Rift,
второй следит, чтобы первый случайно не пострадал от неожиданного контакта с реальностью, в частности, чтобы он не запутался
в проводе и не наткнулся на находящиеся поблизости предметы.
Кроме того, следует учитывать, что в процессе использования
Oculus Rift есть риск укачивания: чтобы уменьшить вероятность
его возникновения, следует избегать резких движений. При плохо
отрегулированном шлеме могут начать болеть глаза. Кроме того,
при первом использовании навигации при помощи геймпада есть
риск возникновения головокружения.
Порядок выполнения практической работы
Описание тестовой сцены
Поскольку в рамках данного курса не рассматриваются возможности работы с контроллерами Oculus Rift, то взаимодействие
с игровыми объектами реализовываться не будет. Всвязи с этим
в качестве тестовой может быть использована любая сцена в Unity
3D, содержащая землю и элементы освещения. Если сцена создается с нуля, рекомендуется импортировать Environment и Characters.
Подключение Oculus Rift к сцене
стандартными методами Unity
В Unity есть встроенная поддержка VR, предоставляющая единый программный интерфейс для множества устройств виртуальной реальности и не требующая подключения сторонних пла21
гинов. На данный момент поддерживаются Gear VR, Oculus Rift,
PlayStation VR и устройства с поддержкой OpenVR, такие, как HTC
Vive.
Для того, чтобы включить поддержку VR в проекте Unity, необходимо открыть Player Settings (Edit > Project Settings > Player),
перейти на вкладку Other Settings и поставить галку Virtual Reality
Supported (рис. 3.1).
В списке Virtual Reality SDKs можно добавлять и убирать
устройства виртуальной реальности. Они будут загружаться в той
последовательности, в которой указаны в этом списке. По умолчанию при установке галки Virtual Reality Supported добавляется
устройство Oculus, поэтому никаких дополнительных действий
с этим списком совершать не нужно.
Теперь при запуске игры изображение с камеры будет отображается в Oculus, и шлем можно будет использовать для осмотра
тестовой сцены. Позиция, ориентация и угол обзора (FOV) шлема
автоматически применяются к камере, перезаписывая её стандартные параметры, то есть можно крутить головой, рассматривая пространство вокруг себя, без каких-либо дополнительных
настроек.
При этом остаётся возможность вручную менять угол обзора камеры, а вот редактирование компонента Transform невозможно.
При необходимости редактировать Transform нужно сделать камеру дочерним объектом другого GameObject, тогда все изменения
в Transform у родителя будут влиять на Transform камеры.
У всех камер при включённой поддержке VR (рис. 3.2) появляются параметры Stereo Separation (расстояние между глазами),
Stereo Convergence (расстояние до точки, в которую «смотрят»
виртуальные глаза) и Target Eye (определяет, какой из глаз отображается на дисплее). В Unity нет стандартного способа вывести
на экран отдельно изображения для правого и левого глаза, поэтому для этого можно использовать две камеры, у одной из которых
Target Eye установлен в Left, а у другой – в Right.
Далее, если это не было сделано ранее, необходимо импортировать стандартный ассет Characters. Добавляем в сцену префаб
FPSController. После этого при запуске игры становится доступно
управление с клавиатуры: можно не только крутить головой, но и
перемещаться по сцене, прыгать. Однако, в данном случае движения игрового персонажа получаются слишком резкими, что может стать причиной возникновения тошноты и головокружения
у игрока.
22
Рис. 3.1. Устанавливаем галочку напротив
Virtual Reality Supported
23
Рис. 3.2. Компонент Camera при включённой
встроенной поддержке VR
Подключение Oculus Rift к сцене
с использованием Oculus Uitilites
В дополнение к встроенной поддержке Unity, Oculus предлагает дополнительный пакет Utilities for Unity 5 (рис. 3.3), который
содержит скрипты, префабы и другие ресурсы. Пакет включает
в себя интерфейс для доступа к различным устройствам VR, специально спроектированную для VR камеру и контроллер персонажа, расширенные функции рендеринга, средства отладки и многое другое.
1.10.0 Published 16.11.2016
Рис. 3.3. Версия Oculus Utilites, использованная
при составлении данного практикума
24
Чтобы добавить в проект Oculus Utilities, перейдите Assets >
Custom Package и выберите загруженный вами Utilities for Unity
.unityPackage чтобы импортировать ассеты в ваш проект (либо запустите файл двойным нажатием мыши в окне проводника).
Когда откроется диалоговое окно, оставьте все пункты помеченными галкой и нажмите импорт. Для добавления пакета может потребоваться несколько минут.
Если вы импортируете Oculus Utilities в проект, что уже использовал ранее стандартный интегрированный, ознакомьтесь с рекомендациями по переходу с интегрированного пакета [5], чтобы
быть в курсе важных шагов перед добавлением стороннего пакета.
OVRManager – основной интерфейс к устройствам VR. Это синглтон, предоставляющий доступ к Oculus SDK в Unity и содержащий различные вспомогательные функции.
OVRCameraRig – камера, предназначенная для VR, которая может использоваться в сцене как и стандартная камера Unity. Эта камера отличается от стандартной в первую очередь тем, что обеспечивает доступ к OVRManager и предоставляет больше возможностей для
настройки. Этот префаб предназначен для того, чтобы быть присоединённым к какому-либо движущемуся игровому объекту, такому, как
персонаж или автомобиль. При использовании этой камеры нужно
убедиться, что все остальные камеры в сцене выключены.
OVRPlayerController – это OVRCameraRig, присоединённый
к простейшему контроллеру персонажа. Здесь реализованы система плавных движений, коллайдер, система меню со стереорендерингом текста и прицела. Этот контроллер гораздо лучше подходит
для использования с устройством виртуальной реальности, чем
FPSController из ассета Characters, т.к. его движения медленнее и
плавнее, а также он более естественно реагирует на повороты головы. Параметры данного префаба приведены на рис. 3.4.
Геймпад работает «из коробки» – его достаточно подключить
к компьютеру.
Контрольные вопросы
1. Перечислите достоинства и недостатки использования стандартной поддержки VR в Unity и Oculus Utilites.
2. Перечислите основные компоненты Oculus Utilites и их назначение.
3. Реализуйте возможность отображать на экране компьютера
изображение, которое рендерится в шлем, для каждого из глаз по
отдельности (один глаз – на одной половине экрана, второй – на
другой половине).
25
Рис. 3.4. Префаб OVRPlayerController
26
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Характеристики используемого компьютера.
4. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
5. Результаты работы.
6. Выводы по результатам работы.
Список рекомендованной литературы
1. Unity User Manual (5.5). Virtual Reality – Unity, 2017
[Электронный ресурс]. URL: https://docs.unity3d.com/Manual/
VirtualReality.html (дата обращения: 25.05.2017).
2. Unity User Manual (5.5). Virtual Reality. VR overview – Unity,
2017 [Электронный ресурс]. URL: https://docs.unity3d.com/
Manual/VROverview.html (дата обращения: 25.05.2017).
3. Oculus Utilities for Unity – 2016, Oculus VR, LLC [Электронный ресурс]. URL: https://developer3.oculus.com/documentation/
game-engines/latest/concepts/unity-utilities-overview/ (дата обращения: 25.05.2017).
4. Oculus Utilities for Unity 5 – 2017, Oculus VR, LLC [Электронный ресурс]. URL: https://developer.oculus.com/downloads/
package/oculus-utilities-for-unity-5/1.10.0/
(дата
обращения:
25.05.2017).
5. Migrating to Utilities from the Integration Package [Электронный ресурс]. URL: https://developer.oculus.com/documentation/
unity/latest/concepts/unity-migration/ (дата обращения: 30.08.2017).
27
Практическое занятие № 4
ИЗУЧЕНИЕ ШЛЕМА ВИРТУАЛЬНОЙ РЕАЛЬНОСТИ HTC VIVE
Цель работы: Получение практических навыков установки, настройки и использования шлема виртуальной реальности HTC Vive.
План выполнения
1. Монтаж базовых станций.
2. Подключение шлема.
3. Подключение контроллеров.
4. Калибровка шлема.
5. Прохождение демонстрационного приложения.
6. Запуск и тестирование приложения из Steam.
Техника безопасности
Перед началом работы необходимо убедиться, что поблизости
отсутствуют травмоопасные предметы. Для работы необходимо минимум два человека. Один непосредственно использует HTC Vive,
второй следит, чтобы первый случайно не пострадал от неожиданного контакта с реальностью, в частности, чтобы он не запутался
в проводе и не наткнулся на находящиеся за пределами рабочей зоны предметы.
Во время работы с HTC Vive необходимо избегать попадания
прямых солнечных лучей на шлем, повреждения поверхности базовых станций и ярких вспышек света, так как они могут привести
к сбою настроек станций.
Кроме того, при использовании шлема есть риск возникновения
головокружения и укачивания. У некоторых людей изображение
в шлеме вызывает тактильные и температурные галлюцинации.
Основные сведения об HTC Vive
HTC Vive – шлем виртуальной реальности совместной разработки Valve Corporation и HTC. Также является частью программы
Steam VR.
Для выполнения практической работы требуется аккаунт
Steam. Для получения учётных данных аккаунта лаборатории обратитесь к преподавателю.
Технические сведения
Vive обновляет картинку с частотой 90 Гц, позволяя демонстрировать видео в режиме 90 fps. Он имеет разрешение 1080x1200 пиксе28
лей на каждый глаз и угол обзора около 110°. В шлеме присутствуют
гироскоп, акселерометр, сенсор лазерного позиционирования.
Технические требования
HTC Vive рекомендуется подключать к компьютеру, удовлетворяющему следующим требованиям:
– Процессор: Intel Core i5-4590 или AMD FX 8350 или лучше.
– Видеокарта: NVIDIA GeForce GTX 1060 или AMD Radeon RX
480 или лучше.
– Объем оперативной памяти: 4 GB или больше.
– Видео выход: 1x HDMI 1.4, или DisplayPort 1.2 или лучше.
– USB: 1x USB 2.0 или более новый.
– Операционная система: Windows 7 SP1, Windows 8.1 или выше, или Windows 10 [1].
В Steam есть бесплатное приложение «SteamVR Performance
Test», оценивающее характеристики компьютера на возможность
подключения этого устройства [2].
Описание комплекта поставки
В комплект поставки HTC Vive входят:
1. Шлем виртуальной реальности.
2. Базовые станции (2 штуки) с адаптерами питания и креплениями.
3. Провод для синхронизации базовых станций.
4. Контроллер (2 штуки).
5. Кабель Micro USB (2 штуки).
6. Адаптер питания контроллера (2 штуки).
7. Объединяющий модуль.
8. Адаптер питания объединяющего модуля.
9. USB кабель.
10. HDMI кабель.
11. Тряпочка для ухода за линзами шлема.
12. Наушники.
13. Сменная подушка для лица.
На рис. 4.1 показано расположение шлема, контроллеров и базовых станций в коробке. Внешний вид контроллеров и зарядных
устройств для них показан на рис. 4.2.
Порядок выполнения практической работы
Монтаж базовых станций
Базовые станции предназначены для отслеживания положения
шлема и контроллеров в пределах рабочей зоны. Основные элементы базовых станций показаны на рис. 4.3.
29
Рис. 4.1. Расположение шлема, контроллеров
и базовых станций в коробке
Рис. 4.2. Контроллеры и зарядные устройства к ним
30
Индикатор состояния
Micro-USB (для обновления
прошивки)
Разъём питания
Индикатор канала
Порт кабеля синхронизации
Кнопка смены канала
Рис. 4.3. Основные элементы базовых станций
Базовые станции необходимо расположить в противоположных
углах рабочего пространства, на расстоянии не более 5 метров друг
от друга и около 2 метров над полом (выше уровня головы), и направить в центр предполагаемой рабочей зоны. Около каждой станции
должна быть розетка или удлинитель.
При планировании размещения базовых станций, имейте в виду
следующее:
1. Каждая базовая станция имеет поле обзора 120 градусов. Чтобы обеспечить точное отслеживание, следует установить базовые
станции так, чтобы их пересекающиеся поля обзора полностью покрывали планируемую рабочую зону.
2. Базовым станциям нужен беспрепятственный обзор рабочей
зоны.
3. Рекомендуемый угол наклона базовых станций составляет 3045 градусов от вертикали.
4. Во избежание повреждений передняя поверхность базовых
станций заклеена плёнкой. Перед началом работы её рекомендуется снять, так как она может повлиять на качество отслеживания.
5. Повреждения передней поверхности также оказывают влияние на качество отслеживания, поэтому их настоятельно рекомендуется избегать.
Для установки базовых станций можно использовать:
1. Комплект для крепления, включенный в поставку HTC Vive;
31
Точку крепления со стандартом резьбы 1/4 -20 UNC, например,
штатив для камеры или от лампы.
После установки следует убедиться, что базовые станции закреплены устойчиво, так как вибрация влияет на отслеживание.
Далее необходимо подключить адаптеры питания базовых станций (рис. 4.4). Индикатор состояния на передней стороне должен
загореться. После этого желательно воздержаться от регулирования положения станций или их передвижения.
После включения на передней панели каждой станции загорится буква, обозначающая используемый станцией канал. Одна станция должна быть установлена в b, а другая в с. Для смены канала
станции служит кнопка на задней панели.
Прежде, чем продолжить работу, необходимо убедиться, что
индикаторы состояния на обеих станциях зелёные (рис. 4.5). Сиреневый цвет индикаторов означает, что станции не могут синхронизироваться. В этом случае их необходимо соединить кабелем синхронизации.
Рис. 4.4. Подключение адаптера питания к базовой станции
Рис. 4.5. Внешний вид правильно настроенных станций
32
Когда базовые станции установлены, настроены и видят друг
друга, можно переходить к настройке шлема.
Подключение и настройка шлема
Основные элементы шлема показаны на рис. 4.6.
Базовые станции отслеживают местоположение шлема и контроллеров в пространстве. Нельзя допускать попадание солнечного света
на дисплей шлема, так как это может его повредить. Обратите внимание, что линзы шлема могут быть заклеены защитной плёнкой. Перед
началом работы её нужно удалить. Шлем подключается к компьютеру через связующий модуль (см. рис. 4.7). Его оранжевые порты всегда подключаются к шлему, а чёрные – к компьютеру.
Подключите адаптер питания к связующему модулю и вставьте вилку в розетку. Затем подключите модуль связи к USB порту
компьютера с помощью USB-кабеля. Используя HDMI кабель,
подключите модуль связи к HDMI порту видеокарты компьютера. Если свободного HDMI порта нет, можно использовать адаптер
mini DisplayPort to DisplayPort для подключения модуля к ПК. Обратите внимание, что подключение HDMI должно осуществляться
только к видеокарте!
Индикатор состояния
Подушка для лица
Регулятор дистанции
до линз
Кнопка шлема
Камера
Аудио кабель
Регулятор расстояния
между линзами
Кабель 3-в-1
Рис. 4.6. Основные элементы шлема
33
Связующий модуль
Шлем с кабелем 3-в-1 и аудио
кабелем
USB кабель
Адаптер питания
объединяющего модуля
HDMI кабель
Рис. 4.7. Шлем и устройства
для его подключения к компьютеру
Подключите оранжевую сторону кабеля 3-в-1 к оранжевой стороне связующего модуля. Windows должен установить драйвера
для устройств, если они не были установлены ранее.
Подключение контроллеров
Взаимодействие с виртуальными объектами осуществляется
при помощи контроллеров (рис. 4.8). Контроллеры симметричны: теоретически не важно, в какой руке держать какой контроллер. Базовые станции отслеживают их положение по встроенным
Кнопка меню
Курок
Трекпад
Системная кнопка
Светодиодный
индикатор
Рис. 4.8. Основные элементы контроллеров
34
Боковая
кнопка
в контроллеры сенсорам. Для зарядки контроллеров используется кабель micro-USB и адаптеры питания, входящие в комплект
поставки.
Для включения контроллеров нужно нажать системную кнопку. После этого должен последовать сопровождаемый вибрацией
звуковой сигнал и включиться светодиодный индикатор.
Настройка и калибровка компонентов шлема и задание
режима работы в виртуальной реальности
Данный этап работы следует начинать с запуска Steam VR: для
получения доступа к аккаунту лаборатории необходимо обратиться к преподавателю. После авторизации должно начаться подключение (красная надпись Connecting).
Есть два варианта работы в виртуальной реальности:
1. С возможностью перемещения в пределах комнаты (RoomScale). Для этого варианта необходимо иметь в наличии свободный
участок пространства размером минимум 2 на 1,5 метра. При этом
максимальное расстояние между базовыми станциями не должно
превышать 5 метров.
2. В неподвижном положении (Standing Only). Этот вариант
выбирается, если нет возможности свободно перемещаться в пространстве.
Запустите настройку комнаты (Room Setup). В приложении настройки есть подробная анимированная инструкция. Там же показывается, видит ли система оборудование.
Ниже приведено описание процесса настройки зоны при выборе
режима Room-scale (режим с возможностью перемещения в пределах комнаты).
В первую очередь необходимо освободить пространство будущей зоны. Эта зона должна иметь размеры не менее 2 на 1,5 метра, при её выборе желательно учитывать длину провода шлема.
Когда зона выбрана и расчищена, следует включить контроллеры
и поместить их вместе со шлемом в место, видимое базовыми станциями.
Укажите расположение монитора. Для этого встаньте в середине расчищенного пространства, направьте контроллер на монитор
и нажмите на курок. Эта информация поможет расположить вид
сверху на последующем шаге.
Укажите положение пола: положите оба контроллера на пол,
чтобы они были видны базовыми станциями, затем нажмите
Calibrate Floor в приложении и дождитесь конца калибровки.
35
Система предложит указать границы рабочей зоны. Для этого
необходимо пройти по границе предполагаемой зоны с контроллером, зажав курок – именно с его помощью будет определяться
граница. Обратите внимание, что при этом используется (виден)
только один контроллер, и отпускать триггер нельзя, но двигаться
можно достаточно быстро. Нужно сделать полный круг, при этом
должен получиться замкнутый контур.
Границы очерченной зоны будут показаны на экране. На основе полученных данных система построит прямоугольник активной
зоны. При этом система может оповестить о том, что область слишком маленькая. Тогда её границы придётся указывать заново.
Работа в виртуальной реальности
Когда шлем надет, руки будут видны в виде контроллеров. Кроме того, будут отображаться границы комнаты (в большинстве приложений они отображаются в виде сетки при приближении к границе зоны). Человека в шлеме нужно страховать, чтобы он не запутался в проводе. Следуйте появляющимся на экране инструкциям.
Обратите внимание, что качество изображения сильно зависит от
того, насколько хорошо шлем сидит на лице.
Запустите любое из имеющихся на аккаунте лаборатории приложений и освойте его.
The Lab
Это бесплатная игра от Valve по вселенной Portal [3]. В ней есть
несколько мини-игр:
– Slingshot – игра, в которой нужно, запуская снаряды из рогатки, уничтожить как можно больше элементов окружения.
– Longbow – в этой мини-игре необходимо не позволить захватчикам добраться до ворот замка и разрушить их. Для этого игрок
обстреливает захватчиков из лука.
– Xortex – управляя квадрокоптером, нужно стрелять в появляющиеся цели.
– Postcards – виртуальное путешествие в различные уголки земного шара.
– Human Medical Scan – исследование трёхмерной модели человека, построенной на основе медицинских сканов тела.
– Solar System – путешествие по солнечной системе.
– Robot Repair – симулятор починки робота.
– Secret Shop – демо-сцена, в которой можно послушать продавца в секретном магазине из Dota 2.
36
Surgeon Simulator VR: Meet The Medic
Симулятор пересадки сердца человека [4]. Операцию можно
провести разными способами с использованием разных медицинских инструментов, в том числе экзотических.
Accounting
В этой игре игрокам предстоит путешествие по нескольким уровням виртуальной реальности [5]. На каждом уровне необходимо
сначала искать шлем виртуальной реальности, чтобы перейти на
следующий уровень, а затем, после достижения последнего уровня,
искать способ снять шлем с головы, чтобы вернуться на предыдущий уровень и, в конечном итоге, выйти из игры.
Контрольные вопросы
1. Запустите The Lab Longbow. Найдите максимально возможное количество способов убить противника в броне и со щитом одним выстрелом (минимум три способа).
2. Запустите The Lab Slingshot. Взорвите что-нибудь.
3. Запустите The Lab Solar System. Столкните Землю с орбиты,
запустив в неё Юпитер.
4. Запустите The Lab PostCards. Почешите пузико робопсу.
5. Запустите Surgeon Simulator VR: Meet The Medic. Покормите
пациента сэндвичем.
6. Запустите Surgeon Simulator VR: Meet The Medic. Успешно завершите операцию.
7. Запустите Accounting. Наденьте виртуальный шлем виртуальной реальности.
8. Запустите Accounting. Поиграйте на костях.
9. Запустите Accounting. Бросьте адвоката в судью.
10. Проведите сравнительный анализ HTC Vive и изученных
ранее шлемов виртуальной реальности.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Характеристики используемого компьютера.
4. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
5. Результаты работы (рисунок в Tilt Brush, таблица рекордов из
The Lab и т. п.).
6. Выводы по результатам работы.
37
Список рекомендованной литературы
1. VIVE™ Россия | А теперь представь, что это не только твоё воображение – HTC, 2016 [Электронный ресурс]. URL: https://www.
vive.com/ru/ (дата обращения: 25.05.2017).
2. SteamVR Performance Test, Valve – 2016 [Электронный ресурс]. URL:http://store.steampowered.com/app/323910 (дата обращения: 25.05.2017).
3. The Lab, Valve – 2016 [Электронный ресурс]. URL:http://store.
steampowered.com/app/327140/ (дата обращения: 25.05.2017).
4. Surgeon Simulator VR: Meet The Medic, Bossa Studios – 2016
[Электронный
ресурс].
URL:http://store.steampowered.com/
app/457420/ (дата обращения: 25.05.2017).
5. Accounting, Crows Crows Crows , Squanchtendo – 2016 [Электронный ресурс]. http://store.steampowered.com/app/518580/
Accounting/ (дата обращения: 25.05.2017).
38
Практическое занятие № 5
ИЗУЧЕНИЕ ПРИЛОЖЕНИЙ TILT BRUSH И PAINTLAB ДЛЯ HTC VIVE
Цель работы: знакомство с возможностями приложений Tilt
Brush и PaintLab. Создание и просмотр трёхмерных изображений
при помощи HTC Vive. Закрепление навыков настройки и работы
с HTC Vive.
План выполнения
1. Установка и настройка HTC Vive.
2. Запуск и знакомство с интерфейсом Tilt Brush.
3. Создание модели.
4. Загрузка модели или изображения в Tilt Brush.
5. Создание видео с моделью.
6. Экспорт модели в Unity.
7. Знакомство с PaintLab.
Техника безопасности
При работе с Tilt Brush и PaintLab необходимо соблюдать те же
правила безопасности, что и при знакомстве с HTC Vive [1].
Основные сведения
Tilt Brush – приложение для трёхмерного рисования в виртуальной реальности, разработанное компанией Google [2]. С помощью
трёхмерных кистей можно создавать трёхмерные мазки, звёзды,
лучи света, дым и огонь. В качестве холста при этом используется
окружающее пространство – виртуальная комната. Обратите внимание, что запустить Tilt Brush без подключения HTC Vive к компьютеру нельзя.
Минимальные системные требования:
– ОС: Windows 7 SP1, Windows 8.1 или выше, Windows 10.
– Процессор: Intel i5-4590, AMD FX 8350 или лучше.
– Оперативная память: 4 GB.
– Видеокарта: Nvidia GeForce GTX 970, AMD Radeon R9 290,
аналогичная или лучше.
– Место на диске: 1 GB.
– Звуковая карта: не требуется.
PaintLab – бесплатное приложение для трёхмерного рисования
в виртуальной реальности, доступное в Steam [3]. Позволяет создавать трехмерные рисунки.
39
Минимальные системные требования:
– ОС: Windows 10 Home
– Процессор: Intel Core i5 4690K 3.50 Ghz.
– Оперативная память: 16 GB ОЗУ.
– Видеокарта: Nvidia GTX 970 4 GB.
Для выполнения практической работы требуется аккаунт
Steam. Для получения учётных данных аккаунта лаборатории обратитесь к преподавателю.
Порядок выполнения практической работы
Tilt Brush
В Tilt Brush, помимо инструментов рисования, доступна также
следующая функциональность: смена рабочей сцены, масштабирование сцены со всеми объектами в ней, масштабирование загруженных
объектов – моделей и изображений, сохранение рисунка, создание
gif-анимаций и видео, экспорт и импорт изображений и моделей.
По умолчанию левый контроллер содержит панели кистей, инструментов и изменения цвета. Панель изменения цвета показана
на рис. 5.1. Для переключения между панелями можно повернуть
контроллер, или же просто провести пальцем по трекпаду влево
или вправо. Левый и правый контроллеры можно поменять местами через соприкосновение их задних частей.
Рис. 5.1. Выбор цвета. Можно использовать цветовой круг
или цветовой квадрат
40
Правый контроллер представляет собой кисть. Для рисования
необходимо зажать курок, при этом толщина линии зависит от силы нажатия.
Настройки кисти включают в себя различные варианты формы
линий, позволяют задавать их цвет и толщину. Кисти делятся на
обычные, кисти-освещение, кисти-фактуры и кисти-спецэффекты.
Панель выбора кистей показана на рис. 5.2.
Существует возможность переключения между несколькими
сценами: помимо пустой сцены с нейтральным фоном можно загрузить сцену с манекеном для моделирования одежды, сцену с космосом, зимнюю сцену со снеговиком и снегом.
Кроме того, доступны инструменты «антикисть» (уничтожает
нарисованные объекты, обозначена пунктирной кистью), «линейка», которая позволяет проводить ровные линии, и «симметрия».
Последний инструмент добавляет в сцену ось, относительно которой дублируются все действия пользования (создание и уничтожение объектов). Панель инструментов показана на рис. 5.3.
Перемещение по сцене может осуществляться как хождением
по виртуальной комнате, так и при помощи инструмента «телепортация», обозначенного в меню следами ног. Этот инструмент позволяет выбирать точку сцены и перемещаться в неё.
Рис. 5.2. Меню выбора кистей
41
Рис. 5.3. Панель инструментов
Для масштабирования сцены нужно зажать боковые кнопки на
контроллерах и развести контроллеры в стороны (для увеличения
размера сцены) или сдвинуть их вместе (для уменьшения размера
сцены).
Для импорта трёхмерной модели или изображения в Tilt Brush
необходимо выполнить следующие действия. В начале на панели Tools, показанной на рисунке 5.4, необходимо нажать кнопку
«More...».
Затем, в открывшемся меню, необходимо нажать кнопку «Media
Library», чтобы открылась соответствующая панель (рис. 5.5).
Здесь можно выбрать одну из двух стандартных трёхмерных моделей либо загрузить что-то своё, нажав кнопку «Add Media» (рисунок 5.6).
При этом на экране компьютера откроется Проводник в той папке, куда можно положить свои модели, чтобы они появились в Tilt
Brush.
Чтобы загрузить изображение, нужно на панели Media Library
в Tilt Brush перейти на вкладку изображений, показанную на рис. 5.7.
42
Рис. 5.4. Панель Tools. Курсор показывает на кнопку «More…»
Рис. 5.5. Панель More. Курсор показывает
на кнопку «Media Library»
43
Рис. 5.6. Панель Media Library. Курсор показывает
на кнопку «Add Media»
Рис. 5.7. Панель Media Library. Показано загруженное
пользователем изображение
Собственное изображение загружается так же, как и трёхмерная модель: нажатием кнопки «Add Media» и копированием изображения в открывшуюся в Проводнике папку.
Чтобы загрузить модель или изображение в сцену, нужно нажать
на их иконку. Загруженное изображение показано на рис. 5.8.
Созданную в Tilt Brush модель можно экспортировать в формат
FBX для последующего использования в редакторах трёхмерных
моделей, например в 3DS Max, Unity или Blender. Здесь необходимо учитывать, что при экспорте получается очень много полигонов,
и для дальнейшей работы с моделью может потребоваться ретопология. Кроме того, может возникнуть проблема со связанностью
элементов, выполненных одинаковыми кистями.
44
Рис. 5.8. Загруженное изображение
PaintLab
PaintLab – бесплатное приложение для трёхмерного рисования
в виртуальной реальности при помощи HTC Vive [3]. В сравнении
с Tilt Brush имеет более ограниченную функциональность: рисование возможно в двух сценах (обычная с фургончиком на фоне гор,
показанная на рис. 5.9, и «ночной режим» – полностью чёрная
комната), есть два вида инструментов для рисования, инструмент
удаления и возможность переключения камеры.
Рис. 5.9. К левому контроллеру привязаны доступные инструменты и
меню выбора цвета, правый служит для выбора инструмента
и рисования
45
При работе в PaintLab возможно выведение изображения на
экран компьютера. При этом доступно три варианта положения
камеры: вид на сцену и рисующего пользователя со стороны, привязка камеры к контроллеру и непосредственно вид из шлема. Переключение между первыми двумя видами осуществляется нажатием кнопки Camera на правом контроллере, а включение вида из
шлема – нажатием боковой кнопки на левом контроллере.
Инструменты рисования отображаются над левым контроллером, их выбор и непосредственное применение осуществляется при
помощи правого контроллера (рис. 5.10).
Первый инструмент – баллончик (имитирует поведение реального баллона с краской), который позволяет рисовать только на модели фургона, размещённого внутри рабочего пространства. Толщина кисти при этом зависит от расстояния до поверхности: чем
ближе, тем тоньше, и, соответственно, наоборот.
Второй инструмент – текстурированная объёмная кисть, позволяющая создавать «трубки» произвольной длины. Толщина «трубок» при этом зависит от силы нажатия на курок контроллера. Есть
несколько видов текстур.
Рис. 5.10. Выбор инструмента
46
Рис. 5.11. Процесс рисования. Толщина объекта зависит от силы
нажатия на курок контроллера
Для обоих видов инструментов доступен выбор цвета (осуществляется при помощи цветового квадрата на трекпаде левого контроллера). Процесс рисования показан на рис. 5.11.
Контрольные вопросы
1. Запустите Tilt Brush. Нарисуйте пальму.
2. Запустите Tilt Brush. Нарисуйте дом, в котором вы могли бы
поместиться.
3. Запустите Tilt Brush. Экспортируйте любой рисунок в 3ds Max.
4. Запустите Paint Lab. Раскрасьте фургон и напишите на нём
своё любимое слово.
5. Запустите Paint Lab или Tilt Brush. Нарисуйте совершеннолетнюю девочку-волшебницу.
6. Запустите Paint Lab. Нарисуйте бревенчатую избу.
7. Запустите Paint Lab. Нарисуйте улитку с четырьмя рожками
и глазами.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Характеристики используемого компьютера.
4. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
47
5. Результаты работы (скриншоты модели в Tilt Brush и модели,
экспортированной в Unity).
6. Выводы по результатам работы.
Список рекомендованной литературы
1. VIVE™ Россия | А теперь представь, что это не только твоё воображение – HTC, 2016 [Электронный ресурс]. URL: https://www.
vive.com/ru/ (дата обращения: 25.05.2017).
2. Tilt Brush, Google – 2016 [Электронный ресурс]. URL: http://
store.steampowered.com/app/327140/Tilt_Brush/ (дата обращения: 25.05.2017).
3. PaintLab, LAB4242 – 2016 [Электронный ресурс]. URL: http://
store.steampowered.com/app/455160/PaintLab/ (дата обращения:
25.05.2017).
48
Практическое занятие № 6
ИЗУЧЕНИЕ SDK HTC VIVE ДЛЯ UNITY
Цель работы: изучение возможностей создания приложений
для HTC Vive в Unity 3D на примере простейшей тестовой сцены.
План выполнения
1. Подключение и настройка HTC Vive.
2. Создание простейшей тестовой сцены.
3. Подключение SteamVR Plugin к Unity.
4. Подключение шлема и контроллеров к сцене.
5. Добавление возможности взаимодействия с объектами сцены
при помощи контроллеров.
6. Добавление возможности телепортации внутри сцены.
Техника безопасности
Перед началом работы необходимо убедиться, что поблизости отсутствуют травмоопасные предметы. Для работы необходимо минимум
два человека. Один непосредственно использует HTC Vive, второй следит, чтобы первый случайно не пострадал от неожиданного контакта
с реальностью, в частности, чтобы он не запутался в проводе и не наткнулся на находящиеся за пределами рабочей зоны предметы.
Во время работы с HTC Vive необходимо избегать попадания
прямых солнечных лучей на шлем, повреждения поверхности базовых станций и ярких вспышек света, так как они могут привести
к сбою настроек станций.
Кроме того, при использовании шлема есть риск возникновения
головокружения и укачивания. У некоторых людей изображение
в шлеме вызывает тактильные и температурные галлюцинации.
Порядок выполнения практической работы
Описание тестовой сцены
Тестовая сцена Unity 3D для выполнения данной лабораторной
должна включать в себя следующие объекты:
1. Пол и стены комнаты.
2. Общее освещение.
3. Примитивные игровые объекты, которые пользователь сможет перемещать (шары, кубы).
4. Статичные игровые объекты, которые пользователь перемещать не сможет (стол или подиум).
5. К объектам пола и стен необходимо применить коллайдеры, если они не применены по умолчанию, и добавить физику (Rigid Body).
49
К тем объектам сцены, с которыми игрок сможет взаимодействовать при помощи контроллеров, должны быть применены коллайдеры (например, Sphere Collider для шаров – обычно добавляется по
умолчанию) и физика твердого тела (Rigid Body). Кроме того, некоторые объекты желательно сделать упругими, чтобы они могли отскакивать от пола и стен. Для этого необходимо зайти в инспектор
выбранного объекта, например, шара, и в настройках коллайдера
(Sphere Collider) нажать кнопку рядом с Material и выбрать Bouncy
(рис. 6.1). После этого шар сделается прыгучим.
Далее необходимо создать слой объектов, на которые можно
будет телепортироваться. Для этого следует нажать Layers / Edit
layers и добавить слой Teleportable (рис. 6.2).
В слой Teleportable необходимо перенести пол, стены и иные
объекты, на которые предполагается перемещаться.
На последнем этапе предварительной подготовки сцены необходимо создать плоский цилиндр минимальной толщины и назвать
его Pointer. Далее, для цилиндра нужно создать материал: щелчок
правой кнопкой мыши по проекту – Create / material. По нажатию
F2 материал можно переименовать в PointerMat (рис. 6.3). Задав
материалу цвет, перетаскиваем его на Pointer.
Получившийся в итоге диск нужно перетащить из Hierarchy
в Assets. Кроме того, в Assets рекомендуется создать папку Scripts,
в которой впоследствии будут размещаться скрипты. На этом предварительная подготовка тестовой сцены завершается.
Рис. 6.1. Параметры шаров
50
Рис. 6.2. Создание слоя для телепортации
Рис. 6.3. Параметры материала
51
Подключение SteamVR Plugin
Для того, чтобы иметь возможность подключить к проекту HTC
Vive, требуется SteamVR Plugin.
The SteamVR SDK предоставляет единый интерфейс для работы со всеми основными шлемами виртуальной реальности,
от предназначенных для использования в кресле до тех, в которых возможно передвижение в пределах виртуальной комнаты.
Также, он предоставляет доступ к отслеживаемым контроллерам, сопровождению, рендерингу моделей для отслеживаемых
устройств и синхронизации частоты обновления физики с системой рендера.
Компоновщик SteamVR позволяет просматривать контент в виртуальной реальности, используя игровой режим Unity, оставляя
обычное окно игры в качестве сопутствующего экрана на главном
мониторе.
Поддерживает DX11 в Windows 7 и выше, также включает в себя поддержку Vulkan на Linux-системах при использовании версий
Unity начиная с 5.6 и новее.
SteamVR Plugin есть в Unity Assets Store (рис. 6.4).
Загружаем плагин, нажав Download и подождав некоторое время.
После этого необходимо импортировать пакеты – импорт можно осуществлять выборочно, но, в данном случае, выбираем всё (рис. 6.5).
Импорт начинается по нажатию кнопки Import.
В процессе импорта может появиться окно настроек (рис. 6.6).
Необходимо нажать Accept All.
Если всё прошло успешно, в проекте появится папка Steam VR.
Теперь, для добавления в сцену VR-объектов, можно перетаскивать
их из папки Prefabs.
Рис. 6.4. SteamVR Plugin
52
Рис. 6.5. Импорт пакетов SteamVR Plugin
Рис. 6.6. Окно настроек SteamVR Plugin
53
Подключение шлема и контроллеров к сцене
За контроль шлема Vive и контроллеров отвечает объект
CameraRig (рис. 6.7). Добавляем его в сцену путём перетаскивания
в проект, и располагаем в том
месте, где должен оказываться игрок в момент запуска
приложения. При этом камеру
MainCamera можно удалить.
После этого необходимо запустить проект: сцена должна
отобразиться в Vive. Обратите
внимание, что на данном этапе контроллеры не взаимодействуют с окружением. Для
Рис. 6.7. Добавление CameraRig
осуществления
взаимодейв проект
ствия необходимо написать
и подключить специальные
скрипты, которые будут подробно описаны ниже.
На рис. 6.8 приведены названия элементов управления контроллеров, по которым к ним можно обращаться через скрипт.
Обратите внимание, что тачпад одновременно выполняет функции кнопки и аналогового джойстика. Кроме того, для него доступны такие параметры, как скорость и угловая скорость.
Application Menu
Hair Trigger
Touchpad
System Menu
Grip
Axis
Рис. 6.8. Имена элементов управления контроллеров
54
Скрипт TestInput, отслеживающий воздействие на элементы
управления контроллера:
using UnityEngine;
public class TestInput : MonoBehaviour
{
/** Ссылка на объект, который отслеживается
скриптом.
* В нашем случае это контроллер.
*/
private SteamVR_TrackedObject trackedObj;
// Свойство, предоставляющее удобный доступ
к контроллеру
private SteamVR_Controller.Device Controller
{
get { return SteamVR_Controller.Input((int)
trackedObj.index); }
}
/** Как только скрипт загружен, в trackedObj
записывается
* ссылка на компонент, который присоединён
к контроллеру.
*/
void Awake() {
trackedObj = GetComponent<SteamVR_TrackedObject>();
}
/** Каждый фрейм выводим информацию об изменении
состояния курка,
* боковой кнопки и тачпада
*/
private void Update() {
if (Controller.GetPressUp(SteamVR_Controller.
ButtonMask.Grip))
{
55
Debug.Log(“The controller is “ + gameObject.name + “ Grip was released”);
}
if (Controller.GetPressDown(SteamVR_Controller.ButtonMask.Grip))
{
Debug.Log(“The controller is “ + gameObject.name + “ Grip was pressed”);
}
if (Controller.GetHairTriggerDown())
{
Debug.Log(“The controller is “ + gameObject.name + “ Trigger was pressed”);
}
if (Controller.GetHairTriggerUp())
{
Debug.Log(“The controller is “ + gameObject.name + “ Trigger was released”);
}
if (Controller.GetAxis() != Vector2.zero)
{
Debug.Log(«The controller is « + gameOb
ject.name + Controller.GetAxis());
}
}
}
Далее необходимо прикрепить скрипт к контроллеру: для этого
его нужно перетащить на объект Controller, находящийся внутри
CameraRig (рис. 9).
Теперь, если запустить проект и начать нажимать на кнопки контроллеров, в консоли будут появляться сообщения (рис. 6.10).
56
Рис. 6.9. Выбор контроллера
и подключение к нему скрипта
Рис. 6.10. Сообщения о воздействии
на элементы управления контроллеров
Чтобы контролеры могли взаимодействовать с объектами сцены, к ним необходимо применить компонент RigidBody (физика
твердого тела). При этом нужно поставить галку Is Kinematic и
снять галку Use Gravity.
57
Рис. 6.11. Настройки коллайдера для контроллера
Кроме того, обоим контроллерам необходимо добавить Box
Collider и установить параметр Is Trigger (рис. 6.11). Рекомендуется установить центр коллайдера в (X: 0, Y: -0.04, Z: 0.02) и задать
размер (X: 0.14, Y: 0.07, Z: 0.05).
После этого необходимо убедиться в правильности расположения коллайдера. Наиболее удобно делать это, поместив окна Game
и Scene в разных частях экрана, запустив игру и в окне Scene приблизившись к контроллеру. Коллайдер на контроллере должен выглядеть примерно так же, как показано на рис. 6.12.
Рис. 6.12. Пример расположения коллайдера на контроллере
58
Добавление возможности взаимодействия
с объектами сцены при помощи контроллеров
Теперь напишем скрипт, позволяющий брать объекты при помощи контроллеров. Создадим файл GrabThing.cs:
using UnityEngine;
public class GrabThing : MonoBehaviour
{
private SteamVR_TrackedObject trackedObj;
private SteamVR_Controller.Device Controller
{
get { return SteamVR_Controller.Input((int)
trackedObj.index); }
}
// Хранит тот игровой объект, с которым триггер
взаимодействует прямо сейчас
private GameObject collidingObject;
/** Ссылка на объект, который прямо сейчас
удерживается
* привязанным к контроллеру. Т.е. тот, который
игрок «держит в руке».
*/
private GameObject objectInHand;
void Awake()
{
trackedObj = GetComponent<SteamVR_
TrackedObject>();
}
// Вызывается, когда триггер входит в коллизию
с коллайдером другого объекта
public void OnTriggerEnter(Collider other)
{
SetCollidingObject(other);
}
/** Вызывается, когда триггер остаётся в коллизии
с коллайдером другого
59
* объекта. Если не вызывать из этой функции
SetCollidingObject(),
* возможны разные глюки, в том числе потеря захваченного объекта.
*/
public void OnTriggerStay(Collider other)
{
SetCollidingObject(other);
}
// Вызывается, когда триггер выходит из коллизии
с коллайдером другого объекта
public void OnTriggerExit(Collider other)
{
if (!collidingObject)
{
return;
}
collidingObject = null;
}
/** Этот метод не позволяет захватить объект,
который и так уже захвачен,
* а также не захватывает объекты без Rigidbody
(без «физики»)
*/
private void SetCollidingObject(Collider col)
{
if (collidingObject || !col.
GetComponent<Rigidbody>())
{
return;
}
collidingObject = col.gameObject;
}
/** Каждый фрейм проверяем состояние триггера.
Если он только-только нажат,
60
* захватываем объект, если отпущен – освобождаем
объект
*/
void Update()
{
if (Controller.GetHairTriggerDown())
{
if (collidingObject)
{
GrabObject();
}
}
if (Controller.GetHairTriggerUp())
{
if (objectInHand)
{
ReleaseObject();
}
}
}
// Захват объекта
private void GrabObject()
{
// Перемещаем объект из collidingObject
в objectInHand
objectInHand = collidingObject;
collidingObject = null;
// Присоединяем объект к контроллеру
var joint = AddFixedJoint();
joint.connectedBody = objectInHand.
GetComponent<Rigidbody>();
}
/** Здесь создаётся привязанная к контроллеру
точка соединения с другими
* объектами (но не указывается, с какими именно), а также указывается,
61
* насколько сильными должны быть воздействия
на соединение, чтобы оно
* «порвалось»
*/
private FixedJoint AddFixedJoint()
{
FixedJoint fx = gameObject.
AddComponent<FixedJoint>();
fx.breakForce = 20000;
fx.breakTorque = 20000;
return fx;
}
// Освобождение объекта
private void ReleaseObject()
{
// Проверяем, что контроллер присоединён
к какому-то объекту
if (GetComponent<FixedJoint>())
{
// Удаляем соединение
GetComponent<FixedJoint>().connectedBody = null;
Destroy(GetComponent<FixedJoint>());
/* Добавляем объекту обычную и угловую
скорость, соответствующую
* контроллеру, чтобы его можно было
«бросать»
*/
objectInHand.GetComponent<Rigidbody>().
velocity = Controller.velocity;
objectInHand.GetComponent<Rigidbody>().
angularVelocity = Controller.angularVelocity;
}
// Удаляем ссылку на объект
objectInHand = null;
}
}
62
Рис. 6.13. Пользователь при помощи контроллеров
удерживает шар и куб
После сохранения скрипта его необходимо прикрепить к контроллерам (это можно сделать при помощи перетаскивания). Затем
необходимо запустить игру и убедиться, что все изменения вступили
в силу. Пример взаимодействия с игровыми объектами показан на
скриншоте (рис. 6.13).
Добавление возможности телепортации
внутри сцены
Для реализации возможности телепортации, в первую очередь
необходимо создать указку, при помощи которой будет осуществляться выбор места для телепортации. За основу можно взять один
из стандартных примитивов, например, куб. Назвав его Laser, изменяем его размеры так, чтобы стало похоже на указку (размер X:
0.005, Y: 0.005, Z: 0.5, положение X: 0, Y: 5, Z: 0), как показано на
рис. 6.14. После этого удаляем добавленный по умолчанию коллайдер (Box Collider).
Применим материал к лазеру, затем сохраним лазер как префаб
и удалим сам лазер из сцены (рис. 6.15).
63
Рис. 6.14. Создание лазера-указки
Рис. 6.15. Лазер-указка
Ниже приведён скрипт Teleporter.cs, реализующий телепортацию внутри сцены:
using UnityEngine;
public class Teleporter : MonoBehaviour
{
64
// Ссылка на Transform Camera Rig, т.е. на Transform игровой комнаты
public Transform cameraRigTransform;
// Ссылка на Transform головы игрока (камеры)
public Transform headTransform;
/** Смещение указателя от пола. Оно нужно, чтобы
избежать проваливания
* указателя в пол и прочих «z-fight»
*/ public Vector3 teleportReticleOffset; // Нужно, чтобы фильтровать области, где доступен телепорт
public LayerMask teleportMask; // Ссылка на префаб лазера
public GameObject laserPrefab; // Ссылка на сам лазер
private GameObject laser; // Ссылка на компонент лазера Transform, нужно
просто для удобства
private Transform laserTransform; // Ссылка на префаб указателя телепортации
public GameObject teleportReticlePrefab; // Ссылка на сам указатель телепортации
private GameObject reticle; // Ссылка на Transform указателя телепортации,
нужна просто для удобства
private Transform teleportReticleTransform; // Точка, куда попадает лазер и raycast
private Vector3 hitPoint; // Показывает, можно ли телепортироваться туда,
куда указывает лазер
65
private bool shouldTeleport;
private SteamVR_TrackedObject trackedObj;
private SteamVR_Controller.Device Controller
{
get { return SteamVR_Controller.Input((int)
trackedObj.index); }
}
void Awake()
{
trackedObj = GetComponent<SteamVR_TrackedObject>();
}
void Start()
{
// Создаём префаб лазера и запоминаем его
компонент Transform
laser = Instantiate(laserPrefab);
laserTransform = laser.transform;
// То же самое для указателя телепортации
reticle = Instantiate(teleportReticlePref
ab);
teleportReticleTransform = reticle.transform;
}
void Update()
{
// Если есть нажатие на тачпад
if (Controller.GetPress(SteamVR_Controller.
ButtonMask.Touchpad))
{
RaycastHit hit;
// Если raycast из контроллера попал на
телепортабельную поверхность
if (Physics.Raycast(trackedObj.transform.
position, transform.forward, out hit, 100, teleportMask))
{
66
// Протягиваем лазер от контроллера
до точки, куда попал raycast
hitPoint = hit.point;
ShowLaser(hit);
// Показываем указатель телепортации
reticle.SetActive(true);
// Добавляем к нему смещение во
избежание z-fight
teleportReticleTransform.position = hitPoint + teleportReticleOffset;
// Показываем, что можно телепортироваться
shouldTeleport = true;
}
}
else // Если тачпад не нажат, скрываем лазер
и указатель телепортации
{
laser.SetActive(false);
reticle.SetActive(false);
}
/** Если в этом фрейме тачпад был отпущен и
при этом есть,
* куда телепортироваться, телепортируемся
*/ if (Controller.GetPressUp(SteamVR_
Controller.ButtonMask.Touchpad) && shouldTeleport)
{
Teleport();
}
}
private void ShowLaser(RaycastHit hit)
{
//Показать лазер
laser.SetActive(true); /** Двигаем лазер в точку посередине между
контроллером и той точкой,
* куда он должен попасть
67
*/
laserTransform.position = Vector3.
Lerp(trackedObj.transform.position, hitPoint, .5f); // разворачиваем лазер в сторону точки
попадания
laserTransform.LookAt(hitPoint);
/** Увеличиваем длину лазера так, чтобы он
протянулся
* от контроллера до точки попадания
*/ laserTransform.localScale = new Vector3(las
erTransform.localScale.x, laserTransform.localScale.y,
hit.distance); }
private void Teleport()
{
/** Помечаем, что телепортироваться нельзя,
* потому что телепортация уже в процессе
*/
shouldTeleport = false; // Скрываем указатель телепортации
reticle.SetActive(false); // Подсчёт разницы (смещения) между позицией
комнаты и головой игрока
Vector3 difference = cameraRigTransform.
position — headTransform.position;
// Нам не нужно смещение головы игрока по
вертикали
difference.y = 0; /** Поскольку позиция Camera Rig отличается
от позиции игрока, а мы хотим,
* чтобы игрок телепортировался в точности
туда, куда он указал лазером,
68
* к позиции лазера добавляем посчитанное
выше смещение. Если этого не
* сделать, то в точку, куда указывает лазер,
будет перемещаться не
* игрок, а центр Camera Rig. А игрок появится рядом.
*/
cameraRigTransform.position = hitPoint + difference; }
}
Прикрепляем данный скрипт к обоим контроллерам. После этого
в режиме просмотра компонентов публичные переменные из скрипта отобразятся в виде полей, в которые можно будет перетащить объекты. На данном этапе необходимо перетащить в эти поля соответствующие компоненты и установить необходимые значения:
– В поле Camera Rig Transform перетаскиваем объект
[CameraRig] из сцены.
– В поле Head Transform перетаскиваем из сцены объект
[Camera(head)]. Он находится внутри [CameraRig].
– В teleportMask – выбираем Teleportable.
– Laser prefab – перетаскиваем префаб лазера.
– Teleport Reticle – перетаскиваем префаб указателя телепортации.
– Значение Y в teleportReticleOffset меняем на 0.05, чтоб он был
над землей.
В результате этих действий при запуске сцены и нажатии тачпада (тачпад вверх) должны появиться указка и область телепортации, аналогичные показанным на рис. 6.16.
Контрольные вопросы
1. Реализуйте возможность по нажатию тачпада «стрелять» из
контроллера лазерным лучом другого цвета, который мог бы двигать
предметы.
2. Сделайте сечение лазерного луча круглым
3. Реализуйте возможность по нажатию тачпада добавлять в сцену предметы, с которыми игрок мог бы взаимодействовать с помощью контроллера.
4. Сделайте возможность телепортироваться на один из кубов
в сцене.
5. Сделайте «Вжух».
69
Рис. 6.16. Указка и круг, показывающие
место телепортации
6. Сделайте телепортацию только по метке скрыв лазер.
7. Реализуйте захват объекта одним нажатием на триггер (не
удерживая ее) и бросание повторным нажатием.
8. Смените синюю метку телепортации на что то повеселей.
9. Добавьте стороннюю модель в сцену и реализуйте возможность бросать ее контроллером.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Характеристики используемого компьютера.
4. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
5. Результаты работы.
6. Выводы по результатам работы.
Список рекомендованной литературы
1. VIVE™ Россия | А теперь представь, что это не только твоё воображение – HTC, 2016 [Электронный ресурс]. URL: https://www.
vive.com/ru/ (дата обращения: 25.05.2017)
70
2. SteamVR Performance Test, Valve – 2017 [Электронный ресурс]. URL:http://store.steampowered.com/app/323910 (дата обращения: 25.05.2017)
3. SteamVR – Valve Developer Community, Valve – 2017 [Электронный ресурс]. URL:https://developer.valvesoftware.com/wiki/
SteamVR (дата обращения: 25.05.2017)
4. SteamVR Plugin – Asset Store, Unity Technologies – 2017
[Электронный ресурс]. URL:https://www.assetstore.unity3d.com/
en/#!/content/32647 (дата обращения: 25.05.2017)
5. Unity Scripting Reference | Unity, Unity Technologies –
2017 [Электронный ресурс]. URL:https://docs.unity3d.com/
ScriptReference/ (дата обращения: 25.05.2017)
6. Основы разработки двух- и трёхмерных приложений и игр //
Составители: В. В. Виноградов, А. В. Никитин, Н. Н. Решетникова,
Н. Д. Ульянов. Методические указания к выполнению лабораторных работ. СПбГУАП, 2016. 120 с.
71
Практическое занятие № 7
ИЗУЧЕНИЕ ОЧКОВ ДОПОЛНЕННОЙ РЕАЛЬНОСТИ
MICROSOFT HOLOLENS
Цель работы: Изучение основных возможностей и получение
практических навыков использования очков дополненной реальности Microsoft HoloLens.
План выполнения
1. Включение и начало работы с устройством.
2. Изучение жестов управления и голосовых команд.
3. Создание, перемещение и изменение размера голограммы.
4. Запуск приложений в дополненной реальности.
5. Съёмка фото и видео с помощью HoloLens.
Техника безопасности
Использование HoloLens может отвлечь вас от реальности, а голограммы могут сделать затруднительным передвижение среди
объектов реального мира. В связи с этим, избегайте использования
HoloLens в ситуациях, которые требуют от вас полного внимания,
а также вблизи лестниц, низких потолков, хрупких или дорогих
предметов, которые могут быть повреждены, и т.д. Избегайте попадания прямых солнечных лучей на очки.
Основные сведения о Microsoft HoloLens
Microsoft HoloLens – очки дополненной реальности, разработанные и производимые компанией Microsoft. Причина популярности
HoloLens в том, что он является одним из первых компьютеров,
работающих на «Платформе Дополненной Реальности Windows»
(Windows Mixed Reality) под операционной системой Windows 10.
Внешний вид очков показан на рис. 7.1.
HoloLens имеет высокотехнологичную техническую начинку,
в которую входят:
– модуль определения положения и ориентации (inertial
measurement unit), включающий акселерометр, гироскоп и магнитометр;
– четыре сенсора распознавания окружения (environment
understanding sensors), по два с каждой стороны;
– энергоэффективная камера измерения глубины с углом обзора
120 на 120 градусов для восприятия жестов пользователя;
– камера для съёмки фото и видео с разрешением 2.4 мегапикселя;
– массив из четырёх микрофонов;
– два датчика уровня освещенности;
72
Рис. 7.1. Общий вид очков HoloLens
– центральный процессор (CPU) и видеокарта (GPU) объединены в чипе типа «система на кристалле» и используют 1 гигабайт
оперативной памяти формата LPDDR3. Данный модуль используется для работы операционной системы Windows 10;
– специально разработанный для HoloLens сопроцессор «Модуль Обработки Голограмм» (Microsoft Holographic Processing Unit
(HPU)) для обработки данных с датчиков, имеющий 1 гигабайт
собственной оперативной памяти. Этот модуль также используется
для таких задач, как построение модели окружающего пространства, распознавание жестов, голоса и речи;
– модули Wi-Fi и Bluetooth для беспроводной связи.
Комплект поставки
Содержание упаковки очков дополненной реальности Microsoft
HoloLens изображено на рис. 7.2.
Элементы управления очков Microsoft HoloLens
На рис. 7.3 обозначены основные части очков, с которыми пользователю приходится взаимодействовать.
Управление взглядом и жестами
Первый элемент взаимодействия с очками – направление взгляда. Текущее направление обозначается точкой в центре экрана очков. Данной точкой пользователь может выбирать объекты и кнопки
в пространстве вокруг него.
Второй элемент управления – использование жестов. HoloLens
имеет специальную камеру, которая улавливает жесты, совершаемые пользователем руками перед собой.
73
Рис. 7.2. Упаковка Microsoft HoloLens.
1. Очки дополненной реальности Microsoft HoloLens. 2. Дополнительный
удлиненный адаптер для носа. 3. USB провод для зарядки очков.
4. Переходник для подключения к розетке (для российских розеток не подходит,
нужно использовать переходник для переходника). 5. Дополнительная дуга для
закрепления шлема на макушке. 6. Bluetooth – пульт дистанционного управления.
7. Тряпочка для очистки очков от загрязнений.
Рис. 7.3. Элементы управления HoloLens:
1. Внешний обруч. 2. Внутренний обруч (head band).
3. Регулируемая дуга внутреннего обруча. 4. Колёсико регулирования внутреннего обруча (adjustment wheel). 5. Кнопки регулирования яркости.
6. Кнопки регулирования громкости. 7. Кнопка включения/выключения и индикаторы состояния.
74
Первый жест – «воздушный щипок». Для его выполнения нужно вытянуть руку перед собой и коротко нажать указательным на
большой палец. Данный жест используется для нажатия на кнопки и выбора голограмм. Если у вас не получается выполнить жест,
возможно вы держите руку слишком высоко – сенсоры устройства
направлены слегка вниз.
Второй жест – «воздушный защип». Выполняется так же, как и
предыдущий жест, только пальцы нужно удерживать в сжатом состоянии. При этом перемещение руки будет отслеживаться. Используется для вызова контекстных меню, перемещения по страницам
виртуальных приложений, а также для перемещения голограмм.
Третий жест – «пальцы веером». Сожмите пальцы как показано на рисунке, а затем резко их разожмите, широко расставив их
в стороны. Данный жест используется для открытия меню.
Рис. 7.4. Воздушный щипок
Рис. 7.5. Воздушный защип
Рис. 7.6. Пальцы веером
75
Рис. 7.7. Указательный палец вверх
Четвертый жест – «указательный палец вверх». При выполнении этого жеста точка в середине экрана превращается в окружность, что позволяет пользователю понять, находится ли его рука
в зоне действия камеры, улавливающей жесты.
Управление голосовыми командами
HoloLens имеет встроенную систему распознавания речи, которая воспринимает различные голосовые команды. Чтобы совершить определенное действие, доступное для какого-либо объекта,
нужно посмотреть на него и произнести голосовую команду.
Узнать голосовую команду для какой-либо кнопки можно, задержав взгляд на ней на некоторое время. Если такая голосовая команда существует, она появится рядом с кнопкой вместе с маленькой пиктограммой микрофона.
При вызове голосовой команды старайтесь смотреть на объект,
к которому вы хотите её применить.
Список основных голосовых команд
HoloLens понимает только английский язык, поэтому рядом
с командами будет дано примерное правильное произношение и
перевод:
– Select («сэлэкт») – выбрать.
– Place («плэйс») – поместить голограмму.
– Remove («рэмув») – удалить.
– Adjust («эджаст») – переместить, изменить размер.
– Done («дан») – применить (после перемещения объекта).
– Hide Menu («хайд мэнъю») – спрятать меню.
– Scroll Tool («скролл тул») – режим прокрутки вверх/вниз.
76
– Drag Tool («дрэг тул») – режим свободного перемещения по
странице.
– Zoom Tool («зум тул») – режим увеличения/уменьшения страницы.
Порядок выполнения практической работы
Чтобы включить очки, нужно на 3 секунды зажать кнопку
включения. После этого, для выведения очков из спящего режима
достаточно короткого нажатия на кнопку.
Если устройство активно и его нужно перевести в спящий режим, нужно так же коротко нажать на кнопку. Чтобы выключить
устройство, зажмите кнопку до тех пор, пока все дисплеи и индикаторы не погаснут.
Для того, чтобы одеть очки HoloLens, нужно выполнить следующие действия.
1) Наклоните внутренний обруч назад, как показано на рисунке
7.8, после чего сдвиньте его назад до упора.
2) Крутите колёсико регулирования внутреннего обруча, пока
регулируемая дуга полностью не выдвинется.
3) Поместите шлем на голову.
4) Сдвиньте очки вплотную к носу.
5) На ощупь найдите колёсико регулирования внутреннего обруча на затылке и затяните внутренний обруч так, чтобы он плотно
сидел на голове (рис. 7.9).
Рис. 7.8. Внутренний обруч наклонён
77
Рис. 7.9. Затягивание обруча
Создание голограммы
Наденьте шлем, откройте главное меню при помощи жеста
«пальцы веером». Наведите точку на пункт меню «Holograms» и
сделайте «воздушный щипок» (рис. 7.10). Вы увидите открывающееся меню выбора голограмм. Оно само является голограммой, и
прежде, чем им пользоваться, вы должны разместить его где-либо
в комнате (рис. 7.11). Укажите взглядом место, в которое вы хотите поместить это окно, и зафиксируйте его жестом «воздушный
щипок» или командой Place (рис. 7.12). Если вы хотите закрыть
это окно (например если вы неудачно выбрали место для его создания), используйте кнопку Remove или соответствующую голосовую
команду.
Рис. 7.10. Главное меню
78
Рис. 7.11. Выбор расположения меню выбора голограмм
Рис. 7.12. Меню выбора голограмм размещено
После того, как вы расположили и зафиксировали окно, в нём
появится меню выбора голограмм. Используйте кнопки Page Down
и Page Up чтобы листать страницы. Выберите голограмму из списка, посмотрев на неё и сделав «воздушный щипок» (или сказав
Select). Перед вами появится голограмма, которую вы сможете
перемещать, поворачивая голову и перемещаясь по комнате. Расположите голограмму там, где вам хочется, и зафиксируйте её,
сделав «воздушный щипок» или сказав Place. Теперь голограмма
останется на месте (рис. 7.13).
79
Рис. 7.13. Голограмма размещена
Перемещение и изменение
размера голограммы
Посмотрев на голограмму, вы увидите три кнопки управления:
– Hide menu – скрыть это меню.
– Adjust – изменить положение, ориентацию и размер модели.
– Remove – удалить модель.
Все эти команды также можно вызывать, произнося соответствующую команду голосом.
Нажмите на кнопку Adjust. Голограмма при этом перейдёт в режим редактирования и вокруг неё появится прозрачный параллелепипед с синими рёбрами (рис.
7.14). Для того, чтобы переместить
голограмму, посмотрите на неё, сделайте «воздушный защип» и, сжав
пальцы, переместите голограмму.
Модель будет перемещаться вслед
за вашей рукой.
Для поворота модели посмотрите на одну из сфер на боковых рёбрах параллелепипеда, сделайте
«воздушный защип» и двигайте руку в разные стороны (рис. 7.15).
Для того, чтобы изменить размер
модели, посмотрите на одну из
Рис. 7.14. Режим
вершин параллелепипеда, окружаредактирования голограммы
80
ющего голограмму, сделайте «воздушный защип». Размер голограммы будет меняться вслед за движением вашей руки (рис. 7.16).
Расположите модель как вам нравится, походите вокруг неё, посмотрите на неё со всех сторон. Если в комнате накопилось слишком много голограмм, удаляйте их командой Remove.
Рис. 7.15. Режим вращения голограммы
Рис. 7.16. Режим масштабирования модели
81
Выход в интернет
Создавать можно не только голограммы, но и окна различных
приложений. Откройте главное меню (жест «пальцы веером») и выберите интернет-браузер Edge. Так же, как и в случае с созданием голограммы, вам будет предложено выбрать место расположения окна. Поместите окно где вам удобно. Обратите внимание, что для окна
браузера, так же как и для голограмм, доступна функция Adjust.
Она позволяет переместить окно браузера и изменить его размер. Вы
можете, например, расположить его на стене (рис. 7.17).
Направьте взгляд на строку ввода интернет-адреса. При выборе
текстового поля перед вами появится виртуальная клавиатура. Вы
можете выбирать буквы, направив на них взгляд, и набирать их,
используя «воздушный щипок». Введите в адресную строку адрес
какого-либо сайта, например, youtube.com (рис. 7.18).
Рис. 7.17. Интернет-браузер на стене
Рис. 7.18. Ввод интернет-адреса
82
Рис. 7.19. Ввод поискового запроса
В некоторых случаях, например, при вводе запроса в поисковую
систему, можно воспользоваться функцией распознавания речи,
которая включается кнопкой с изображением микрофона.
Когда сайт откроется, выберите строку поиска и, когда увидите
экранную клавиатуру, попробуйте использовать распознавание речи для ввода какого-нибудь поискового запроса, например, Unity
tutorials («юнити туториалс») (рис. 7.19).
Как вы можете видеть, в верхней панели браузера, рядом с кнопками Adjust и Remove, появились три новые кнопки, определяющие реакцию браузера на жест «воздушный защип»:
– Scroll Tool – позволяет листать страницу вверх-вниз.
– Drag Tool – позволяет перемещать страницу в любую сторону.
– Zoom Tool – позволяет увеличивать размер изображения в окне.
Включите режим Scroll Tool и пролистайте страницу вниз, чтобы
увидеть больше результатов поисковой выдачи. Выберите какоелибо видео, откройте и посмотрите его. Для регулирования громкости используйте кнопки на правой стороне внешнего обруча.
Съёмка фотографий и видео
Для того, чтобы перейти в режим съёмки фотографий, откройте главное меню (жест «пальцы веером») и выберите приложение
Photo. Смотрите по сторонам, чтобы расположить границы фотографии как вам хочется, после чего используйте жест «воздушный
щипок», чтобы сделать фотографию (рис. 7.20).
83
Рис. 7.20. Фотография, сделанная с помощью HoloLens
Есть другой способ, позволяющий сделать фотографию в любой
момент. Для этого нужно одновременно нажать кнопки повышения и понижения громкости.
Помимо этого, фотографию можно сделать с помощью голосового
помощника Кортана. Для этого нужно произнести голосовую команду Hey Cortana, take a picture («Хей Ко’тана, тэйк а пикча»).
Для съёмки видео откройте главное меню (жест «пальцы веером») и выберите приложение Video. Смотрите по сторонам, чтобы расположить границы кадра, и используйте жест «воздушный
щипок» для начала записи. Чтобы остановить запись, используйте
жест «пальцы веером».
Помимо этого, видео можно снять с помощью голосового помощника Кортана. Для этого нужно произнести голосовую команду
Hey Cortana, take a video («Хеи Ко’тана, тэйк а видэо»).
Просмотр и публикация фотографий
Откройте главное меню (жест «пальцы веером») и выберите приложение Photos. Расположите появившееся окно, где вам удобно.
В окне вы увидите список сделанных фотографий и видео. Вы можете открывать и смотреть их (рис. 7.21).
Вы можете расположить фото или видео у себя в комнате. Для
этого выберите нужный файл, откройте его и нажмите кнопку
Pin. Теперь вы можете расположить фотографию или видео у себя
в комнате.
84
Рис. 7.21. Просмотр сделанной фотографии
Рис. 7.22. Сделанная фотография на стене
Для публикации фото или видео в интернете откройте его, нажмите кнопку Share и выберите приложение, в которое вы хотите
его отправить.
Окончание работы с устройством
1. На ощупь найдите колёсико регулирования на затылке и ослабьте натяжение внутреннего обруча.
85
2. Снимите очки.
3. Нажмите на кнопку выключения.
4. Если после вас никто не собирается пользоваться очками, уберите их в футляр.
Контрольные вопросы
1. Какими сенсорами оснащён HoloLens?
2. Какие жесты используются для управления HoloLens?
3. Как создать голограмму?
4. Как изменить размер созданной голограммы?
5. Как увеличить изображение в виртуальном интернет-браузере?
6. Какие методы ввода текста поддерживает HoloLens?
7. Перечислите все методы, которыми можно заставить HoloLens
сделать фотографию.
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
4. Результаты работы.
5. Выводы по результатам работы.
Список рекомендованной литературы
1. Health And Safety information | Microsoft 2017 [Электронный
ресурс].
URL:https://www.microsoft.com/en-us/HoloLens/legal/
health-and-safety-information (дата обращения: 25.05.2017).
2. Microsoft HoloLens – Wikipedia – Wikimedia Foundation, Inc.,
2017 [Электронный ресурс]. URL:https://en.wikipedia.org/wiki/
Microsoft_HoloLens (дата обращения: 25.05.2017).
3. Microsoft HoloLens Virtual Reality and Augmented Reality Wiki, 2017 [Электронный ресурс]. URL:https://xinreality.com/wiki/
Microsoft_HoloLens (дата обращения: 25.05.2017).
86
Практическое занятие № 8
ИЗУЧЕНИЕ ПРИЛОЖЕНИЯ ДЛЯ MICROSOFT HOLOLENS
В UNITY 3D
Цель работы: изучение метода создания приложений для
Microsoft HoloLens в Unity 3D на примере простейшей тестовой
сцены.
План выполнения
1. Создание и настройка простейшего проекта в Unity 3D.
2. Экспорт проекта на HoloLens через USB с использованием
Microsoft Visual Studio.
3. Проверка приложения на Microsoft HoloLens.
Техника безопасности
Использование HoloLens может отвлечь вас от реальности, а
голограммы могут сделать затруднительным передвижение среди
объектов реального мира. В связи с этим, избегайте использования
HoloLens в ситуациях, которые требуют от вас полного внимания,
а также вблизи лестниц, низких потолков, хрупких или дорогих
предметов, которые могут быть повреждены, и т.д. Избегайте попадания прямых солнечных лучей на очки.
Порядок выполнения практической работы
Установка Unity
Для выполнения данной работы вам понадобится Unity. Данное руководство проверено на версии Unity 5.6.0f3 с пакетом Visual
Studio Community 2015 на операционной системе Windows 10.
Во время установки Unity при выборе компонентов выберите все
компоненты, связанные с Windows Store (рис. 8.1).
Создание нового проекта
Для создания приложения в Unity, сначала требуется создать
проект. Unity может создавать проекты в формате UWP, для чего
используется экспорт в виде решения для Visual Studio, которое будет содержать все необходимые ассеты и код.
1. Запустите Unity.
2. Нажмите New.
3. Введите название проекта, например «HoloTest».
4. Выберите папку и сохраните проект.
5. Убедитесь, что проект создаётся в режиме 3D.
6. Нажмите Create Project.
87
Рис. 8.1. Установка Unity
7. Нажмите File > New Scene.
8. Теперь у вас есть проект, с которым вы можете работать.
Настройка камеры
За отслеживание положения головы и стереоскопический рендер отвечает объект Main Camera. Его нужно расположить в точке
с нулевыми координатами.
1. Выберите Main Camera в панели Hierarchy.
2. В панели Inspector найдите компонент Transform и поменяйте значение Position с (X: 0, Y: 1, Z: -10) на (X: 0, Y: 0, Z: 0).
3. В Main Camera найдите компонент Camera, откройте выпадающее меню Clear Flags и поменяйте эту настройку со Skybox на
Solid Color.
4. Откройте панель выбора цвета Background и поменяйте значения RGBA на (0, 0, 0, 0). При рендере на HoloLens чёрный цвет
будет обрабатываться как прозрачный, поэтому мы поменяли цвет
фона на чёрный. Таким образом, пользователю будет видна только
сама голограмма.
88
Рис. 8.2. Настройки камеры
5. Внутри того же компонента Camera найдите параметр Near
Clip plane и поменяйте его с 0.3 на 0.85. Это нужно для того, чтобы
голограмма не отрисовывалась, если пользователь подойдёт к ней
слишком близко.
Теперь, когда камера настроена (рис. 8.2), можно сохранить сцену. Нажмите File > Save Scene As, назовите сцену Holo1 и нажмите
Save.
Настройка проекта
Сперва нужно настроить проект на максимальное быстродействие, чтобы HoloLens мог поддерживать высокую частоту кадров
в секунду.
1. Нажмите Edit > Project Settings > Quality.
2. Откройте выпадающее меню под галочками под логотипом
Windows Store и выберите Fastest. Вы сможете понять, что все настройки корректно применены, когда галочка рядом с Fastest в колонке Windows Store станет подсвечена зелёным (рис. 8.3).
Если галочек с логотипом Windows Store нет, вам потребуется
установить соответствующий модуль. Для этого нажмите File >
Build Settings и выберите Windows Store. Там вы найдете ссылку на
скачивание модуля.
89
Рис. 8.3. Настройки быстродействия
Теперь нужно дать Unity понять, что приложение должно иметь
вид голограммы, а не 2D проекта.
1. Нажмите Edit > Project Settings > Player.
2. В панели Inspector откройте вкладку Windows Store.
3. Откройте меню Other Settings.
4. В секции Rendering поставьте галочку на Virtual Reality
Supported, чтобы добавить список различных SDK для виртуальной реальности (Virtual Reality SDKs), после чего убедитесь, что
Windows Holographic появился в списке поддерживаемых SDK
(рис. 8.4).
Создание голограммы
Теперь вам понадобится модель, которую вы хотите увидеть
в качестве голограммы.
Можно создать простой куб.
1. В верхнем левом углу панели Hierarchy откройте выпадающее меню Create и выберите 3D Object > Cube.
2. Выберите созданный куб в панели Hierarchy.
3. В панели Inspector найдите компонент Transform и измените
положение куба на (X: 0, Y: 0, Z: 2). Это разместит куб в двух метрах от начального положение пользователя.
90
4. В компоненте Transform измените Rotation на (X: 45, Y: 45, Z:
45), а также Scale на (X: 0.25, Y: 0.25, Z: 0.25). Это уменьшит куб до
0.25 метров (рис. 8.5).
5. Чтобы сохранить изменения, нажмите File > Save.
Рис. 8.4. Настройки Player
91
Рис. 8.5. Настройки куба
Экспорт и компиляция из Unity в Visual Studio
1. Откройте окно File > Build Settings.
2. Нажмите Add Open Scenes, чтобы добавить сцену.
3. Измените Platform на Windows Store и нажмите на Switch
Platform.
4. В настройках Windows Store убедитесь, что SDK установлен
в Universal 10.
5. В качестве Target device укажите HoloLens.
6. Установите UWP Build Type в D3D.
7. UWP SDK должен быть установлен в Latest installed.
8. В меню Debugging поставьте галочку на Unity C# Projects
(рис. 8.6).
Нажмите Build. Если вы увидите сообщение об ошибке как на
рисунке, перейдите в пункт «Исправление ошибки Windows.winmd
not found» в конце руководства по данной практической работе.
В диспетчере файлов создайте новую папку и назовите её «App».
Не снимая выделение с папки «App», нажмите на «Выбрать папку»
(рис. 8.8).
Когда Unity закончит сборку, появится окно диспетчера файлов
Windows. Откройте в нём папку App (рис. 8.9).
92
Рис. 8.6. Настройки сборки
Рис. 8.7. Сообщение об ошибке
Рис. 8.8. Местоположение папки «App»
93
Рис. 8.9. Правильно собранный проект
Рис. 8.10. Настройки компиляции в Visual Studio
Откройте созданное решение в Visual Studio. В верхней панели Visual
Studio измените target с Debug на Release и с ARM на X86 (рис. 8.10).
Установка приложения на HoloLens
через USB
1. Убедитесь, что устройство подключено через USB.
2. Нажмите на стрелочку рядом с кнопкой Local Machine, и поменяйте deployment target на Device.
3. Нажмите Debug > Start without debugging.
4. Наденьте HoloLens и посмотрите на получившуюся сцену.
Во время сборки приложения в Visual Studio может появиться
сообщение о необходимости ввести PIN-код. Чтобы узнать PINкод, проделайте следующее:
1. Наденьте HoloLens.
2. Откройте приложение Settings из главного меню.
3. Выберите Update and Security.
4. Включите режим разработчика (Developer Mode).
5. Нажмите Pair. На экране появится PIN-код.
6. Введите данный PIN-код в Visual Studio.
Теперь вы можете одеть шлем. При загрузке приложения вы
увидите логотип Unity, после чего перед вами должен появиться
созданный вами кубик. После первого запуска приложение останется в HoloLens. Для того, чтобы ещё раз его запустить, откройте
94
главное меню, откройте полный список приложений (кнопка в виде знака «+») и выберите свой проект.
Исправление ошибки Windows.winmd not found
Если при сборке приложения в Unity возникла ошибка
«Windows.winmd not found» (рис. 8.11), нужно проделать следующие действия:
1. Откройте панель управления компьютера.
2. Выберите «Программы и компоненты».
3. Выберите Visual Studio 2015.
4. Нажмите «Изменить».
5. В меню «Features» откройте вкладку «Windows and Web Development» выберите «Universal Windows App Development Tools» и
установите их (рис. 8.12).
Рис. 8.11. Сообщение об ошибке
Рис. 8.12. Установка Universal Windows App
Development Tools
95
Контрольные вопросы
1. Как настроить сцену так, чтобы фон за созданной голограммой
был прозрачным?
2. Как следует ограничить пирамиду видимости при создании
приложения для HoloLens? Почему?
3. Как перенести проект из Unity на HoloLens?
Содержание отчёта
1. Титульный лист.
2. Цель работы.
3. Характеристики используемого компьютера.
4. Описание основных этапов выполнения работы с необходимыми комментариями (сценарии, фрагменты настроек программ,
скриншоты экрана, и др.).
5. Результаты работы.
6. Выводы по результатам работы.
Список рекомендованной литературы
1. Holograms 100 – Microsoft Developer, 2017 [Электронный
ресурс]. URL: https://developer.microsoft.com/en-us/windows/
mixed-reality/holograms_100 (дата обращения: 25.05.2017).
2. Install the tools – Microsoft Developer, 2017 [Электронный
ресурс]. URL: https://developer.microsoft.com/en-us/windows/
mixed-reality/install_the_tools (дата обращения: 25.05.2017).
3. Camera in Unity – Microsoft Developer, 2017 [Электронный ресурс]. URL: https://developer.microsoft.com/en-us/windows/mixedreality/Camera_in_Unity.html (дата обращения: 25.05.2017).
4. Performance recommendations for Unity – Microsoft Developer, 2017 [Электронный ресурс]. URL: https://developer.
microsoft.com/en-us/windows/mixed-reality/performance_
recommendations_for_unity (дата обращения: 25.05.2017).
96
Содержание
Введение...................................................................................
3
Практическое занятие № 1.
изучение устройства виртуальной реальности Samsung Gear VR.......
4
Практическое занятие № 2.
Изучение шлема виртуальной реальности Oculus Rift .....................
11
Практическое занятие № 3.
Изучение SDK Oculus Rift для Unity............................................
21
Практическое занятие № 4.
Изучение шлема виртуальной реальности HTC Vive........................
28
Практическое занятие № 5.
Изучение приложений Tilt Brush и PaintLab для HTC Vive..............
39
Практическое занятие № 6.
Изучение SDK HTC Vive для Unity...............................................
49
Практическое занятие № 7.
Изучение очков дополненной реальности Microsoft HoloLens...........
72
Практическое занятие № 8.
Изучение приложения для Microsoft HoloLens в Unity 3D................
87
97
Учебное издание
Валяев Д. В.,
Герцев А. А.,
Максимова О. Н.,
Топчий А. С. СИСТЕМЫ ВИРТУАЛЬНОЙ
И ДОПОЛНЕННОЙ РЕАЛЬНОСТИ
Лабораторный рактикум
Под редакцией кандидата технических наук,
доцента А. В. Никитина
Публикуется в авторской редакции.
Компьютерная верстка М. И. Дударевой
Сдано в набор 01.08.2917. Подписано к печати 12.09.2017.
Формат 60 × 84 1/16. Усл. печ. л. 5,7. Уч.-изд. л. 6,13.
Тираж 50 экз. Заказ № 365.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
98
Документ
Категория
Без категории
Просмотров
3
Размер файла
8 791 Кб
Теги
valyaevgertsev
1/--страниц
Пожаловаться на содержимое документа