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