Данная статья является четвертой в цикле про качественную разработку VR-проектов. Ранее мы уже изучили основы работы со звуком в статье «Звуковые эффекты в виртуальных мирах». Ссылки на другие материалы можно найти в обзорной статье.
User Interface — это прямое взаимодействие между человеком и машиной. Это средство, с помощью которого компьютер оповещает нас о возможностях, а мы передаем ему свои намерения.
Качество и предсказуемость общения в значительной степени влияют на то, как мы воспринимаем ПО и как быстро достигаем целей.
User Interface (UI) очень важен, и при разработке наших VR-проектов мы должны уделять внимание этому аспекту.
Особенно интересны в разработке виртуальной реальности новые способы взаимодействия: положение головы, направление взгляда и контроллеры движения на руках. Они предлагают нам, как разработчикам, новые варианты реализации интерфейса.
Но также возникают и новые проблемы, так как взаимодействие с этими устройствами намного сложнее — к примеру, клик мышкой намного проще распознать нежели неявный жест на контроллере.
Идеальный UI должен быть понятным, неброским и интуитивным, чтобы действия сами напрашивались. Как достичь этой высокой цели в VR-разработке, мы рассмотрим далее более подробно.
![image](https://habrastorage.org/r/w780q1/getpro/habr/post_images/695/a4e/fcc/695a4efcc396b8424756181948659434.jpg)
Лучше всего, когда пользовательские элементы интегрированы в 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-разработчиках.
User Interface — это прямое взаимодействие между человеком и машиной. Это средство, с помощью которого компьютер оповещает нас о возможностях, а мы передаем ему свои намерения.
Качество и предсказуемость общения в значительной степени влияют на то, как мы воспринимаем ПО и как быстро достигаем целей.
User Interface (UI) очень важен, и при разработке наших VR-проектов мы должны уделять внимание этому аспекту.
Особенно интересны в разработке виртуальной реальности новые способы взаимодействия: положение головы, направление взгляда и контроллеры движения на руках. Они предлагают нам, как разработчикам, новые варианты реализации интерфейса.
Но также возникают и новые проблемы, так как взаимодействие с этими устройствами намного сложнее — к примеру, клик мышкой намного проще распознать нежели неявный жест на контроллере.
Идеальный UI должен быть понятным, неброским и интуитивным, чтобы действия сами напрашивались. Как достичь этой высокой цели в VR-разработке, мы рассмотрим далее более подробно.
Осязаемый User Interface
![image](https://habrastorage.org/getpro/habr/post_images/695/a4e/fcc/695a4efcc396b8424756181948659434.jpg)
Лучше всего, когда пользовательские элементы интегрированы в 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-разработчиках.