Соображения

Unity, OpenXR и WebXR предоставляют универсальный набор инструментов для создания разнообразных взаимодействий в захватывающих условиях. Целью является разработка иммерсивных приложений, с которыми пользователи смогут взаимодействовать, используя существующий приобретенный опыт. Вы можете создавать что угодно: от простых жестов до сложных физических симуляций.

Обратите внимание, что приложения Unity, OpenXR и WebXR работают только в полноэкранном режиме .

Узнайте о принципах проектирования Android XR .

Входы

Приложения XR могут включать в себя взаимодействие с отслеживанием рук, глаз и лица; жесты; голосовые команды; и традиционные устройства ввода, такие как клавиатуры, мыши и контроллеры. Подумайте, какие входные данные потребуются вашему приложению для обеспечения естественного и доступного пользовательского опыта.

  • Поддерживайте знакомые жесты, чтобы сократить время обучения вашего приложения. При взаимодействии с 2D-интерфейсом используйте стандартные системные жесты, такие как сведение пальцев. Для трехмерных взаимодействий, таких как взятие и бросание мяча, следует использовать жесты, имитирующие взаимодействие в реальном мире. Это основывается на существующих знаниях пользователя и снижает потребность в учебных пособиях.
  • Если необходимы дополнительные жесты, убедитесь, что их легко выучить, запомнить и выполнить. Избегайте сложных, многоэтапных жестов или неестественных поз, которые могут привести к дискомфорту и усталости. Рассмотрите возможность предоставления руководств, которые научат пользователей пользоваться жестами рук.
  • Убедитесь, что ваш опыт можно использовать как левой, так и правой рукой. Если это невозможно, следуйте предпочтениям системы.
  • Хотя взаимодействие двумя руками может быть захватывающим, оно может быть сложным для пользователей с ограниченной подвижностью. Отдавайте предпочтение одноручному взаимодействию для важных действий. Если необходимы жесты двумя руками, предоставьте альтернативные методы для достижения того же результата.
  • Приложения Unity, OpenXR и WebXR не получают автоматически преимущества от обратного стека Android . Рассмотрите возможность реализации стека возврата, чтобы пользователи могли получить доступ к жесту «Назад» в Android XR для отмены действий или возврата назад с помощью навигации с помощью жестов.

Две руки с использованием жестов навигации.

пользовательский интерфейс

Элементы пользовательского интерфейса, такие как кнопки, панели и текст, необходимы для естественного взаимодействия в приложениях XR. В дизайне приоритет должен быть отдан плавному и интуитивно понятному пользовательскому интерфейсу. Конкретный выбор дизайна пользовательского интерфейса будет зависеть от уникальных требований вашего приложения.

  • Разместите основные интерактивные элементы и важный контент в пределах естественного поля зрения и поля зрения пользователя. Это улучшает обзорность и обеспечивает комфорт. Учитывайте, как пользователи будут взаимодействовать с интерфейсом, чтобы определить, на каком расстоянии его следует разместить. Например, целятся ли они лазерной указкой или нажимают кнопки прямо пальцами? Настройте размер вашего интерфейса в зависимости от предполагаемого расстояния от пользователя. См. руководство по размерам и масштабу Android XR .
  • При разработке интерактивных элементов пользовательского интерфейса, таких как кнопки, учитывайте, как пользователи будут взаимодействовать с ними, уровень точности, необходимый для каждого метода ввода — отслеживание рук или мыши, и соответствующим образом адаптируйте такие факторы, как целевой размер и расстояние. Убедитесь, что позиции пользовательского интерфейса обеспечивают удобное взаимодействие. Обеспечьте визуальную обратную связь для действий пользователя. Обратитесь к руководству по стилю Android XR .
  • 2D-пользовательский интерфейс, такой как панели, хорошо подходит для взаимодействия на основе меню. 3D-пользовательский интерфейс, такой как физические кнопки, рычаги и переключатели, может быть более захватывающим при взаимодействии с пространственной средой. Тщательный баланс взаимодействия на основе панелей для высокой читаемости и 3D-объектов для взаимодействия, ориентированного на мир, может создать мощный, захватывающий опыт.
  • Убедитесь, что текст разборчив, используя соответствующие размеры, типы и контрастность шрифта. Позиция пользовательского интерфейса в зависимости от расстояния, на котором пользователи будут просматривать текст. Используйте шрифты Signed Distance Field для плавного рендеринга текста с различными размерами шрифтов. Обратитесь к руководству по типографике Android XR .

