OCulus Rift 游戏开发六原则
本文章由cartzhang编写,转载请注明出处。 所有权利保留。
文章链接:http://blog.csdn.net/cartzhang/article/details/46685477
作者:cartzhang
OCulus Rift 游戏开发六原则
你是一个游戏开发者?在你的生活中,你涉及游戏开发的那些点呢?你是否听说过Oculus Rift VR系统呢?你是否赞同业内的一些声音,说Oculus Rift将会是游戏的未来?
当我们游戏开发插件或一些工程时候,这有一些点,需要注意或弄清楚的。
虚幻4引擎已经集成了Oculus Rift开发,你只需从网上下载Oculus的SDK,插入Oculus设备,虚幻4引擎可以自动设备。要是你认为就这么简单的话,那你完全错了。这就是生活啊!
为保证你开发Oculus游戏的可玩性,有一些注意事项你需要了解:
1. 玩家的移动
2. 游戏帧率FPS
3. 适合HMD(头戴设备,本文中指的是Oculus Rift)的关卡设计
4. 针对Oculus
5. 玩家的舒适度
6. Rift分辨率
一、 玩家的移动
Ok,这个很基本。在头戴设备的射击游戏中,有三种方法可以使玩家移动:
——玩家朝着他看的方向移动,包含Oculus的方向
——玩家移动由鼠标方向确定,但是Oculus Rift可以实现相机偏移,这样玩家玩家可以往边上看,但是移动方向不变。就像是鼠标控制移动方向,头却被Oculus Rift 控制。想象一声机甲战士。
——玩家移动仅由玩家看的方向控制,但是当你使用头盔看的角度大于60度时,你可以旋转角色。
前两个可以设置玩家相机,是否跟随HMD的方向旋转。第三个选项你可以跟随HMD方向,并添加蓝图代码来控制相机(当HMD旋转角度大于±60度时,旋转角色角度)。
如下图所示:

二、 帧率
Oculus Rift DK1官方建议帧率为60fps,这就意味着当帧率低于60时,在玩游戏的过程中,玩家体验会一团糟。
另一方面,Oculus Rift DK2官方建议帧率为75fps。这就意味游戏有足够的宽容度来满足在不同的电脑上运行,并保证至少高于值(70,85FPs)10FPS,也意味着更多的硬件开销。
你可以使用以下手段来提高你游戏的宽容度:垂直同步(V-Sync),HMD分辨率(HMD resolution),纹理质量(texture quality), shadow quality,特效质量(effects qualit)和 post-process 质量。
控制台命令:“hmd sp 值”用来设置显示屏百分比-HMD的分辨率,在没有HMD插入时候,此命令不起作用,所以要确保包含此选项来方便玩家使用。hmd sp 100意思就是玩家设置为100%,由于一些原因,它没有缺省值。
译者说明:DK2缺省为135%。
三、 关卡设计
现在,除了这些技术选项外,你还需要考虑到的就是关卡的设计。东西不要显的太小。另外,在当前的Oculus Rift阶段,不要让玩家读太多东西,因为分辨率真是太低了,太多的阅读,玩家很难集中注意力在小的物体或文字上面。这也适用于GUI。经验表明3维的GUI要玩家很容易的瞄准按键是最好的选择,等等。
四、 针对Oculus
针对Oculus这个建议可能有点搞笑。因为你将会计算HMD相对于玩家位置的偏移。Oculus本身内置相机有它自己的跟踪空间(相对位置和旋转),而相机本身与渲染点有偏移。
这就意味着你需要从相机位置发个射线,设置相机的开始位置加上HMD的偏移位置。对于旋转来说,最好的方法是从相机对象或相机控制者取得一个向前的向量。
设置HMD位置:
HMD射线跟踪:

