想开发VR游戏?你需要注意这些东西
转自:http://www.gamelook.com.cn/2016/03/246620
开发VR游戏很难吗?有些人会说是,但在HTC虚拟现实新科技部门副总经理鲍永哲看来,VR游戏的门槛并不比一般的游戏高。“据我所了解,做PC游戏的团队做VR,从技术来讲,难度不高,难的是创意”,他说。
先不说是不是真的如此,VR作为一个新的平台,它有新的硬件,新的体验,对于想进入或是已经开始VR游戏开发的团队来说,有些与传统游戏开发不同的地方或许可以提前了解一下如何应对。
如何让玩家不晕?
在现实世界中,如果你突然转头,但周围的画面过了1秒钟才显示出来,这时你的大脑是不会将画面和头部运动联系起来的,如果你不停地转,很快就会晕到吐。在虚拟现实中,我们要尽量避免这种情况出现。针对这点VR开发者可以参考以下几条建议。
无论如何,尽力将帧数维持到90 FPS。
帧率对VR的体非常重要,太低容易造成眩晕。目前HTC VIVE、Oculus Rift和PSVR对游戏的建议都是90 FPS,PSVR还可达到120 FPS,而Gear VR为60 FPS。
不要设计加速
我们都知道,眩晕是由于VR画面运动跟我们身体的运动不一致导致的,平缓的画面眩晕感不会太强,而一旦加速,很多人就会受不了,就像过山车一样。
当游戏人物在走或跑时,不要把相机上下晃动。
这个同样是为眩晕而考虑的,很多电影和游戏在人物跑动时,画面也会跟着抖动,这是为了将跑动的效果呈现给观众看,部分人看了其实也会晕,但影响不是很大。但在VR中千万别这么做,高沉浸感让眩晕感更强,一些用户很快就会吐。
没有鼠标键盘怎么交互?
在VR里有很多交互任务需要新的实现方式,比如导航,选择和操控物体,菜单和用户界面,文字输入等。原因是VR游戏的交互和传统游戏非常不同,这里没有鼠标键盘,没有触摸屏,手柄也不是最好的交互方式,所以三大VR平台都有自己的动捕手柄。
对于VR的交互实现方式目前并没有标准可供参考,不同的游戏、平台甚至用户可能都会不同。就拿导航来说:可以用手柄按键来实现,可以用手柄指向某个方向,可以语音说出目的地,可以直接走过去,可以用手势,可以用眼睛望着那个方向……非常多不同的实现方式,开发者应该根据情况选择最适合的一种。
想开发VR游戏?你需要注意这些东西
替身
用户在戴上头显时,会完全沉浸在虚拟的世界里,看不到自己的身体。这时候就需要在虚拟世界中设计一个用户的替身。它可以是用户的自我投射,也可以是完全不同的人。
如果你用的是一个具有全身动作捕捉功能的VR系统,那么把真人原比例完全投射到虚拟世界中会不那么难。但消费级的产品通常不会配备全身动捕,此时你得考虑虚拟世界的替身该如何映射现实中的用户。通常来说头和手的运动是被追踪的。
社交
一旦进入了虚拟世界,用户肯定不想只玩一把单机游戏,而VR特别适合多人联机。由于可以非常真实地模拟现实,两个人就算身处地球两端,透过VR也能感觉对方就在身边。比如VR虚拟影院这款应用就是要带给人们这种感觉。
而在游戏开发中,需要注意的联机事项和一般的游戏差不多。你需要把用户连接到同一服务器,信息同步,还要能看到其他人的替身。VR还需要特别注意网络延迟的问题,不然这虚拟的世界就太假了,游戏体验也不会好。
在不同的平台上运行
同时为Oculus Rift和HTC Vive开发游戏的开发者肯定不少,毕竟谁也不知道哪家会成为市场老大。而如果你先为某家开发了游戏,移植到另一个平台上时就需要注意适配的问题,各家的硬件都不同,交互、追踪系统也有很大差别。这就像同一个App适配iOS和Android一样,很多部分可能要重新开发。
沉浸感
VR呈现的不一定是能够以假乱真的世界,但它需要让用户感觉自己在身在一个新世界里,而不是从旁观者的角度看着这个世界。这时游戏设计就需要注意一些东西。
首先是连贯性,给自己创造的世界赋予某种特性时需要保证它是连贯的,比如一个失重的世界或是穿行的隧道。
其次是感官迷惑,这不仅包括运动,还有触觉、嗅觉、条件反射等,其目的是让你的身体对虚拟的画面作出反应。
然后还有交互设计,当你在为用户设计一种“体验”时,不能让他“为所欲为”,而是得按照你设计的方式来玩。比如沉浸感做得很好的一款VR应用“Verdun 1916-Time Machine”,它的交互非常简单:你只能转头,因为你是一名受伤的士兵。
总结
鲍永哲说的没错,其实VR游戏开发技术上不难,难的是设计和创意。因为没有人可告诉你每一步该怎么做,每个开发者都能去探索最好的VR体验。上文中的一些建议可以保证一些基本的体验,这里 :
延迟最小化,保证不会让用户玩得很晕;
要结合内容和硬件设计合适的交互实现方式;
正确地在虚拟世界中用替身映射用户;
高效地联机;
以上说的这些都是为了“沉浸感”这个词。
想开发VR游戏?你需要注意这些东西的更多相关文章
- Unity2016 Unity3D开发VR游戏的经验
http://z.youxiputao.com/articles/8313 在4月12日的Unite 2016大会上,暴风魔镜高级产品经理吴涛分享他用Unity3D开发VR游戏的经验,以下为分享实录: ...
- 惠普披甲过VR寒冬,花费巨资开发VR游戏
2016被称为VR元年,各大公司都在积极推动该领域的研究,其中HTC.0culus.索尼的成绩是最高的,不仅推出了自家研发的头显,而且销量还很可观.惠普在VR领域自然也有所投入,但是并没有比 ...
- 开发VR游戏的基本要求
由于我对VR技术的兴趣,我特意去网上查找了一下如果要从事VR游戏的开发,程序员要掌握的一些能力和要求.可能不太详细,只供参考. 1. C++ 语言必须过关,现在大部分的3dengine都用c++,不管 ...
- GOOGLE VR SDK开发VR游戏,VR播放器之中的一个
近期一年来,VR虚拟现实和AR增强现实技术的宣传甚嚣尘上.事实上VR,AR技术非常早就有了,一直没有流行开来.不可否认价格是影响技术推广的最大壁垒. 谷歌对VR最大的贡献是提供了便宜的谷歌眼镜,依照G ...
- 从蜘蛛侠到仙剑,为何知名IP都要开发VR游戏?
去年3月底斯皮尔伯格指导的<头号玩家>上映,为全球玩家和影迷塑造出一个庞大.刺激而又真实无比的虚拟游戏世界--"绿洲".电影上映后,在人们感叹斯皮尔伯格旺盛的艺术想象力 ...
- Unity使用UGUI进行VR游戏的界面开发
原文链接:http://gad.qq.com/article/detail/7181505 本文首发腾讯GAD开发者平台,未经允许,不得转载 我不知道有多少同学是跟我一样,在开发VR游戏中,是使用的面 ...
- 走进VR游戏开发的世界
http://geek.csdn.net/news/detail/76504 我们组在2014年下半年尝试开发了一款Xbox One平台的体感游戏,2015年上半年进行收尾工作的同时,结合之前积累的体 ...
- Unity User Group 北京站图文报道:《Unity3D VR游戏与应用开发》
很高兴,能有机会回报Unity技术社区:我和雨松MOMO担任UUG北京站的负责人, 组织Unity技术交流和分享活动. 本次北京UUG活动场地–微软大厦 成功的UUG离不开默默无闻的付出:提前2小时到 ...
- 全景VR视频游戏外包公司:技术分享使用U3D+CB制作VR游戏
随着Oculus宣布1月6日开启预售,2016年很可能成为VR游戏元年,但很多的调研显示,手游设备才是市场增长的关键,SuperData发布的报告显示,2016年全球VR游戏市场规模预计在51亿美元左 ...
随机推荐
- 剑指Offer——字符串的排序
Question 输入一个字符串,按字典序打印出该字符串中字符的所有排列.例如输入字符串abc,则打印出由字符a,b,c所能排列出来的所有字符串abc,acb,bac,bca,cab和cba. 输入描 ...
- JavaWeb -- 自定义标签实例, 防盗链, JSTL 核心标签
1. 自定义标签应用实例1: 防盗链 标签处理类 public class RefererTag extends SimpleTagSupport { private String site; pri ...
- BZOJ3243/UOJ121 [Noi2013]向量内积
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/ ...
- iOS中,Framework和.a的打包及使用
最近在做一个小项目,需要给客户一个demo测试,有一部分核心代码暂时不想让客户知道,就想到了打包成framework或.a库.库有两种: 静态库:.a和.framework 动态库:.tbd和.fra ...
- Announcing the Release of ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 for VS2012
The NuGet packages for ASP.NET MVC 5.1, ASP.NET Web API 2.1 and ASP.NET Web Pages 3.1 are now live o ...
- c#将DataTable内容导出为CSV文件
写了个类: class DataTableAndCSV { public static DataTable csvToDataTable(string file) { string strConn = ...
- java中base64
// 将 s 进行 BASE64 编码 public static String getBASE64(String s) { if (s == null) return null; return (n ...
- iTextSharp 生成PDF
下载地址:http://sourceforge.net/projects/itextsharp/ iText is a PDF library that allows you to CREATE, A ...
- Multiprovide 实践理解
“多重提供器”是一种“信息提供者”,它综合了多个“信息提供者”的数据以用于报告.“多重提供者”本身不包含任何数据.“多重提供者”的数据由所基于的“信息提供者”专门提供,这些“信息提供者”组合在一起进行 ...
- 用css方法 可以实现多行 超出宽度 出点点点号
overflow: hidden; -webkit-line-clamp: 2; display: -webkit-box; -webkit-box-orient: vertical;