Человек полностью погружается в пространственную среду с очень большим экраном. Они стоят на камнях, а элементы управления пользовательским интерфейсом находятся на расстоянии вытянутой руки.

Пространственные взаимодействия

Некоторые из самых богатых взаимодействий в XR включают в себя возможность пользователя напрямую взаимодействовать с 3D-объектами. Это может быть так же просто, как взять, осмотреть и бросить предмет. Он также включает в себя более сложные взаимодействия, такие как нажатие рычагов, нажатие кнопок и взаимодействие с элементами, которые уже находятся в руках пользователя — например, распыление пульверизатора. Для интуитивного взаимодействия с 3D-объектами проектируйте их на основе уже существующих знаний пользователя о мире.

  • Если вы хотите создавать реалистичные действия, рассмотрите возможность интеграции физического движка. Если вы работаете с Unity, у него есть встроенный физический движок . Помните о том, сколько вычислительной мощности потребляют физические механизмы, и оптимизируйте производительность.
  • Правдоподобие важнее реальности. Например, если пользователь считает, что он сильно бросил мяч, приложение должно придать мячу дополнительную силу, превышающую ту, которую показывают датчики устройства.
  • Объекты должны быть построены так, чтобы соответствовать их возможностям. Это означает, что в вашем приложении должно быть учтено каждое возможное действие, которое пользователь может выполнить над объектом или с ним. Например, пончик можно взять, бросить и съесть. Вместо того, чтобы есть пончик, приложение могло использовать голос, говорящий: «Я сейчас не голоден». Эти решения касаются действий, которые пользователь ожидает выполнить с помощью пончика.
  • Объекты можно удерживать, используя различные методы, в том числе родительские, физические соединения, следование и физические силы. Каждая техника имеет свои преимущества и недостатки. Прежде чем реализовывать собственный метод захвата, крайне важно изучить и протестировать различные подходы, чтобы определить наиболее подходящий.
  • Эргономика важна при проектировании в 3D-среде. Для обеспечения доступности рассмотрите возможность добавления ручки на плоские поверхности, чтобы пользователь мог отрегулировать ее на удобную высоту. Обязательно протестируйте каждый объект в космосе с разными пользователями, поскольку тела у всех разные.

Job Simulator, полностью захватывающая VR-игра, в которой пользователь сидит за старинным компьютером в офисном кабинете. В игре есть виртуальные руки, которые могут взаимодействовать с 3D-объектами.

Дизайн сцены

Сцены могут варьироваться от полностью захватывающих виртуальных миров до дополненной реальности, в которой виртуальные элементы сочетаются с реальным окружением пользователя. Создавайте удобные и функциональные сцены, в которых используются уникальные возможности XR.

  • Ограничьте сцены, которые перемещаются вокруг пользователя, например полет. Это может вызвать дискомфорт, особенно если физическое тело пользователя остается неподвижным. Некоторые методы передвижения , такие как туннельное зрение (описанное в следующем разделе), помогают уменьшить дискомфорт.
  • Чтобы создать среду смешанной реальности, вы можете использовать возможности понимания сцены Android XR для интеграции виртуальных объектов в физическую среду пользователя.
  • Для приложений виртуальной реальности вы можете захотеть включить ограниченные представления реального мира в виртуальное пространство. Это помогает пользователям осознавать свое окружение и взаимодействовать с физическими объектами, не выходя из режима погружения.

Передвижение

Рекомендуется использовать Android XR, чтобы пользователи могли свободно перемещаться по своему физическому пространству, определенному настроенной границей. Например, некоторые пользователи считают, что виртуальные возможности более захватывающие, если они созданы вокруг неподвижного авторского пространства. Если вы ожидаете, что пользователи будут перемещаться по большему виртуальному пространству, чем позволяет граница, рассмотрите возможность использования методов передвижения, которые усиливают движение, например телепортации.

