Руки в виртуальной реальности

Как заставить пользователя почувствовать связь с виртуальной средой.

Денис Тамбовцев, сооснователь и креативный директор компании Cerevrum, занимающейся разработкой VR-проектов, написал колонку о правильной реализации рук персонажа. Статья была опубликована в пользовательском разделе DTF и отредактирована.

​

В прошлой статье на DTF я рассказывал о различных вариантах отображения аватаров в VR. Один из них — частичная визуализация, когда показаны лишь кисти рук персонажа. Это решает проблему несоответствия движений реального тела пользователя и виртуального аватара из-за ограничений систем трекинга потребительских версий VR-систем (Oculus Rift, Vive, PSVR определяют в пространстве лишь положение головы и кистей рук, держащих моушн-контроллеры).

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

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

Руки и объекты

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

В Robo Recall руки держат объекты

Предполагается, что первый вариант создаёт больший эффект присутствия, но возможно, что это справедливо лишь в случае Oculus Touch из-за их эргономики. В подобных проектах для Vive с их текущей версией контроллера (по моему субъективному опыту) иногда возникает эффект, будто ты держишь не объект виртуальной рукой, а саму виртуальную руку, держащую объект. Вероятно, дело в специфических случаях использования и определённых углах поворота объекта/руки.

Рука пропадает при взятии объекта

При этом в варианте с показом только объекта в руке нет ощущения исчезновения аватара или просто потери с ним связи (после исчезновения виртуальных рук), так как в этот момент весь фокус переносится на сам объект.

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

Реализм — это плохо

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

Обратите внимание на вид руки, берущей ключ

Реалистичный фрагмент руки повторяющий ваши движения это прямая дорога в «зловещую долину». Поэтому часто руки показывают либо в виде своеобразных перчаток, либо как-то стилизуют в рамках сеттинга (руки робота, призрака и так далее).

Окончание рук

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

Пример обычного среза геометрии без какой-либо стилизации

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

Использование фейда (ухода в прозрачность)
Пример с перчатками

Прозрачность

Также некоторые разработчики изображают руки прозрачными, как в проекте Dead and Buried. Делается это не только в рамках сеттинга — прозрачность решает проблему эфемерности виртуальной руки, обосновывая её визуально. Дело в том, что в проектах для очков виртуальной реальности нельзя нарушать синхронизацию между положением реальной и виртуальной руки (это сказывается на ощущении обладания виртуальной конечностью), поэтому если виртуальная рука пересечёт какую-либо геометрию в сцене, она пройдет через неё насквозь. И если рука визуально полупрозрачна, то это не вызывает диссонанса на уровне логики.

Один из вариантов решения данного вопроса с «материальными» руками заключается в создании эффекта прозрачности во время пересечения геометрии.

Обратная связь (тени и вибрация)

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

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

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

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

88
4 комментария

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

Это возможно, но при попытки создания реалистичной модели аватара для популярных систем вроде Oculus Rift, Vive или PSVR будут возникать расхождения между реальным положение тела пользователя и виртуальным. Это можно попытаться сгладить за счет качествественного рига и анимации аватара, но полностью убрать вряд ли получится (для этого используются другие системы трекинга или же просто больше датчиков, как тут https://youtu.be/Khoer5DpQkE).