UE4关于Oculus Rift (VR)开发忠告
转自:http://blog.csdn.net/cartzhang/article/details/42493843
UE4虚拟现实 实现的注意事项
https://docs.unrealengine.com/latest/INT/Platforms/VR/ContentSetup/index.html
一、概述
为使用户有最好的虚拟现实的体验,开发虚拟现实需要一些工作流程。此篇的目的提醒大家在开发虚拟现实工程的过程中,需要注意的一些的事情。
二、世界坐标比例
获取合适正确的世界比例,对于交付者使用户在虚拟现实平台上有很好的用户体验,是一个很重要的事情。错误的比例缩放,容易导致感觉怪怪的,甚至会导致“模拟疾病(Simulation sickness)”。
在虚拟现实中,从玩家的镜头0.75~3.5米的范围内,物体的最容易辨认。在UE4中,1UU(Unreal Unit)是代表的1CM。
1UU == 1CM
这意思是在使用VR过程中,Unreal中物体的最佳可视是距离玩家相机距离为75UU~350UU.
在UE4的世界设置中,你可以调整你的世界比例为100。调整世界比例需要慎重,因为错误的比例导致与现实世界差别过大,容易导致“模拟疾病”.
三、模拟疾病
模拟疾病是动晕病的一种,就是我们在使用类似oculus头盔这样的HMD设备,在虚拟现实的世界中不适所引起的。模拟疾病很大的影响了用户体验,甚至会摧毁所有VR体验感。为了减弱你的用户坏的VR体验,下面是一些最好实践准则。若不这样做,只会带来不好的用户体验。
1. 开发者用最坏的测试主题,因为他们自己已经习惯了使用VR设备。测试你的游戏,越多越好,确保他们不会产生模拟疾病。
2. 避免剥夺用户的相机控制权利,这是坏的VR体验的罪魁祸首。
3. 不要重写视域函数(FOV),不要导出让用户编辑。这个值是需要匹配头盔的物理几何和镜头,通过设备的SDK来设置的,为内部配置参数。若配置错误,转头的时候,会出现眩晕或恶心。(题外,其他OC代码里面他们把pitch值给直接设置为0了,是固定的,意思是不要没事改这个东西,FOV在头盔里,直接更改参数其实是没有效果的。)
4. 不要像多数第一人称射击游戏,为了镜头效果出现到处走的机器人。因为镜头的上下移动模仿人体会导致玩家模拟疾病,毫无VR体验感。
5. 不要没事抖动镜头。一个催泪弹经过玩家,镜头抖动对于非VR游戏很有感觉,但是对于VR游戏,这就容易引起模拟病。
6. 在你为VR游戏设置游戏关卡时候,灯光或颜色要弱于正常。强光或亮色在游戏中容易让人眩晕。
7. 尽量使用高的帧率。低帧率易引起模拟疾病,所以要优化游戏,保证帧率。对于DK1保证60帧/s,DK2需要75帧/s.
8. 避免使用楼梯,使用电梯来代替。当上楼梯的时候,相机的上下,很容易迷失。
9. 玩家应该以开设就要全速,不要逐渐提高速度,移动速度需要恒定。
10. 不要使用景深和运动模糊处理,它影响到玩家的视觉,更重要的是易引起模拟疾病。
以上是一些主要的原因,但是有更多的也是引起模拟疾病的原因。
四、VR 人物设置
1. 人物高和宽
属性 |
UE4缺省 |
VR建议 |
|
高度 |
192cm |
176cm |
|
宽度 |
84cm |
68cm |
2. 移动速度
移动速度很难确定多少是合适的,这个需要根据设计或经验不同来设计。在VR的Demo中,运动速度为原来的1/4.
属性 |
UE4缺省 |
VR建议 |
|
运动速度 |
60M/s |
24M/s |
3. 相机位置
属性 |
UE4缺省 |
VR建议 |
|
基础眼高 |
180cm |
160cm |
五、VR关于内容建议
当我们在创建VR场景的时候,谨记用户的可以多不同的角度来看场景的。下面是你可能已经做了,但是要在VR中避免的:
1. 缩放-场景中物体大小缩放最好是跟实际越接近越好。比真实实际的大或小,都会让人疑惑或引起模拟疾病的。
2. 背面剪裁--在标准的游戏中,经常使用去除掉玩家不能看到的三角面,以减少渲染量。然而在VR游戏中,玩家有更多的自由来观看,这个古老的经验有时可能会导致玩家看到了不应该看到的东西,请不要在这样做了。
六、(题外)什么是模拟疾病
3D画面立体逼真,令人宛如置身现场,已经成为一股风潮。然而,有专家称iPhone、3D影片和电脑游戏的3D效果造成的不适现象,恐将成为21世纪最严重的“职业病”。
科技专家已分辨出传统动晕症(晕车、晕船、晕机)与这种称作“模拟疾病”(simulation sickness)不适症状的差异,长时间盯着荧幕,与搭乘船只、汽车或飞机产生的不适并不相同。
科学家预期,3D显示器和模拟现实装置,模仿真实世界的能力只会愈来愈强。
这意味着我们的大脑可能更容易受骗,出现模拟疾病的不适将变得加频繁。
UE4关于Oculus Rift (VR)开发忠告的更多相关文章
- OCulus Rift 游戏开发六原则
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/46685477 作者:car ...
- Unity正式发布首个“实验性”VR编辑器,支持HTC Vive和Oculus Rift
Unity今天正式推出"实验性"VR编辑器.据悉,EditorVR是Unity游戏引擎中的一个组件,可让开发者在虚拟现实环境中开发游戏.为何要称之为"实验性"? ...
- 三星Gear VR与Oculus Rift DK2全方位比拼
网易数码1月6日消息,Oculus Rift DK2并不是面向消费者的产品,而三星Gear VR则进入了大众市场.虽然二者有点不同,但还是值得对比一番,看看Gear VR相比当下虚拟现实领域佼佼者Oc ...
- oculus rift 开发(一)
我使用的是oculus rift DK2,也就是开发人员版.在開始使用前.要确保几件事: 一.准备工作 1.pc配置.配置越好执行越流畅.反之会使帧率低.伴随的体验就是眩晕恶心,甚至无法执行. 官方推 ...
- 使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)
随着Unity5.1的发布,之前的Oculus Rift和Gear VR 开发流程发生了巨大的变化,这也算是小白鼠们必须付出的代价了~ 那么Unity5.1和Oculus的整合究竟发生了哪些变化,对开 ...
- VR开发中性能问题—OculusWaitForGPU
http://blog.csdn.net/cartzhang/article/details/50788894 VR开发中性能问题-OculusWaitForGPU 本文章由cartzhang编写,转 ...
- 屏蔽OCulus Rift的官方警告的方法实测
本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/45870243 作者:car ...
- 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件
欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...
- 关于VR开发中的穿墙问题随想
在VR开发中,用户将以第一人称的视角进入虚拟世界,即用户同时身处两个坐标系:1. 现实世界坐标系(如房间的坐标系),用户的身体处于这个坐标系 2. VR世界坐标系,用户的感官处于这个坐标系,即用户觉得 ...
随机推荐
- POJ 3259 Wormholes(Bellman-Ford)
http://poj.org/problem?id=3259 题意:有一些普通的洞和虫洞,每个洞都有经过的时间,虫洞的时间是负的,也就是时光倒流,问是否能回到出发时的时间. 思路: 贝尔曼-福特算法判 ...
- 移动前端兼容性笔记 - 安卓2.x 自带原生浏览器箭头问题
这样的箭头用CSS-3实现,整段代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta c ...
- C# Lock关键字
lock 关键字将语句块标记为临界区,方法是获取给定对象的互斥锁,执行语句,然后释放该锁. lock语句根本使用的就是Monitor.Enter和Monitor.Exit,也就是说lock(this) ...
- Redis.RedisNativeClient的方法get_Db 没有实现
C#出现问题:Redis.RedisNativeClient”的方法“get_Db”没有实现 ServiceStack.Redis.RedisNativeClient”的方法“get_Db”没有实现 ...
- 谈谈我对"闭包"的理解
一.什么是闭包和闭包的几种写法和用法 1.什么是闭包闭包,官方对闭包的解释是:一个拥有许多变量和绑定了这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分.闭包的特点: 1. 作 ...
- 『转』Kaspersky Internet Security for Android &KMS – 免费6个月
卡巴越南的活动,需要注册账户,完成小调查,24小时内发送激活码,激活码3个月内有效.建议用谷歌翻译下网站.KIS for Android 的激活码也通用于 Kaspersky Mobile Secur ...
- JavaScript的this原理
this原理 理解下面两种写法,可能有不一样的结果. var obj = { foo: function () {} }; var foo = obj.foo; // 写法一 obj.foo() // ...
- Android filesystem system rw(read/write) permission
/********************************************************************************* * Android filesys ...
- 各种Java加密算法
如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorit ...
- 20165212 2017-2018-2《Java程序设计》课程总结
20165212 2017-2018-2<Java程序设计>课程总结 作业链接汇总 每周作业链接 预备作业1:我期望的师生关系 预备作业2:做中学learning by doing个人感想 ...