本文章由cartzhang编写,转载请注明出处。 所有权利保留。

文章链接:http://blog.csdn.net/cartzhang/article/details/52230865

作者:cartzhang

VR中的范围限制

一、问题

在VR的开发中,特别是需要通过玩家真实移动来进行游戏的游戏。目前遇到了一个恼人的问题,

就是玩家的移动和物体碰撞。

一个是要求开放,自由自在;一个要求要在范围内,不要出圈啊!!

这样就造成,要是添加碰撞,玩家遇到墙,游戏中的墙就会在物理的作用下,迅速的抖动。你们都知道,抖动是VR的死敌。(说到这里,多说两句,策划居然要求在游戏中开枪的时候,要求抖动镜头——被反驳回了,我们为了让镜头静止付出的各种努力你居然无视,还要添加认为抖动。最后妥协了一个其他方法,没有那么晕,但是还是不要尝试,所以就不写出来了)

二、怎么办?

那还要有碰撞,还要有自由。怎么办呢?

在玩家定位的过程中,游戏中有墙体,实际中的墙体也存在。玩家容易撞墙,但是还容易卡在墙的中间。玩家若强制被复位,这时候在物理位置就会造成偏移。要是玩家在一个场景中,肯定会造成在开始的时候还可以玩,一旦时间久了或数据准确性下降,就会产生玩家根本到达不了虚拟的指定地点,完不成游戏!!

太尴尬了!!



那怎么办呢?

就跟Steam的游戏一样,使用虚拟的网格作为类似墙体,来提示玩家的你已经出了识别区域或活动区域。

这个的好处是就是相对容易实现,添加代码,在代码里面做做判断玩家位置或相对起始点的移动距离,来显示虚拟网格。

不足能就是打断游戏的连贯性,这个容易打破VR的沉浸感,正爽呢,出来个玩意吓人,出戏。真是惹人恼啊!!



还有那就是不要碰撞了。

没有碰撞,玩家穿墙明显,体验诡异。能不能就是可以穿墙的游戏,作为乐趣呢?这个就是游戏设计的意义了。要是设计一个躲猫猫的游戏,那用这个穿墙术也可能会点意思啊!!



再有就是现在大多数的处理方式,不要设计这种实体的墙体之类的碰撞包围盒子,用一个平台或限制活动范围来处理,这当然也需要根据游戏和实际需求来做。

目前就想到了这几个,想法就这样。

————THE—————-END————————



若有问题,请随时联系!!!



只是看起来没有了路!!

VR开发的烦恼——范围限制的更多相关文章

  1. VR开发中性能问题—OculusWaitForGPU

    http://blog.csdn.net/cartzhang/article/details/50788894 VR开发中性能问题-OculusWaitForGPU 本文章由cartzhang编写,转 ...

  2. 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件

    欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...

  3. 关于VR开发中的穿墙问题随想

    在VR开发中,用户将以第一人称的视角进入虚拟世界,即用户同时身处两个坐标系:1. 现实世界坐标系(如房间的坐标系),用户的身体处于这个坐标系 2. VR世界坐标系,用户的感官处于这个坐标系,即用户觉得 ...

  4. VR开发 VR development

    VR开发 VR development 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: 313134555 @qq.com Ho ...

  5. 使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)

    随着Unity5.1的发布,之前的Oculus Rift和Gear VR 开发流程发生了巨大的变化,这也算是小白鼠们必须付出的代价了~ 那么Unity5.1和Oculus的整合究竟发生了哪些变化,对开 ...

  6. VR开发2015年终总结

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/50617605 作者:car ...

  7. Gear VR开发

    下载安装Unity开发工具,要求Unity 5.3.0 或更高版本         下载Oculus签名,做Gear VR交互功能模块.关于输入交互,可以下载VR Samples(地址:https:/ ...

  8. Unity3D学习笔记(三十八):VR开发

    设备安装:HTC View   驱动安装:Steam - SteamVR 设备激活 Unity开发 下载安装开发包 Asset Store - SteamVR Plugin SteamVRDemo1- ...

  9. Unity 的OCulus VR开发遇到的坑---OC版本差异

    我作为Unity新人,没有用过Unity5之前的任何版本,不熟悉任何操作.所以,就根据官方推荐,使用了5.1.1版本,然后根据官方版本对应推荐,果断选择下载了PC端的OC的0.6.0.1版本,对应的U ...

随机推荐

  1. 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 ...

  2. java wait(),notify(),notifyAll()

    wait()的作用是使当前执行代码的线程进行等待,此方法是Object类的方法,该方法用来将当前线程置入“预执行队列”中,并且在wait()所带的代码处停止执行,直到接到通知或被中断位置.在调用wai ...

  3. Spring 基础知识 - 依赖注入

    所谓的依赖注入是指容器负责创建对象和维护对象间的依赖关系,而不是通过对象本身负责自己的创建和解决自己的依赖. 依赖注入主要目的是为了解耦,体现了一种“组合”的理念. 无论是xml配置.注解配置还是Ja ...

  4. CF1088D Ehab and another another xor problem

    思路: 根据异或的性质一位一位来搞.参考了https://blog.lucien.ink/archives/362/ 实现: #include <bits/stdc++.h> using ...

  5. Kendo 单页面应用(一)概述

    Kendo 单页面应用(一)概述 Kendo 单页面应用(Single-Page Application,缩写为 SPA)定义了一组类用于简化 Web 应用(Rich Client)开发,最常见的单页 ...

  6. [转载]SAP预装服务器全编译

    一.说明 SAP系统初始安装后,每当事物码第一次运行时,GUI的左下角会显示编译的状态(如图 1所示),费时很多尤其是对于一些业务内容很丰富的事物码如ME21N.VA01. 图 1 编译状态 产生编译 ...

  7. python os,sys模块的使用

    首先,os模块是用来与操作系统进行交互的模块,可以对操作系统上的一些东西进行操作 而sys是用来对解释器进行一些操作的 一.os os.getcwd() 获取当前工作目录,即当前python脚本工作的 ...

  8. [中文翻译] 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 ...

  9. [OpenMP] 并行计算入门

    OpenMP并行计算入门 个人理解 OpenMP是一种通过共享内存并行系统的多处理器程序设计的编译处理方案,通过预编译指令告诉编译器哪些代码块需要被并行化,通过拷贝代码块实现并行程序.对于循环的并行化 ...

  10. 学习jQuery的免费资源:电子书、视频、教程和博客

    jQuery毫无疑问是目前最流行的JavasScript库.排名最前的网站中70%使用了jQuery,并且jQuery也成为了Web开发的标准.如果你想找Web开发方面的工作,了解jQuery会大大的 ...