VR-Design: User Interface

в 11:20, , рубрики: UI, unity, unity3d, user interfaces, UX, virtual reality, VR, WebGL, Разработка под AR и VR

Данная статья является четвертой в цикле про качественную разработку VR-проектов. Ранее мы уже изучили основы работы со звуком в статье «Звуковые эффекты в виртуальных мирах». Ссылки на другие материалы можно найти в обзорной статье.

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

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

User Interface (UI) очень важен, и при разработке наших VR-проектов мы должны уделять внимание этому аспекту.

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

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

Идеальный UI должен быть понятным, неброским и интуитивным, чтобы действия сами напрашивались. Как достичь этой высокой цели в VR-разработке, мы рассмотрим далее более подробно.

Осязаемый User Interface

image

Лучше всего, когда пользовательские элементы интегрированы в 3D мир. В классических 2D интерфейсах очень важно создать абстракцию внешнего вида и взаимодействия. В VR для этого нет никаких причин — напротив: мы улучшаем взаимодействие, делая интерфейс конкретным и осязаемым.

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

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

Эти особенности бросают вызов нам, как дизайнерам. Мы должны расстаться со старым образом мышления и прежними знаниями и найти новые идеи и концепции. В VR-мире нет кнопки «ОК», как, например, в классических 3D играх, тут мы можем нажимать собственными руками. И количество патронов в шутере не может быть просто отображено на дисплее, их число должно быть видно в магазине автомата.

Возможно, не должно быть вовсе никаких уведомлений и мы должны сами смотреть в магазин. Anton Hand показывает в своих еженедельных видео захватывающее изменение взаимодействия при помощи контроллеров в виртуальном мире:

Скопировать из реальной жизни

Чтобы перейти на новый образ мышления, полезно воспринимать повседневную жизнь, как образец для подражания. Как ты взаимодействуешь каждый день с миром и различными объектами?

Если ты будешь внимателен, ты быстро заметишь, что User Interfaces есть везде, а не только в цифровом мире: это относится как к твоему тостеру, так и к двери дома. В реальном мире тоже существуют хорошие и плохие интерфейсы.

Скорее всего, ты уже встречался с плохим UI двери. Она не предоставляет правильную коммуникацию, непонятно, в каком направлении она должна быть открыта.

Учитывая этот факт, важно, чтобы виртуальные интерфейсы обеспечивали обратную связь.

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

В виртуальном мире может быть полезно сделать эти оповещения ярче, чем в реальном мире.

Прежде всего интересны такие механические элементы, как кнопки, рычаги, переключатели, вентили и выдвижные механизмы.

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

Точное воспроизведение физики не всегда оправдано

Программистам быстро приходит в голову прибегнуть к симуляции физики. Все современные движки уже оснащены соответствующими модулями.

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

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

Если ты работаешь с Unity3D, то ты должен хотя бы раз заглянуть на NewtonVR Framework. Open Source Project предлагает классную основу для взаимодействий в VR и резюмирует почти весь опыт Tomorrow Today Labs Teams.

Важна согласованность

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

Это означает, что если в твоем VR-мире какой-то объект можно брать и перетаскивать, то это должно относиться ко всем объектам.

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

В таких случаях ты должен заранее очень точно продумать устройство твоего мира и не расставлять элементы, с которыми нельзя взаимодействовать. Еще одно решение этой проблемы — позиционировать статичные объекты так, чтобы они были расположены вне зоны досягаемости.

Примеры

Многое в этой теме абстрактно, поэтому я бы хотел показать несколько конкретных примеров хорошего взаимодействия в VR.

В игре Fantastic Contraptions мы тут же найдем две прекрасные идеи. Материалы, которые нужны игрокам для их конструкций, они получают от летающей кошки Neko.

Чтобы во время игры перейти в основное меню, не предусмотрено никакой кнопки, нужно просто надеть специальный шлем (объект в игре), благодаря этому ты попадаешь в меню. Начать игру снова легко: снимите шлем.

Инвентарь в игре The Gallery от Cloudhead Games также очень увлекателен: ты поворачиваешься и вытаскиваешь свой виртуальный рюкзак вперед. Там можно найти весь свой инвентарь. Рюкзак тебе больше не нужен? Просто верни его на спину.

В Hover Junkers игроки используют своего рода навигационную 3D панель, чтобы управлять кораблем, одновременно с этим они могут воевать с врагами с помощью другой руки.

Немного абстрактней, к примеру, меню выбора в Tilbrush. Оно очень простое с точки зрения взаимодействия и интуитивно для любого пользователя.

Глубже погрузимся в тему

Тема User Interface также зависит от Game Design. Этой большой теме скоро будет посвящена еще одна статья.

Дизайнеры из Leap Motion уже поэкспериментировали в области VR UI и собрали большой опыт, которым они постоянно делятся в своем блоге и в видео. Если ты хочешь более серьезно заняться этой темой, я очень советую тебе ознакомиться с данным материалом.

Интересный подход предлагает и Brownboxing. Взаимодействие в VR смоделировано бумагой и коробками. Так идеи можно протестировать очень быстро и без программирования. А вот и пример:

Очень информативными являются оба видео и диссертация Mike Alger. В основном он концентрируется на возможном взаимодействии операционных систем и браузеров с VR, он прекрасно представил свои размышления:

А тут ты найдешь его второе видео.

Я надеюсь эта первая экскурсия в мир взаимодействия с VR вдохновила тебя и придала решимости, так как твои представления о взаимодействии нужно расширять, сильно расширять, и экспериментировать с этим.

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

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

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

Автор: htc-cs

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js