@VR简介

虚拟现实VR(Virtual Reality)和增强现实AR(Argument Reality)的概念其实在很多年前就已经出现,2015年下半年开始变得火热,在各大媒体圈子中频繁出现,而今年2016年成为VR元年,像Facebook、Sony、HTC、Google等行业巨头都在虚拟现实领域推出自己的硬件设备或者专门成立虚拟现实部门做出很大的投入。

虚拟现实首先在人机交互上发生了跨越性的改变,一方面使用遥控手柄代替传统键盘鼠标等输入设备,跟踪玩家头部,玩家可以通过头部运动自然的以自由视角观察整个虚拟世界,能够720全视角观看周边环境,而在此之前,像观看电影屏幕时,120度为最佳视角范围,电影屏幕只是现实世界的一部分小视角,而虚拟现实技术强调的是玩家的“浸入感”,这也是评估VR设备质量的最重要指标,眩晕感、与现实世界的差异感都是VR设备努力避免的缺陷和努力改进之处。

目前虽然VR话题成为热点,相关技术飞速发展,但其面临的挑战十分巨大,几大公司研发的VR头盔普遍很笨重,需要大量的线缆连接,移动性差,同时价格昂贵,短时间难以推广开来。另一方面,像国内的低端VR设备,如“暴风魔镜”,利用手机屏幕做显示设备,移动性好,设备轻便,价格便宜,但其实现的原理实际上是将手机屏幕分成两部分,即牺牲一半的手机分辨率,造成实际体验中颗粒感强,“浸入感”也差,同时受帧率等因素影响眩晕感、眼睛不适感都很强,难以满足人们的期望。

@暴风魔镜开发流程


VR设备中成本最低的属国内的暴风魔镜,最新的暴风魔镜4代仅售199元人民币,其世界第一的VR设备销量和其知名度主要是因为其体型轻便、价格便宜,成为很多游戏玩家的掌上“玩具”。

暴风魔镜为开发者提供了SDK和示例Demo,使开发者可迅速将暴风魔镜加入到游戏工程中作为VR输入交互设备,暴风魔镜支持的游戏引擎为Unity3D和UnrealEngine4,官方提供的开发文档介绍了魔镜设备的开发方法,支付SDK的接入以及参数的回调、工程的配置等等。另外官方提供了暴风魔镜游戏应用发布平台,注册开发者帐号并进行个人认证或企业认证之后便可以提交应用,审核通过便可将应用进行发布以及获取利润。

这里使用暴风魔镜SDK开发一个场景游戏Demo,实现角色在场景中使用手柄控制自由走动,确认按钮人物跳跃,以及跟踪头部运动以720度自由视角观察场景和天空,并将Unity工程导出Xcode工程,进行相关配置后运行在iPhone真机设备上,使用暴风魔镜进行体验。

一、使用暴风魔镜SDK实现Demo中第三人称角色控制自由走动和自由视角的原理过程并打包在iPhone上运行:


         

可以直接改装已有的第三人称角色Demo也可以按照如下方式自行构建:

1.新建一个Unity工程,导入MojingSDK For iOS AndroidUnity暴风魔镜SDK包;

2.创建一个Scene场景,场景中导入一个地形,设置好光源以及背景音乐等;

3.导入一个人物角色模型,绑定骨骼,设置好状态机人物动画,动画主要有休息、前进、跳跃,角色控制器实现上下左右控制人物前进、左转、右转、转身,确认键控制人物跳跃。SDK提供的Demo中MojingThirdCharacterController预设已经实现了上面的功能以及监听手机陀螺仪事件跟踪用户头部运动实现自由视角;

4.设置好角色模型后要将场景中的MainCamera替换为MojingMain预设摄像头,实际上是将左右两个摄像头绑定在一起,将屏幕分成左右两部分;

5.另外加入IntegrateInputManager跨平台交互预设和Overlay聚焦预设,IntegrateInputManager用于获取手柄的按键事件,可以上下左右切换按钮,按确认键选中触发按钮;Overlay预设组件实现场景中心的GazePointer射线准星,用于聚焦UI按钮,聚焦按钮后点击确认键可以触发按钮点击事件;

