Обучающая рука
Ручной тренер активирует трехмерные смоделированные руки, когда система не обнаруживает руки пользователя. Эта функция является компонентом "обучения", который помогает направлять пользователя, когда жест не был обучен. Если пользователь не выполнял указанный жест в течение определенного периода, руки будут циклически с задержкой. Тренер по рукам можно использовать для представления нажатия кнопки или получения голограммы.
Предоставляется тренер по рукам
Текущая модель взаимодействия представляет широкий спектр элементов управления жестами, таких как прокрутка, выбор дальней области и близкое касание. Ниже приведен полный список существующих жестов рук, предоставляемых в MRTK:
Пример близкого выделения — используется, показывающий, как выбрать кнопки или закрыть интерактивные объекты
Пример касания воздуха — используется для демонстрации выбора объектов, которые находятся далеко
Пример перемещения объекта в пространстве. Используется для демонстрации перемещения голограммы в пространстве
Пример Rotate-Used для демонстрации поворота голограмм или объектов
Пример масштабирования используется для демонстрации того, как управлять голограммами, чтобы они были больше или меньше
Пример palm up — рекомендуется использовать, чтобы открыть меню рук
Пример переворачивания руки — еще один способ открыть меню рук
Пример прокрутки — используется для прокрутки списка или длинного документа
Принципы проектирования
Для Hololens2 мы разработали взаимодействия с руками на основе инстинктивных и естественных жестов рук. Мы считаем, что они интуитивно понятны для большинства пользователей, поэтому мы не создавали специальные моменты обучения жестам. Вместо этого мы создали тренер по рукам, чтобы помочь пользователям узнать об этих жестах, если они застревают или не знакомы с взаимодействиями с голограммами. Не имея моментов обучения, мы чувствовали, что показать пользователям, как выполнять действие, демонстрируя его, будет лучшим вариантом. Мы обнаружили, что пользователи смогли выяснить жест, но нуждались в небольших рекомендациях. Если мы обнаруживаем, что пользователь не взаимодействует с объектом в течение определенного периода, будет активирован тренер рук, демонстрирующий правильное размещение рук и пальцев.
Интуитивно понятный
При анимации рук это должно быть очевидно и не должно вызывать путаницы. Анимация руки — это представление жеста, который вы пытаетесь заставить пользователя понять.
Например, если вы хотите, чтобы пользователь нажимал кнопку, активируется нажатие кнопки рукой.
Рука тренер демонстрации рядом с касанием драгоценных камней
Масштаб руки
Мы протестировали различные размеры рук с помощью меню пользовательского интерфейса и чувствовали, что если руки были верны размеру, это дало угрожающее чувство. Если они были слишком маленькими, было трудно увидеть и понять жест.
Озвучка и руки
Не ожидайте, что пользователи могут слушать один набор инструкций с помощью голосовой связи и watch различные инструкции с помощью ручного тренера. Последовательность инструкций, чтобы помочь пользователям сосредоточиться и конкурировать за свое внимание, чтобы уменьшить сенсорную перегрузку.
Можно ли создать собственный?
Да! Мы рекомендуем вам создать собственный уникальный жест для вашей игры и внести свой вклад в сообщество! Мы предоставили майя-файл с фальсифицированной рукой, который можно использовать для вашего приложения, который можно скачать здесь: Скачать HandCoach_MRTK.zip
Пример анимированного тыкания рукой в коробке в майя
Рекомендуемое средство разработки
Среди 3D-художников многие предпочитают использовать Autodesk Maya, которая может использовать HoloLens для преобразования способа создания ресурсов. Предоставленный файл рук является двоичным файлом Maya, поэтому рекомендуется использовать Maya для анимации и экспорта рук. Если вы предпочитаете использовать другую трехмерную программу, вот . FBX: скачайте HandCoachMRTK_FBX.zip , чтобы создать собственную настройку контроллера.
Если вы используете скачиваемый файл руки maya, рекомендуется уменьшить размер рук в unity до 0,6.
Сфальсифицированные руки
Технические спецификации
- Двуручный файл доступен в формате Maya Ascii
- Правая и левая рука доступны в двоичном формате Maya
- Задайте для файла Maya значение 24 кадров/с
- В файле есть левая и правая руки, которые можно использовать для жестов двумя руками или одной рукой. Правая рука будет видна только по умолчанию.
- Рекомендуется оставить буфер из примерно 10 кадров в начале и конце для исчезания
- При анимации объекта с указанным целевым объектом рекомендуется анимировать поле По умолчанию или Значение NULL.
- Если рука анимирует физический объект, например коробку, рекомендуется не анимировать перевод в Maya, а ждать, чтобы анимировать его в Unity или в коде.
- Видимая анимация должна иметь значение 1,5 секунды для передачи значимой информации
- Когда вы удовлетворены анимацией:
- Выбор всех соединений и выпекание ключевых кадров
- Удалите контроллеры, выберите соединения и сетку и экспортируйте как FBX.
- Если есть несколько анимаций, вы можете использовать встроенный в Maya Game Exporter: https://knowledge.autodesk.com/support/maya/learn-explore/caas/CloudHelp/cloudhelp/2015/ENU/Maya/files/Game-Exporter-htm.html
Экспорт из Maya
После того, как вы удовлетворены анимацией
Выберите все соединения: выберите > Иерархия
Испечь анимацию: переключиться на анимацию с помощью клавиши > ">Выпекать анимацию"
Удаление MainR_Grp или MainL_Grp контроллера. Структура >
Экспорт как FBX: выберите JNT + Сетка: Выбор экспорта файла > (флажок) > Экспорт выделенного фрагмента
При экспорте как FBX и в Unity масштабируйте руки до 0,6. Мы обнаружили, что это идеальный баланс для отображения рук.
Параметры Unity для HandCoach_R заготовки в MRTK
Реализация рук в проекте Unity
Рекомендации
Рекомендуется уменьшить руки в единстве до 0,6
Руки должны воспроизводиться дважды, а если они не завершены, то непрерывно циклически до завершения жеста. Руки должны быть зацикливать дважды, чтобы убедиться, что у пользователя есть время для регистрации и просмотра жеста. Руки должны исчезать между циклами.
Если руки пользователя видны камерами HL2, но пользователи не выполняют необходимые действия, руки появятся через 10 секунд.
Если руки пользователя не видны камерами HL2, они появятся через 5 секунд.
Если руки пользователя заметно отслеживаются камерами HL2 в середине анимации, анимация завершится и исчезнет.
Если вы включаете озвучку, мы рекомендуем, чтобы она соответствовала жесту руки.
Если вы обучали руки хотя бы один раз, повторите жест, только если обнаружится, что пользователь застрял.
Если определенные положения пальцев и рук являются критически важными, убедитесь, что пользователи могут четко видеть эти нюансы в анимации. Попробуйте овладеть руками, чтобы наиболее важные части были четко видны.
Если вы заметили искажения на руках, необходимо перейти к параметрам качества Unity увеличить количество костей. Перейдите в раздел Изменение > параметров > проекта Unity Качество > Другие > весовые коэффициенты смешения. Убедитесь, что выбрано значение "4 кости", чтобы увидеть Гладкие суставы.
Чего следует избегать
- Слишком большое масштабирование рук
- Слишком близкое расположение рук к пользователю
- Руки должны быть обучены только один раз. Чрезмерное обучение может вызвать путаницу и беспорядок
- Чтобы принести его в Unity, скачайте последнюю версию MRTK здесь: https://github.com/microsoft/MixedRealityToolkit-Unity
- Материал: Teaching_Hand2
- Скрипты. Ознакомьтесь с рекомендациями MRTK для mrtk hand coach
- Параметр для каждого проекта
- Для сцены задано значение UWP. Инструкции можно найти в статье Настройка нового проекта OpenXR с помощью MRTK .