转自: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)开发忠告的更多相关文章

  1. OCulus Rift 游戏开发六原则

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/46685477 作者:car ...

  2. Unity正式发布首个“实验性”VR编辑器,支持HTC Vive和Oculus Rift

    Unity今天正式推出"实验性"VR编辑器.据悉,EditorVR是Unity游戏引擎中的一个组件,可让开发者在虚拟现实环境中开发游戏.为何要称之为"实验性"? ...

  3. 三星Gear VR与Oculus Rift DK2全方位比拼

    网易数码1月6日消息,Oculus Rift DK2并不是面向消费者的产品,而三星Gear VR则进入了大众市场.虽然二者有点不同,但还是值得对比一番,看看Gear VR相比当下虚拟现实领域佼佼者Oc ...

  4. oculus rift 开发(一)

    我使用的是oculus rift DK2,也就是开发人员版.在開始使用前.要确保几件事: 一.准备工作 1.pc配置.配置越好执行越流畅.反之会使帧率低.伴随的体验就是眩晕恶心,甚至无法执行. 官方推 ...

  5. 使用Unity5.1进行VR开发的配置(最新的未必是最好的!!!)

    随着Unity5.1的发布,之前的Oculus Rift和Gear VR 开发流程发生了巨大的变化,这也算是小白鼠们必须付出的代价了~ 那么Unity5.1和Oculus的整合究竟发生了哪些变化,对开 ...

  6. VR开发中性能问题—OculusWaitForGPU

    http://blog.csdn.net/cartzhang/article/details/50788894 VR开发中性能问题-OculusWaitForGPU 本文章由cartzhang编写,转 ...

  7. 屏蔽OCulus Rift的官方警告的方法实测

    本文章由cartzhang编写,转载请注明出处. 所有权利保留. 文章链接:http://blog.csdn.net/cartzhang/article/details/45870243 作者:car ...

  8. 优分享VR开源啦,优分享VR是基于Google VR开发的一款手机VR视频资源的聚合软件

    欢迎来到优分享VR开源项目 优分享VR 开源中国Git地址: http://git.oschina.net/xumingwang/youkes_vr 优分享VR是 优分享安卓APP VR视频播放开源部 ...

  9. 关于VR开发中的穿墙问题随想

    在VR开发中,用户将以第一人称的视角进入虚拟世界,即用户同时身处两个坐标系:1. 现实世界坐标系(如房间的坐标系),用户的身体处于这个坐标系 2. VR世界坐标系,用户的感官处于这个坐标系,即用户觉得 ...

随机推荐

  1. ActiveSupport::TimeZone; 功能:用户自行选择时区。

    TimeZone类作为一个包装器,服务一个TZinfo::Timezone 实例. 用途: 134个时区的检索. 使用简化的英文单词来取回和显示时区:如"Beijing" => ...

  2. uva10944 状态压缩bfs or DP

    又是一道状压搜索,题解有的是状压DP做的目前不会日后补 写好了以后一直蜜汁WA,看别人代码把判断再次回到原点的语句写在了Q.pop()之后而不是for里,对我也是一种启发吧这样写确实有好处比如起点就是 ...

  3. 115. Distinct Subsequences *HARD* -- 字符串不连续匹配

    Given a string S and a string T, count the number of distinct subsequences of T in S. A subsequence ...

  4. vue.js单个slot

    刚开始看这个slot的时候有点蒙,想了几分钟才明白过来,汗颜 <script> var mycompoent = Vue.extend({ template:"<div&g ...

  5. windows安装mysql方法 mysql5.7以后的安装方法

    mysql 安装步骤: 1.www.mysql.com   下载mysql 2.解压mysql到E盘,或者其他盘解压后   E:\mysql\bin   (bin一定要按照这个目录) 3.这bin目录 ...

  6. 利用Sonar定制自定义JS扫描规则(一)——sonar环境搭建

    接触sonar已经有段时间了,最早是在一个项目组里面听到这个框架,后来在公司持续集成活动的推动下,也逐渐学习了sonar的具体功能.sonar集成了findbugs,pmd,checkstyle各种静 ...

  7. angularjs指令中的require赋值含义

    前缀 寻找路劲 没有找到控制器是否抛错? 例如 Link函数中第四个参数 (no prefix) 当前指令的DOM 抛错 tabset 找到的Controller对象 ? 当前指令的DOM 不抛错 ? ...

  8. 微信逆向工程之远程操作Mac

    远程控制指令: (功能-指令-是否开启) macbook控制: 屏幕保护-ScreenSave-开启 锁屏-LockScreen-开启 休眠-Sleep-开启 关机-Shutdown-开启 重启-Re ...

  9. TypeScript学习笔记(八) - 声明文件

    本篇将介绍TypeScript的声明文件,并简单演示一下如何编写和使用声明文件.本篇也是这个系列的最后一篇. 一.声明文件简介 TypeScript作为JavaScript的超集,在开发过程中不可避免 ...

  10. Linux的系统suspend和resume

    参考: www.wowotech.net/linux_kenrel/suspend_and_resume.htmlwww.wowotech.net/linux_kenrel/pm_interface. ...