完成以上步骤后运行Unity工程Game场景中出现两个摄像头视角的场景,键盘方向键可控制人物走动,但自由视角需要在真机上结合暴风魔镜进行测试;

6.使用Unity打包前需要修改Player Setting设置,Graphic APIs修改为OpenGLES2和OpenGLES3,Tartget SDK可以选择Xcode工程使用真机调试还是模拟器调试,这里选择Device SDK真机调试;

7.打出Xcode工程之后需要在工程中添加libz.tbd和libsqlite3.tbd库:

@另外真机运行可能会出现如下现象崩溃,解决办法在下面的文章中:

http://blog.csdn.net/cordova/article/details/51286551

二、暴风手柄输入按键的适配与获取(可以单独作为游戏输入设备使用):


使用手柄的输入事件需要先将IntergrateInputManager预设添加到场景中,然后在脚本中可以直接像Unity中Input.GetButtonDown(KeyCode)类似的方法获取按键事件,SDK中已经进行了键值的适配,适配在脚本中可以找到:

获取事件的脚本中需要引入:using MojingSample.CrossPlatformInput;

然后在Update周期函数中进行时间判断,比如获取按键按下:if(CrossPlatformInputManager.GetButtonDown("OK")){ }

实例脚本如下:

[csharp] view plaincopy print?
  1. //
  2. //MojingInput.cs
  3. //
  4. // Created by [JiangXinhou]
  5. //
  6. // Copyright jiangxinhou@outlook.com (http://blog.csdn.net/cordova)
  7. using UnityEngine;
  8. using System.Collections;
  9. using MojingSample.CrossPlatformInput;//引入暴风魔镜跨平台输入类库
  10. public class MojingInput : MonoBehaviour {
  11. // Update is called once per frame
  12. void Update () {
  13. if (CrossPlatformInputManager.GetButtonDown ("LEFT")) {
  14. //十字键左键按下
  15. }
  16. if (CrossPlatformInputManager.GetButtonDown ("RIGHT")) {
  17. //十字键右键按下
  18. }
  19. if (CrossPlatformInputManager.GetButtonDown ("UP")) {
  20. //十字键上键按下
  21. }
  22. if (CrossPlatformInputManager.GetButtonDown ("DOWN")) {
  23. //十字键下键按下
  24. }
  25. if (CrossPlatformInputManager.GetButtonUp ("OK")) {
  26. //手柄OK键抬起
  27. }
  28. if (CrossPlatformInputManager.GetButtonUp ("C")) {
  29. //手柄返回键抬起
  30. }
  31. if (CrossPlatformInputManager.GetButtonUp ("MENU")) {
  32. //手柄菜单键抬起
  33. }
  34. if (CrossPlatformInputManager.GetButtonUp ("CENTER")) {
  35. //十字键中心抬起
  36. }
  37. //获取手柄摇杆水平摆动值
  38. float x = CrossPlatformInputManager.GetAxis("Vertical");
  39. //获取手柄摇杆竖直摆动值
  40. float y = CrossPlatformInputManager.GetAxis("Horizontal");
  41. }
  42. }

三、。。。 。。。

@未完待续

http://blog.csdn.net/cordova/article/details/51437824

