VR开发的烦恼——范围限制
本文章由cartzhang编写,转载请注明出处。 所有权利保留。
文章链接:http://blog.csdn.net/cartzhang/article/details/52230865
作者:cartzhang
VR中的范围限制
一、问题
在VR的开发中,特别是需要通过玩家真实移动来进行游戏的游戏。目前遇到了一个恼人的问题,
就是玩家的移动和物体碰撞。
一个是要求开放,自由自在;一个要求要在范围内,不要出圈啊!!
这样就造成,要是添加碰撞,玩家遇到墙,游戏中的墙就会在物理的作用下,迅速的抖动。你们都知道,抖动是VR的死敌。(说到这里,多说两句,策划居然要求在游戏中开枪的时候,要求抖动镜头——被反驳回了,我们为了让镜头静止付出的各种努力你居然无视,还要添加认为抖动。最后妥协了一个其他方法,没有那么晕,但是还是不要尝试,所以就不写出来了)
二、怎么办?
那还要有碰撞,还要有自由。怎么办呢?
在玩家定位的过程中,游戏中有墙体,实际中的墙体也存在。玩家容易撞墙,但是还容易卡在墙的中间。玩家若强制被复位,这时候在物理位置就会造成偏移。要是玩家在一个场景中,肯定会造成在开始的时候还可以玩,一旦时间久了或数据准确性下降,就会产生玩家根本到达不了虚拟的指定地点,完不成游戏!!
太尴尬了!!
那怎么办呢?
就跟Steam的游戏一样,使用虚拟的网格作为类似墙体,来提示玩家的你已经出了识别区域或活动区域。
这个的好处是就是相对容易实现,添加代码,在代码里面做做判断玩家位置或相对起始点的移动距离,来显示虚拟网格。
不足能就是打断游戏的连贯性,这个容易打破VR的沉浸感,正爽呢,出来个玩意吓人,出戏。真是惹人恼啊!!
还有那就是不要碰撞了。
没有碰撞,玩家穿墙明显,体验诡异。能不能就是可以穿墙的游戏,作为乐趣呢?这个就是游戏设计的意义了。要是设计一个躲猫猫的游戏,那用这个穿墙术也可能会点意思啊!!
再有就是现在大多数的处理方式,不要设计这种实体的墙体之类的碰撞包围盒子,用一个平台或限制活动范围来处理,这当然也需要根据游戏和实际需求来做。
目前就想到了这几个,想法就这样。
————THE—————-END————————
若有问题,请随时联系!!!
只是看起来没有了路!!
VR开发的烦恼——范围限制的更多相关文章
- VR开发中性能问题—OculusWaitForGPU
http://blog.csdn.net/cartzhang/article/details/50788894 VR开发中性能问题-OculusWaitForGPU 本文章由cartzhang编写,转 ...
- 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件
欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...
- 关于VR开发中的穿墙问题随想
在VR开发中,用户将以第一人称的视角进入虚拟世界,即用户同时身处两个坐标系:1. 现实世界坐标系(如房间的坐标系),用户的身体处于这个坐标系 2. VR世界坐标系,用户的感官处于这个坐标系,即用户觉得 ...
- VR开发 VR development
VR开发 VR development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com Ho ...
- 使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)
随着Unity5.1的发布,之前的Oculus Rift和Gear VR 开发流程发生了巨大的变化,这也算是小白鼠们必须付出的代价了~ 那么Unity5.1和Oculus的整合究竟发生了哪些变化,对开 ...
- VR开发2015年终总结
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50617605 作者:car ...
- Gear VR开发
下载安装Unity开发工具,要求Unity 5.3.0 或更高版本 下载Oculus签名,做Gear VR交互功能模块.关于输入交互,可以下载VR Samples(地址:https:/ ...
- Unity3D学习笔记(三十八):VR开发
设备安装:HTC View 驱动安装:Steam - SteamVR 设备激活 Unity开发 下载安装开发包 Asset Store - SteamVR Plugin SteamVRDemo1- ...
- Unity 的OCulus VR开发遇到的坑---OC版本差异
我作为Unity新人,没有用过Unity5之前的任何版本,不熟悉任何操作.所以,就根据官方推荐,使用了5.1.1版本,然后根据官方版本对应推荐,果断选择下载了PC端的OC的0.6.0.1版本,对应的U ...
随机推荐
- mysql主给备赋予权限时报错,MySQL [Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause
https://www.cnblogs.com/skymyyang/p/7551646.html 在my.cnf 里面设置sql_mode='STRICT_TRANS_TABLES,NO_ZERO_I ...
- java wait(),notify(),notifyAll()
wait()的作用是使当前执行代码的线程进行等待,此方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所带的代码处停止执行,直到接到通知或被中断位置.在调用wai ...
- Spring 基础知识 - 依赖注入
所谓的依赖注入是指容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖. 依赖注入主要目的是为了解耦,体现了一种“组合”的理念. 无论是xml配置.注解配置还是Ja ...
- CF1088D Ehab and another another xor problem
思路: 根据异或的性质一位一位来搞.参考了https://blog.lucien.ink/archives/362/ 实现: #include <bits/stdc++.h> using ...
- Kendo 单页面应用(一)概述
Kendo 单页面应用(一)概述 Kendo 单页面应用(Single-Page Application,缩写为 SPA)定义了一组类用于简化 Web 应用(Rich Client)开发,最常见的单页 ...
- [转载]SAP预装服务器全编译
一.说明 SAP系统初始安装后,每当事物码第一次运行时,GUI的左下角会显示编译的状态(如图 1所示),费时很多尤其是对于一些业务内容很丰富的事物码如ME21N.VA01. 图 1 编译状态 产生编译 ...
- python os,sys模块的使用
首先,os模块是用来与操作系统进行交互的模块,可以对操作系统上的一些东西进行操作 而sys是用来对解释器进行一些操作的 一.os os.getcwd() 获取当前工作目录,即当前python脚本工作的 ...
- [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23)
本文出处 [中文翻译] ASP.NET 5 简介(Introducing ASP.NET 5,原作ScottGu 2015/2/23) 这是我的文章备份 http://www.dotblogs.co ...
- [OpenMP] 并行计算入门
OpenMP并行计算入门 个人理解 OpenMP是一种通过共享内存并行系统的多处理器程序设计的编译处理方案,通过预编译指令告诉编译器哪些代码块需要被并行化,通过拷贝代码块实现并行程序.对于循环的并行化 ...
- 学习jQuery的免费资源:电子书、视频、教程和博客
jQuery毫无疑问是目前最流行的JavasScript库.排名最前的网站中70%使用了jQuery,并且jQuery也成为了Web开发的标准.如果你想找Web开发方面的工作,了解jQuery会大大的 ...