Unity, OpenXR и WebXR предоставляют универсальный набор инструментов для создания разнообразных взаимодействий в иммерсивных опытах. Цель состоит в разработке иммерсивных приложений, с которыми пользователи могут взаимодействовать, используя существующий изученный опыт. Вы можете разрабатывать что угодно, от простых жестов до сложных физических симуляций.
Обратите внимание, что приложения Unity, OpenXR и WebXR работают только в режиме Full Space .
Узнайте о принципах проектирования Android XR .
Входы
Приложения XR могут включать взаимодействие с отслеживанием рук, глаз и лица; жесты; голосовые команды; и традиционные устройства ввода, такие как клавиатуры, мыши и контроллеры. Подумайте, какие входы потребуются вашему приложению для обеспечения естественного и доступного пользовательского опыта.
- Поддерживайте знакомые жесты, чтобы сократить кривую обучения вашего приложения. При взаимодействии с 2D UI используйте стандартные системные жесты, такие как сжатие. Для 3D-взаимодействий, таких как поднятие и бросание мяча, следует разрабатывать с жестами, которые имитируют взаимодействие в реальном мире. Это основывается на существующих знаниях пользователя и снижает необходимость в обучающих материалах.
- Если необходимы дополнительные жесты, убедитесь, что их легко выучить, запомнить и выполнить. Избегайте сложных, многошаговых жестов или неестественных положений, которые могут привести к дискомфорту и усталости. Рассмотрите возможность предоставления руководств для обучения пользователей использованию жестов рук.
- Убедитесь, что ваш опыт можно использовать как левой, так и правой рукой. Если это невозможно, следуйте предпочтениям системы в отношении рук.
- Хотя двуручное взаимодействие может быть захватывающим, оно может быть сложным для пользователей с ограниченной подвижностью. Отдавайте приоритет одноручному взаимодействию для основных действий. Если необходимы двуручные жесты, предоставьте альтернативные одноручные методы для достижения того же результата.
- Приложения Unity, OpenXR и WebXR не получают автоматически преимущества от стека возврата Android . Рассмотрите возможность внедрения стека возврата, чтобы пользователи могли получить доступ к жесту возврата Android XR для отмены действий или возврата назад с помощью навигации жестами.
Пользовательский интерфейс
Элементы пользовательского интерфейса, такие как кнопки, панели и текст, необходимы для естественного взаимодействия в приложениях XR. Дизайн должен отдавать приоритет бесшовному, интуитивно понятному пользовательскому опыту. Конкретные варианты дизайна пользовательского интерфейса будут зависеть от уникальных требований вашего приложения.
- Размещайте основные интерактивные элементы и важный контент в пределах естественной линии обзора и поля зрения пользователя. Это улучшает видимость и обеспечивает комфортный опыт. Подумайте, как пользователи должны взаимодействовать с интерфейсом, чтобы определить, на каком расстоянии его следует размещать. Например, целятся ли они лазерной указкой или нажимают кнопки непосредственно пальцами? Настройте размер интерфейса на основе его предполагаемого расстояния от пользователя. Ознакомьтесь с руководством по размеру и масштабу Android XR .
- При проектировании интерактивных элементов пользовательского интерфейса, таких как кнопки, учитывайте, как пользователи будут взаимодействовать с ними, уровень точности, необходимый для каждого метода ввода — отслеживание руки или мыши, и соответствующим образом адаптируйте такие факторы, как размер цели и интервал. Убедитесь, что положения пользовательского интерфейса обеспечивают комфортное взаимодействие. Обеспечьте визуальную обратную связь для действий пользователя. Ознакомьтесь с руководством по стилю Android XR .
- 2D UI, такие как панели, хорошо подходят для взаимодействия на основе меню. 3D UI, такие как физические кнопки, рычаги и переключатели, могут быть более захватывающими при взаимодействии с пространственными средами. Тщательный баланс между взаимодействиями на основе панелей для высокой читаемости и 3D-объектами для взаимодействия, ориентированного на мир, может создать мощный, захватывающий опыт.
- Обеспечьте разборчивость текста, используя соответствующие размеры шрифтов, типы и контрастность. Размещайте пользовательский интерфейс в зависимости от расстояния, на котором пользователи будут просматривать текст. Используйте шрифты Signed Distance Field для плавной визуализации текста при различных размерах шрифта. Обратитесь к руководству по типографике Android XR .
Пространственные взаимодействия
Некоторые из самых богатых взаимодействий в XR включают способность пользователя напрямую взаимодействовать с 3D-объектами. Это может быть так же просто, как поднятие, осмотр и бросание объекта. Это также включает более сложные взаимодействия, такие как тяга рычагов, нажатие кнопок и взаимодействие с элементами, которые уже держит пользователь — например, распыление спрея. Для интуитивно понятных взаимодействий с 3D-объектами проектируйте на основе уже существующих знаний пользователя о мире.
- Рассмотрите возможность интеграции физического движка, если вы хотите создавать реалистичные действия. Если вы создаете с помощью Unity, у него есть встроенный физический движок . Помните о том, сколько вычислительной мощности потребляют физические движки, и оптимизируйте производительность.
- Правдоподобность важнее реализма. Например, если пользователь считает, что он сильно бросил мяч, приложение должно добавить мячу дополнительную силу, выходящую за рамки показаний датчиков устройства.
- Объекты должны быть созданы в соответствии с их возможностями. Это означает, что все возможные действия, которые пользователь может выполнить с объектом или на нем, должны быть учтены в вашем приложении. Например, пончик можно поднять, бросить и съесть. Вместо того, чтобы есть пончик, приложение может использовать закадровый голос, сообщающий: «Я сейчас не голоден». Эти решения касаются действий, которые пользователь ожидает выполнить с пончиком.
- Объекты можно удерживать с помощью различных методов, включая родительское воспитание, физические суставы, следование и физические силы. Каждый метод имеет свои преимущества и недостатки. Перед внедрением индивидуального метода захвата крайне важно исследовать и протестировать различные подходы, чтобы определить наиболее подходящий.
- Эргономика важна при проектировании в 3D-среде. Для обеспечения доступности рассмотрите возможность добавления ручки к плоским поверхностям, чтобы пользователь мог отрегулировать ее на удобной высоте. Обязательно протестируйте каждый объект в пространстве с разными пользователями, поскольку тело каждого человека отличается.
Дизайн сцены
Сцены могут варьироваться от полностью иммерсивных виртуальных миров до дополненной реальности, которая смешивает виртуальные элементы с реальным окружением пользователя. Создавайте удобные, функциональные сцены, которые используют уникальные возможности XR.
- Ограничьте сцены, которые перемещаются вокруг пользователя, например, полеты. Это может вызвать дискомфорт, особенно если физическое тело пользователя остается неподвижным. Некоторые методы передвижения , такие как туннельное зрение (описанное в следующем разделе), помогают уменьшить дискомфорт.
- Для создания смешанной реальности можно использовать возможности Android XR по распознаванию сцен, чтобы интегрировать виртуальные объекты в физическую среду пользователя.
- Для приложений виртуальной реальности вы можете захотеть включить ограниченные виды реального мира в виртуальное пространство. Это помогает пользователям оставаться в курсе своего окружения и взаимодействовать с физическими объектами, не выходя из иммерсивного опыта.
Передвижение
Android XR-опыты поощряются, чтобы позволить пользователям свободно перемещаться по своему физическому пространству, определенному настроенной границей. Например, некоторые пользователи считают, что виртуальные впечатления более захватывающие, когда они разработаны вокруг неподвижного авторского пространства. Если вы ожидаете, что пользователи будут перемещаться по большему виртуальному пространству, чем позволяет граница, рассмотрите возможность использования методов передвижения, которые усиливают движение, таких как телепортация.
С помощью телепортации пользователь указывает и выбирает или использует контроллер, чтобы мгновенно переместиться в новое место. Это отлично подходит для быстрого преодоления больших расстояний и часто является методом передвижения, который вызывает наименьшее количество укачивания. Кратковременное затенение экрана во время перехода может еще больше минимизировать дискомфорт.
Другие способы передвижения
Если вы используете другие методы передвижения, рассмотрите возможность использования телепортации в качестве альтернативы.
- Ходьба на месте с размахиванием руками : имитируйте ходьбу, размахивая руками или перемещая контроллер вверх и вниз. Некоторые пользователи могут посчитать это утомительным или менее интуитивным.
- Непрерывное движение : используйте джойстик или стик контроллера, чтобы перемещать виртуальное «я» по окружающей среде. В большинстве случаев следует избегать этого метода, поскольку он является частой причиной укачивания.
Если вы решили использовать передвижение в своем опыте, предложите несколько вариантов, чтобы учесть индивидуальные предпочтения и улучшить пользовательский опыт.
Укачивание может возникнуть, когда есть разрыв между физическим движением пользователя и его виртуальным опытом. Чтобы оптимизировать комфорт пользователя во время передвижения:
- Убедитесь, что виртуальный горизонт остается устойчивым и ровным.
- Если требуется непрерывное движение, избегайте прогрессивного ускорения или замедления. Сохраняйте постоянную скорость.
- Туннельное зрение может помочь уменьшить укачивание, сужая поле зрения пользователя во время движения с эффектом виньетирования, который ограничивает движение, воспринимаемое в периферийных областях.
- Для вращения привязывайте точку зрения пользователя к определенным углам. Это может вызвать некоторую дезориентацию, но уменьшит укачивание.
- У пользователей разные уровни толерантности. Позвольте им настраивать параметры комфорта по своему усмотрению, например, выбирать способ передвижения, включать или выключать туннельное зрение или регулировать скорость движения.
Пространственный звук
Звук — мощный инструмент для создания захватывающих звуковых ландшафтов, которые переносят пользователей в другой мир и вызывают определенные эмоции. Пространственный звук точно позиционирует звуки в виртуальной среде.
- Ambisonics — это как skybox для аудио, предоставляющий захватывающий звуковой ландшафт для ваших пользователей. Используйте ambisonics для фоновых звуков окружающей среды или других сценариев, где вы хотите воспроизвести полное сферическое звуковое поле, окружающее слушателя.
- Пространственные звуковые сигналы могут направлять внимание пользователя.
- Пространственно воспроизводите звуковые эффекты для усиления погружения.
- Пространственное распределение звука голоса по местоположению говорящего дает пользователям ощущение присутствия, даже если они не смотрят прямо на говорящего.
- Разрешить пользователям настраивать звук. Например, они могут захотеть отключить или изменить громкость фоновой музыки, звуковых эффектов или закадрового голоса.
- Рассмотрите возможность добавления субтитров для глухих или слабослышащих людей.
Дополнительные соображения по поводу комфорта
Чтобы сделать доступность приоритетной, предоставьте настраиваемые параметры, которые соответствуют различным способностям и предпочтениям. Это гарантирует, что широкий круг пользователей сможет насладиться иммерсивным опытом.
- Запустите приложение со скоростью 72 кадра в секунду : это поможет минимизировать дрожание изображения и предотвратить тошноту.
- Дайте пользователям контроль : чтобы сделать ваше приложение удобным для пользователей с разным уровнем близости к XR, позвольте пользователям настраивать свой опыт с помощью настраиваемых параметров. Рассмотрите возможность разрешить пользователям переназначать кнопки и жесты контроллера в соответствии с их физическими потребностями или предпочтениями. Например, пользователи с ограниченной подвижностью рук могут извлечь выгоду из различных макетов кнопок или более крупных, простых элементов управления вводом.
Руководство по конкретным платформам см. здесь:
OpenXR™ и логотип OpenXR являются товарными знаками компании Khronos Group Inc. и зарегистрированы в качестве товарного знака в Китае, Европейском Союзе, Японии и Великобритании.