Unity中使用暴风魔镜进行VR游戏开发相关推荐

  1. Unity中使用暴风魔镜蓝牙手柄

    鉴于某些手机在使用大朋SDK以及谷歌SDK时会出现神器的小屏现象(比如某想的)故为了能够最大程度的兼容更多的手机,决定使用暴风魔镜的SDK.废话不多说~直接将使用暴风魔镜SDK时遇到的问题以及解决方案 ...

  2. Unity使用暴风魔镜VR游戏开发

    @VR简介 虚拟现实VR(Virtual Reality)和增强现实AR(Argument Reality)的概念其实在很多年前就已经出现,2015年下半年开始变得火热,在各大媒体圈子中频繁出现,而今 ...

  3. 在Unity中制作4种不同的游戏

    流派:电子学习| MP4 |视频:h264,1280×720 |音频:AAC,48.0 KHz 语言:英语+中英文字幕(根据原英文字幕机译更准确)|大小解压后:8.6 GB 含课程素材 |时长:15h ...

  4. 揭秘VR游戏开发:与传统3D差距仅10% 低延迟是核心

    背景介绍 北京时间3月16日,索尼在GDC 2016上公布了其虚拟现实头盔--PS VR消费者版的售价:399美元(约合人民币2600元).同时,著名电子游戏<孤岛危机>开发商Crytek ...

  5. 100天学会VR游戏开发

    最近看了一篇关于VR的文章,没事干就在翻译,希望对其他人有所帮助. 第一次翻译,不足的地方还请包含和纠正. 原文链接: https://medium.com/@skynite/100-days-of- ...

  6. 从零开始丨使用Unity3D进行VIVE VR游戏开发

    从零开始丨使用Unity3D进行VIVE VR游戏开发 SteamVR插件的导入 使用Unity3D进行VR游戏的开发,首先需要具备以下条件 1 拥有一台显卡不低于GTX960性能的主机 2 拥有一部 ...

  7. 走进VR开发世界(4)——走进VR游戏开发的世界

    注: 原文2016年2月发表于公司内部社区, 最近才由同事转载出来, 删去了文中引用的一些内部文章和视频. 在这里我也只是把外网版本转过来, 留做备份. 背景介绍 我们组在2014年下半年尝试开发了一 ...

  8. 走进VR游戏开发的世界

    原文地址:http://geek.csdn.net/news/detail/76504 我们组在2014年下半年尝试开发了一款Xbox One平台的体感游戏,2015年上半年进行收尾工作的同时,结合之 ...

  9. 项目三:基于vizard软件的VR游戏开发

    项目三:基于vizard软件的VR游戏开发 [知识点笔记] 1.了解 Vizard 的所有模块内容: 参阅 Vizard 命令索引(help>Introdution>welcome> ...

最新文章

  1. Docker+Jenkins持续集成环境(3)集成PMD、FindBugs、Checkstyle静态代码检查工具并邮件发送检查结果...
  2. axure rp pro 6.5
  3. windows server 2003 安装显卡驱动
  4. wxWidgets学习 (1) -- Hello World 详解
  5. 【swift3.0】【枚举定义的不同方式】
  6. 因为喜欢,所以选择它
  7. [PAT乙级]数字分类 (20)
  8. PWN-PRACTICE-BUUCTF-6
  9. VSTO学习笔记(二)Excel对象模型
  10. MySQL_数据库表记录的操作
  11. [SDK]新浪微博请求授权显示错误页面的解决方法
  12. java制作视频播放器
  13. word转pdf转换器免费版是一款专业将word文档转换成pdf文件的软件,完美支持在线word转换成pdf,可将office word文档doc、docx、wps格式转换成PDF格式。word转pd
  14. arduino超声波测距接线图详细_Arduino:超声波传感器+测距
  15. 蓝绿部署、红黑部署、AB测试、灰度发布、金丝雀发布、滚动发布的概念与区别
  16. 这三个自媒体平台,你都了解嘛?
  17. FFMPEG Qt录屏软件开发之视频采集
  18. 【XJTUSE 计算机组成与结构笔记】第十三章 精简指令集计算机
  19. VTK画椭球 C++
  20. 腾讯qq珊瑚虫版_盗版微信存在近3年,超4万用户使用,腾讯服务器也识别不了...

热门文章

  1. CSS 使背景色透明但是文字颜色不变
  2. 一文教你如何写出高效的软件测试用例?
  3. 如何在win下装ubuntu(硬盘版安装)
  4. Qt QDateTime计算时间差
  5. 【PhotoShop】人像处理
  6. Label smooth
  7. 判断 矩阵对角线元素相等
  8. awk中的NR和FNR的区别
  9. 世界银行的数椰子树挑战:人工智能如何帮助救灾?
  10. vue项目如何让局域网ip访问配置设置