五、 玩家的舒适度
玩家的舒适度意味着在没有玩家输入的时候,不要过多的移动玩家。这就意味着不要有“走路颠簸”或走路时摆动。不要让玩家在莫名的外力影响下移动等等。若你做这些事情,一些 玩家可能会觉得眩晕或恶心。相信我,我们已经做过这些。
六、 Rift的分辨率
目前Rift的分辨率很难让人注意到游戏中小的细节或文字。所以一些小的重要的对象,一定要放在HMD位置的前方,这样玩家就可以容易看到他们。同理对于三维的文字或带文字的对象。将来分辨率或DPI会提高,暂时呢只能这样。
我希望这些小小的技巧可以帮助到向我们一样遇到问题的人。Oculus游戏的开发也许当然很混乱和令人沮丧,但是沉下心来,会觉得很有意思。实话实说,为最新的电子游戏技术开发电子游戏感觉特别棒。
-
若有问题,请随时联系!
非常感谢!
OCulus Rift 游戏开发六原则的更多相关文章
- UE4关于Oculus Rift (VR)开发忠告
转自:http://blog.csdn.net/cartzhang/article/details/42493843 UE4虚拟现实 实现的注意事项 https://docs.unrealengine ...
- 【Visual C++】游戏开发五十六 浅墨DirectX教程二十三 打造游戏GUI界面(一)
本系列文章由zhmxy555(毛星云)编写,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/16384009 作者:毛星云 ...
- oculus rift 开发(一)
我使用的是oculus rift DK2,也就是开发人员版.在開始使用前.要确保几件事: 一.准备工作 1.pc配置.配置越好执行越流畅.反之会使帧率低.伴随的体验就是眩晕恶心,甚至无法执行. 官方推 ...
- 《MFC游戏开发》笔记六 图像双缓冲技术:实现一个流畅的动画
本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9334121 作者:七十一雾央 新浪微博:http:/ ...
- Unity3D ——强大的跨平台3D游戏开发工具(六)
第十一章 制作炮台的旋转 大家知道,炮台需要向四周不同的角度发射炮弹,这就需要我们将炮台设置成为会旋转的物体,接下来我们就一起制作一个会旋转的炮台. 第一步:给炮台的炮筒添加旋转函数. 给炮台的炮筒部 ...
- Html5 Egret游戏开发 成语大挑战(六)游戏界面构建和设计
本篇将主要讲解游戏界面的构建和设计,会应用到egret.eui的自定义组件,可以很直观的构建一个游戏整体,这里我们仍然只需要使用EgretWing就可以达到目的,本篇可能是篇幅最少的一个,但是涉及自定 ...
- cocos2d-x ios游戏开发初认识(六) 渲染的优化
做程序开发肯定要考虑到内存的优化,毕竟iphone本身的内存就不是非常大.这一节主要说这个cocos2d开发对内存的优化,详细表如今,既能够对同样的精灵(图片)仅仅渲染一次,也能够对不能的精灵仅仅渲染 ...
- Unity正式发布首个“实验性”VR编辑器,支持HTC Vive和Oculus Rift
Unity今天正式推出"实验性"VR编辑器.据悉,EditorVR是Unity游戏引擎中的一个组件,可让开发者在虚拟现实环境中开发游戏.为何要称之为"实验性"? ...
- 走进VR游戏开发的世界
http://geek.csdn.net/news/detail/76504 我们组在2014年下半年尝试开发了一款Xbox One平台的体感游戏,2015年上半年进行收尾工作的同时,结合之前积累的体 ...
随机推荐
- Vue自定义指令实现下拉加载:v-loadmore
和methods平级: directives: { loadmore: {//自定义指令: 下拉加载 bind(el, binding) { var p = 0; var t = 0; ...
- ES6第二节:新的声明方式
通过上一节的环境搭建完成,接下来我们就可以愉快的探索ES6的新世界了!下面我们从新的声明方式开始: 在ES6里新加了两种声明方式:let 和 const,以前我们都是用var去作声明,接下来我们一一比 ...
- 【习题 8-14 UVA - 1616】Caravan Robbers
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 二分长度. 显然长度越长.就越不可能. 二分的时候.可以不用管精度. 直接指定一个二分次数的上限就好. 判断长度是否可行.直接用贪心 ...
- 【hihocoder 1378】网络流二·最大流最小割定理
[Link]:http://hihocoder.com/problemset/problem/1378 [Description] [Solution] 在求完最小割(最大流)之后; 可以在剩余网络中 ...
- php实现排列组合
php实现排列组合 一.总结 1.回溯:回溯的函数参数有些生疏了,记录递归的位置(pos或step),还要有东西(vis数组)来记录这个是否已经被访问 2.php全局变量的使用 :外部定义的普通变量, ...
- element-UI 表单校验失效处理
1.el-form-item 的 prop属性绑定的要是字符串: eg: :prop="'answer[' + 0 + ']' " //而不是 :prop=&qu ...
- 让我们彻底看清MVC、MVP
这里開始记录下来自己对MVC.MVP.MVVM这三种框架模式的理解,本文从以下几个方面来梳理. 架构的目的 框架模式.设计模式 MVC设计的介绍 MVC在Android中的应用 MVC该怎样设计 MV ...
- 第一个使用Spring Tool Suite(STS)和Maven建立的Spring mvc 项目
一.目标 在这篇文章中.我将要向您展示怎样使用Spring Frameworks 和 Maven build创建您的第一个J2ee 应用程序. 二.信息 Maven是一个java项目的构建工具(或者自 ...
- 终于研究出如何设置新版paypal付款时汇率损失方的问题了
http://bbs.55haitao.com/thread-1686005-1-1.html 终于研究出如何设置新版paypal付款时汇率损失方的问题了 登录paypal后,选"设置&qu ...
- HTML基础第三讲---字体
转自:https://i.cnblogs.com/posts?categoryid=1121494 同样我们在这里继续讲一下它的body,因为它能直观的让大家观察到你所学到的成果. 这一讲,我们来学习 ...