Виртуальная реальность привносит новые требования к игровому дизайну, накладывает собственные ограничения, одно из них — это тот факт, что пользователя (пока) нельзя остановить перед виртуальной стеной.
Не нужно быть терминатором для того, чтобы пройти через виртуальную 50-ти сантиметровую стальную дверь сейфа. Это может стать проблемой, когда именно стена представляет собой сложность, с которой должен разобраться пользователь.
В традиционных «плоских» 3D играх такую проблему решают очень просто: цифровой персонаж останавливается, и ему не разрешают пройти через стальную дверь. И это не вызывает никаких возражений, так как раньше у нас не было никакой связи реального и цифрового миров, но в VR все не так.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/b48/c62/9db/b48c629db2d189d7afde44130d0e231d.png)
Попытавшись продолжать пользоваться этим принципом в виртуальной реальности, быстро становится ясно, что это плохая идея: контроль над положением в виртуальном пространстве передается пользователю — и как только это произошло, видимая картинка (VR) перестает соответствовать тактильным (настоящим) движениям головы и тела, и это приводит к известной нам «Motion Sickness», проще говоря, тебя начинает тошнить.
Одно из возможных решений — трюк с порталом в стене. При таком подходе мы все же разрешаем проходить через стены, но это выглядит, как портал в пустую комнату. При взгляде назад виден другой проход в только что покинутую комнату. Сделав шаг назад, к этому порталу, мы опять переносимся за стену.
В нашем примере с сейфом при телепортации ты переносишься через стальную дверь, но не в сейф, а в какое-то пустое абстрактное помещение, а сзади будет портал с возможностью снова появиться перед сейфом. В зависимости от сценария игры или твоего желания этот метод может быть скорректирован соответствующим образом.
![image](https://habrastorage.org/r/w1560/getpro/habr/post_images/21a/239/825/21a239825cc8219e5e270d8e1ef1973f.png)
Благодаря этой технике игроки не смогут жульничать и портить себе игровой процесс, но мы по-прежнему задаем позицию и ориентацию головы в пространстве. Тошнота никуда не уходит.
Техническая реализация в таких движках, как Unity, Unreal или Source довольно проста. Можно один раз запрограммировать портал, как функцию, а потом вызывать ее для соответствующих стен, дверей и других объектов.
Этот эффект можно сравнить с системой сопровождения («Chaperone») от SteamVR: одна из стен, находящихся в поле зрения, исчезает незадолго до перехода в следующую сцену, если игрок подходит к ней слишком близко.
Однако в большинстве случаев все происходит так: посетители виртуальных миров не хотят таранить головой виртуальные стены. Наблюдаемое заставляет верить в реальность виртуального мира на подсознательном уровне так сильно, что человеку придется заставить или преодолеть себя на психологическом уровне, чтобы пройти через твердый материал виртуального мира.
В будущем такие техники, так называемые «best practices», внедрят в каждый движок. Это избавит VR-разработчиков от лишних проблем и дополнительной работы.
Ты столкнулся с другими проблемами при разработке своих виртуальных миров? Или сам нашел классное решение? Тогда пиши мне, я буду рад твоему сообщению.
Не нужно быть терминатором для того, чтобы пройти через виртуальную 50-ти сантиметровую стальную дверь сейфа. Это может стать проблемой, когда именно стена представляет собой сложность, с которой должен разобраться пользователь.
В традиционных «плоских» 3D играх такую проблему решают очень просто: цифровой персонаж останавливается, и ему не разрешают пройти через стальную дверь. И это не вызывает никаких возражений, так как раньше у нас не было никакой связи реального и цифрового миров, но в VR все не так.
![image](https://habrastorage.org/getpro/habr/post_images/b48/c62/9db/b48c629db2d189d7afde44130d0e231d.png)
Классические решения не для VR
Попытавшись продолжать пользоваться этим принципом в виртуальной реальности, быстро становится ясно, что это плохая идея: контроль над положением в виртуальном пространстве передается пользователю — и как только это произошло, видимая картинка (VR) перестает соответствовать тактильным (настоящим) движениям головы и тела, и это приводит к известной нам «Motion Sickness», проще говоря, тебя начинает тошнить.
Одно из возможных решений — трюк с порталом в стене. При таком подходе мы все же разрешаем проходить через стены, но это выглядит, как портал в пустую комнату. При взгляде назад виден другой проход в только что покинутую комнату. Сделав шаг назад, к этому порталу, мы опять переносимся за стену.
В нашем примере с сейфом при телепортации ты переносишься через стальную дверь, но не в сейф, а в какое-то пустое абстрактное помещение, а сзади будет портал с возможностью снова появиться перед сейфом. В зависимости от сценария игры или твоего желания этот метод может быть скорректирован соответствующим образом.
![image](https://habrastorage.org/getpro/habr/post_images/21a/239/825/21a239825cc8219e5e270d8e1ef1973f.png)
Благодаря этой технике игроки не смогут жульничать и портить себе игровой процесс, но мы по-прежнему задаем позицию и ориентацию головы в пространстве. Тошнота никуда не уходит.
Техническое решение с помощью порталов
Техническая реализация в таких движках, как Unity, Unreal или Source довольно проста. Можно один раз запрограммировать портал, как функцию, а потом вызывать ее для соответствующих стен, дверей и других объектов.
Этот эффект можно сравнить с системой сопровождения («Chaperone») от SteamVR: одна из стен, находящихся в поле зрения, исчезает незадолго до перехода в следующую сцену, если игрок подходит к ней слишком близко.
Однако в большинстве случаев все происходит так: посетители виртуальных миров не хотят таранить головой виртуальные стены. Наблюдаемое заставляет верить в реальность виртуального мира на подсознательном уровне так сильно, что человеку придется заставить или преодолеть себя на психологическом уровне, чтобы пройти через твердый материал виртуального мира.
В будущем такие техники, так называемые «best practices», внедрят в каждый движок. Это избавит VR-разработчиков от лишних проблем и дополнительной работы.
Обмен опытом
Ты столкнулся с другими проблемами при разработке своих виртуальных миров? Или сам нашел классное решение? Тогда пиши мне, я буду рад твоему сообщению.