При телепортации пользователь указывает и выбирает или использует контроллер, чтобы мгновенно перейти в новое место. Он отлично подходит для быстрого преодоления больших расстояний и часто является методом передвижения, вызывающим наименьшую укачивание. Кратковременное затемнение экрана во время перехода может еще больше свести к минимуму дискомфорт.

Другие способы передвижения

Если вы используете другие методы передвижения, рассмотрите возможность предложить в качестве альтернативы телепортацию.

  • Ходьба на месте с размахиванием руками : имитируйте ходьбу, размахивая руками или перемещая контроллер вверх и вниз. Некоторым пользователям это может показаться утомительным или менее интуитивно понятным.
  • Непрерывное движение : используйте джойстик или большой палец контроллера, чтобы перемещать свое виртуальное «я» по окружающей среде. В большинстве случаев вам следует избегать этого метода, поскольку он является частой причиной морской болезни.

Если вы решите использовать передвижение в своем опыте, предложите несколько вариантов, учитывающих индивидуальные предпочтения и улучшающих взаимодействие с пользователем.

Укачивание может возникнуть, когда существует разрыв между физическим движением пользователя и его виртуальным опытом. Чтобы оптимизировать комфорт пользователя во время передвижения:

  • Убедитесь, что виртуальный горизонт остается устойчивым и ровным.
  • Если требуется непрерывное движение, избегайте любого постепенного ускорения или замедления. Поддерживайте постоянную скорость.
  • Туннельное зрение может помочь уменьшить укачивание за счет сужения поля зрения пользователя во время движения с эффектом виньетирования, который ограничивает движение, воспринимаемое в периферийных областях.
  • Для вращения привяжите точку обзора пользователя к определенным углам. Это может вызвать некоторую дезориентацию, но уменьшит укачивание.
  • Пользователи имеют разные уровни толерантности. Позвольте им настроить параметры комфорта по своему усмотрению, например, выбрать способ передвижения, включить или выключить туннельное зрение или отрегулировать скорость движения.

Пространственный звук

Звук — мощный инструмент для создания захватывающих звуковых ландшафтов, которые переносят пользователей в другой мир и вызывают определенные эмоции. Пространственное аудио точно позиционирует звуки в виртуальной среде.

  • Ambisonics похожа на скайбокс для аудио, предоставляя вашим пользователям захватывающий звуковой ландшафт. Используйте ambisonics для фоновых звуков окружающей среды или других сценариев, в которых вы хотите воспроизвести полностью сферическое звуковое поле, окружающее слушателя.
  • Пространственные звуковые сигналы могут направлять внимание пользователя.
  • Распределите звуковые эффекты для увеличения погружения.
  • Пространство голосового звука в зависимости от местоположения говорящего дает пользователям ощущение присутствия, даже если они не смотрят прямо на говорящего.
  • Разрешить пользователям настраивать звук. Например, они могут захотеть отключить или изменить громкость фоновой музыки, звуковых эффектов или голоса за кадром.
  • Рассмотрите возможность добавления субтитров для глухих или слабослышащих людей.

Больше внимания к комфорту

Чтобы сделать доступность приоритетной, предоставьте настраиваемые параметры, соответствующие различным способностям и предпочтениям. Это гарантирует, что широкий круг пользователей сможет насладиться захватывающим опытом.

  • Заставьте ваше приложение работать со скоростью 72 кадра в секунду : это поможет минимизировать визуальное дрожание и предотвратить тошноту.
  • Предоставьте пользователям контроль . Чтобы сделать ваше приложение удобным для пользователей с разным уровнем знакомства с XR, позвольте пользователям адаптировать свой опыт с помощью настраиваемых параметров. Рассмотрите возможность предоставления пользователям возможности переназначать кнопки и жесты контроллера в соответствии с их физическими потребностями или предпочтениями. Например, пользователи с ограниченной подвижностью рук могут извлечь выгоду из другого расположения кнопок или более крупных и простых элементов управления вводом.

Рекомендации по конкретным платформам см. на странице:

Разработка для OpenXR

Развивайтесь с Unity

Документация WebXR