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年上半年进行收尾工作的同时,结合之前积累的体 ...
随机推荐
- Myeclipse学习总结(2)——MyEclipse快捷键大全
1.ctrl+shift+R 打开资源 此组快捷键可以打开工程中任意一个文件,而本人只需按文件名或者mask名的字母顺序输入就会出现对应的文件或者在内容中某个关键字再按快捷键也可以的,例如:Custo ...
- BZOJ 1696 [Usaco2007 Feb]Building A New Barn新牛舍 数学
题意:链接 方法:数学+模拟 解析: 首先这类问题不是第一次见了,所以直接知道拿x的中位数.y的中位数. 这题就是讨论情况很的烦. 题中有个限制,给出待求和的点不能选取. 所以假设奇数个点,求出x中位 ...
- js全选反选按钮实现
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- js上传文件(图片)的格式和大小限制
如果你想快速解决这个问题,看本文就够了.查了好多资料,终于解决了,太耗时间了,本文留给给后来者,希望你们工作的更轻松 本文保存为.html文件用浏览器打开即可测试功能 <form id=&quo ...
- NVM安装nodejs的方法
安装nodejs方式有很多种. 第一种:官网下载 通过nodejs官网下载安装 ,但有个缺陷,不同版本的nodejs无法顺利的切换. 第二种: NVM安装 NVM可以帮助我们快速切换 node版本 ...
- BZOJ1030: [JSOI2007]文本生成器(Trie图+dp)
Description JSOI交给队员ZYX一个任务,编制一个称之为“文本生成器”的电脑软件:该软件的使用者是一些低幼人群,他们现在使用的是GW文本生成器v6版.该软件可以随机生成一些文章―――总是 ...
- Python之字符串切片
切片操作(slice)可以从一个字符串中获取子字符串(字符串的一部分).我们使用一对方括号.起始偏移量start.终止偏移量end 以及可选的步长step 来定义一个分片. 格式: [start:en ...
- Android Studio使用Mob来获取手机验证码的源码
本文来自:CSDN 感谢作者:qq_35812301(其实就是我的号!) 查看原文:http://blog.csdn.net/qq_35812301/article/details/79150775 ...
- bitmap-setBounds方法参数研究
对于如下的代码,一直有点不明白它具体每一步操作的影响.今天就稍微研究下.代码如下 xml代码 <RelativeLayout xmlns:android="http://schemas ...
- Android .getRGB得到是负数,解决方案
情景:ava.awt.color 下面的getRGB怎么得出的是负数???本来想通过getRGB得到一个整数,在另外的一个部分在根据这个整数构件一个color,因为参数规定只能能传整数!!!color ...