想开发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亿美元左 ...
随机推荐
- 用简单的反射优化代码(动态web项目)
在动态web项目中,没有使用框架时,只是简单的jsp访问servlet实现增删改查, 无论是哪个方法都需要经过Servlet中的doGet()方法或doPost()方法,我们可以在链接中附带参数进行区 ...
- OpenStack企业私有云新需求(1):Nova 虚机支持 GPU
作者:Sammy Liu 刘世民 本系列会介绍OpenStack 企业私有云的几个需求: GPU 支持 自动扩展(Auto-scaling)支持 混合云(Hybrid cloud)支持 物理机(Bar ...
- (转) Nova是如何统计OpenStack资源
引言 运维的同事常常遇到这么四个问题: Nova 如何统计 OpenStack 计算资源? 为什么 free_ram_mb, free_disk_gb 有时会是负数? 即使 free_ram_mb, ...
- Linux上SFTP用法
SFTP简介 sftp是一个交互式的文件传输协议,类似于ftp,但它进行加密传输,比ftp更安全. SFTP用法 localhost 从远程主机获取文件或目录到本地目录下 sftp>get /h ...
- Angular表单的本地校验和远程校验
AngularJS Form 进阶:远程校验和自定义输入项 表单远程校验 HTML代码: <!doctype html> <html ng-app="form-exampl ...
- Angular中文api
Angular中文api:http://docs.ngnice.com/api
- sklearn.preprocessing.StandardScaler 离线使用 不使用pickle如何做
Having said that, you can query sklearn.preprocessing.StandardScaler for the fit parameters: scale_ ...
- 【.Net】Byte,Stream,File的转换
引言 文件的传输和读写通常都离不开Byte,Stream,File这个类,这里我简单封装一下,方便使用. 帮助类 public static class FileHelper { / ...
- 20165210 Java第二周学习总结
20165210 Java第二周学习总结 教材学习内容总结 - 第二章学习总结 标识符与关键字: 重点在50个关键字 标识符并不能是关键字 标识符的第一个字符不能是数字字符 Unicode字符集简单了 ...
- 使用手势对UIImageView进行缩放、旋转和移动(转)
原文地址:http://blog.csdn.net/crazy_frog/article/details/8664108 // 添加所有的手势 - (void) addGestureRecognize ...