热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

VR游戏开发防眩晕

VR沉浸式游戏如火如荼地在各个角落被开发着。为什么这么说呢?首先设备并没有稳定,大家都还工作在不确定的平台上,着力点都不稳,怎么能发全力呢。再者,定位设备还不完善,就意味着位移还是虚拟的,

VR沉浸式游戏如火如荼地在各个角落被开发着。为什么这么说呢?首先设备并没有稳定,大家都还工作在不确定的平台上,着力点都不稳,怎么能发全力呢。再者,定位设备还不完善,就意味着位移还是虚拟的,而不是现实的,类似的标准还没有形成。但是正处在VR起跑的阶段,却都不敢不行动,怕大家都在弄被落在后面。

既然大家都纷纷动起手在做内容,那么按照正常的游戏开发流程,最开始需要一个点子,或者说类型,那么在这个时候,就需要分析一下,当前2016年(现在是6月)的设备处于什么状况,有哪些特点,哪些游戏类型不太适合当前的设备。相信定位和身体部位定位已经或即将跟进(抛开不谈),那就从根本问题-眩晕的角度来详细说几点吧。

沉浸感:VR的存在是为了增加用户的真实体验,而增加真实体验就是完全模拟你身边的世界,欺骗你的感官,让你感觉你转头就会看见后面的东西,而不是像“环太平洋”的大机器人驾驶人员,想看身后还需要控制机器人转身。如果这样的一次操作转换记为1来进行累加的话,那么对人来说,这个累加值越小越好,越小沉浸感就越强。
欺骗:你要欺骗人的感官,就要不漏破绽。我转头,看到的一定是里面出现的身后景观,我向前走,看到的一定是景物向后退,我蹲下,一定是看别的东西都高了。或者反过来,当我看到别的东西都向后退的时候,我一定是在向前走,要骗我,就要骗彻底。谢谢!
感官不统一:我转了一下头,结果0.5秒后才开始转,我开始怀疑我的脖子或脑子了!我发现身边的景物都在向后退,但是我的脚并没向前迈,我开始怀疑我的身体和脑子了!你的大脑会和你的身体对话“喂,你在自己控制向前走么?你怎么没告诉我!”“我没走啊?你有毛病么?”。于是,你的大脑认为你的身体出现了状况,排排毒,吐一下试试。

干货:好了,说了这么多废话,不就是说带VR头盔会晕么?我都知道了,那怎么办?现在设备就这样,有什么做法能避免或减少眩晕么?
  1. 满足75帧率,oculusDK2或deepon的头盔暂时还不错。
  2. 哥伦比亚大学计算机图形和用户界面实验室的教授史蒂芬.费纳(Steven K. Feiner)和他的学生艾周·费尔南德斯(Ajoy Fernandes)说他们找到了解决视觉辐辏调节冲突的办法,“运动时稍微缩小视觉范围会让用户更舒服”,跟我们想得到更大的视野相冲突哈,不过测试表明,运动的时候,我们不太会注意到视野缩小了。这在游戏制作中是确实可行的一种处理方式。
  3. 卡通风会减少或根本不会眩晕,当然这增加了前面说的累加值,我们在大脑里还是多折算了一步,沉浸感没那么强了。不过在游戏制作时,属于可以考虑的一种方案。
  4. 控制用户的视觉,让用户只看你想让用户看的东西,而不是四处乱瞅。比如加入一些景深效果。
  5. 减少剧烈晃动,比如震屏就不要了,人走路的晃动也不要了吧,速度的突然变化也要减少。
  6. 最好只向前走,想一些第三人称视角的横向移动,坚决不要加。
  7. 减少场景中贴图的复杂度,画贴图的小伙伴乐了,好的,这的确是真的。
  8. 根本就不要纵向位移,你认为你在爬梯子或绳子但你的身体确实没那么做。
  9. 加入静态参照物,你的很多UI或视口感的东西会救你。比如你在驾驶室感觉的窗口中折腾,这感觉可能还可以。一个静止的skybox,恩,起码有个不动的。
  10. 音效也会根据场景马上转换,或跟你的头转的时候变化。恩,注意调节你的3D音效。
  11. 尽量不要在游戏中设置,方向转身,一键蹲下,一键跳跃这些行为,绝对会晕菜。
OK,暂时就发现这么多,你会觉得,开发一款VR过山车并不是什么好主意,不是么!


推荐阅读
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 20211101CleverTap参与度和分析工具功能平台学习/实践
    1.应用场景主要用于学习CleverTap的使用,该平台主要用于客户保留与参与平台.为客户提供价值.这里接触到的原因,是目前公司用到该平台的服务~2.学习操作 ... [详细]
  • 拥抱Android Design Support Library新变化(导航视图、悬浮ActionBar)
    转载请注明明桑AndroidAndroid5.0Loollipop作为Android最重要的版本之一,为我们带来了全新的界面风格和设计语言。看起来很受欢迎࿰ ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • 本文介绍了Android 7的学习笔记总结,包括最新的移动架构视频、大厂安卓面试真题和项目实战源码讲义。同时还分享了开源的完整内容,并提醒读者在使用FileProvider适配时要注意不同模块的AndroidManfiest.xml中配置的xml文件名必须不同,否则会出现问题。 ... [详细]
  • 本文讨论了如何在dotnet桌面(Windows)应用程序中添加图标。作者提到可以使用dotnet命令行工具与resource.rc文件一起使用来为标准.NET核心应用程序添加图标。作者还介绍了在创建控制台应用程序时如何编辑projeto1.csproj文件来添加图标。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • intellij idea的安装与使用(保姆级教程)
    intellijidea的安装与使用(保姆级教程)IntelliJ在业界被公认为最好的java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(gi ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
author-avatar
石头1988030450
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有