Руки в виртуальной реальности
Как заставить пользователя почувствовать связь с виртуальной средой.
Денис Тамбовцев, сооснователь и креативный директор компании Cerevrum, занимающейся разработкой VR-проектов, написал колонку о правильной реализации рук персонажа. Статья была опубликована в пользовательском разделе DTF и отредактирована.
В прошлой статье на DTF я рассказывал о различных вариантах отображения аватаров в VR. Один из них — частичная визуализация, когда показаны лишь кисти рук персонажа. Это решает проблему несоответствия движений реального тела пользователя и виртуального аватара из-за ограничений систем трекинга потребительских версий VR-систем (Oculus Rift, Vive, PSVR определяют в пространстве лишь положение головы и кистей рук, держащих моушн-контроллеры).
При частичной визуализации виртуальные руки и есть аватар пользователя. Именно они создают эффект присутствия в виртуальной среде, через них создаётся связь между игроком и сеттингом, а также самой историей.
Несмотря на кажущуюся простоту создания, в разработке виртуальных рук есть ряд интересных нюансов.
Руки и объекты
Сейчас есть два основных подхода к процессу взятия объекта виртуальной рукой. В одном случае (преимущественно в эксклюзивах Oculus) при взятии какого-либо объекта, он помещается в виртуальную руку в нужном положении. Второй вариант — это замена виртуальной руки на сам объект.
Предполагается, что первый вариант создаёт больший эффект присутствия, но возможно, что это справедливо лишь в случае Oculus Touch из-за их эргономики. В подобных проектах для Vive с их текущей версией контроллера (по моему субъективному опыту) иногда возникает эффект, будто ты держишь не объект виртуальной рукой, а саму виртуальную руку, держащую объект. Вероятно, дело в специфических случаях использования и определённых углах поворота объекта/руки.
При этом в варианте с показом только объекта в руке нет ощущения исчезновения аватара или просто потери с ним связи (после исчезновения виртуальных рук), так как в этот момент весь фокус переносится на сам объект.
Также второй вариант гораздо проще в разработке, так как не нужно создавать состояния взятия объекта рукой, анимировать множество положений кисти и проводить длительные тесты стабильности работы системы.
Реализм — это плохо
При попытке создать фотореалистичную руку при частичной визуализации, максимум чего вы добьетесь — это создание «восковой» модели, которая будет казаться обрубком и вызывать неприязнь или даже отвращение.
Реалистичный фрагмент руки повторяющий ваши движения это прямая дорога в «зловещую долину». Поэтому часто руки показывают либо в виде своеобразных перчаток, либо как-то стилизуют в рамках сеттинга (руки робота, призрака и так далее).
Окончание рук
Вне зависимости от визуального стиля в котором выполнены руки, остаётся открытым вопрос — как именно обыграть их окончание? Попытка просто срезать геометрию выглядит не очень хорошо даже при мультяшной стилизации.
Часто встречается либо уход в прозрачность, либо использование эффекта «пустых перчаток», когда создают перчатку, которая принимает форму руки, но внутри неё ничего нет, если посмотреть со стороны манжеты. Подобная условность хорошо решает данный вопрос и фактически не сказывается на эффекте погружения.
Прозрачность
Также некоторые разработчики изображают руки прозрачными, как в проекте Dead and Buried. Делается это не только в рамках сеттинга — прозрачность решает проблему эфемерности виртуальной руки, обосновывая её визуально. Дело в том, что в проектах для очков виртуальной реальности нельзя нарушать синхронизацию между положением реальной и виртуальной руки (это сказывается на ощущении обладания виртуальной конечностью), поэтому если виртуальная рука пересечёт какую-либо геометрию в сцене, она пройдет через неё насквозь. И если рука визуально полупрозрачна, то это не вызывает диссонанса на уровне логики.
Один из вариантов решения данного вопроса с «материальными» руками заключается в создании эффекта прозрачности во время пересечения геометрии.
Обратная связь (тени и вибрация)
У нас в Cerevrum Inc. на нескольких проектах возникал вопрос — визуализировать ли тени от рук? У теней есть два очень важных плюса. Они помогают в определении позиции рук в пространстве, а также создают связь между руками и виртуальной средой, а так как пользователь ассоциирует виртуальные руки с собой, то усиливается связь между виртуальной средой и самим пользователем.
Это касается и активного использования вибрации контроллера в качестве обратной связи при пересечении геометрии, взятии объектов и других подобных ситуациях.
Это не все специфические моменты при создании виртуальных рук пользователя. Сама тема ещё не достаточно хорошо изучена, какие-то стандарты реализации только намечаются, и разработчики продолжают свои исследования и эксперименты по созданию наиболее комфортного пользовательского опыта.