VR各平台开发环境搭建
⾃⼰从⽹络整理出来开发环境搭建,请尊重原创,转载请注明。
(1)Google VR(Cardboard与Daydream)
(2)HTC Vive
(3)Oculus
api接口和sdk接口的区别
(4)Hololens
第⼀部分:关于Google VR 开发平台的搭建
⼀.Cardboard
2. 新建项⽬并导⼊CardboardSDKForUnity.unitypackage
3. 运⾏demo
4.通过demo 我们可以分析出搭建⼀个最基本环境的要素,⼩编在这⽤的是Cardboard 的旧版本。
5.通过将导⼊⾕歌VR统⼀包装资产>导⼊包>⾃定义数据包...。选择GoogleVRForUnity您下载它unitypackage并点击打开。确保所有的箱⼦都在导⼊包对话框中选中并单击导⼊。注意:您可能会被警告这些API将⾃动升级。接受并继续如果它发⽣。
6.在编辑器的项⽬窗格中,导航到资产>⾕歌VR> DemoScenes⽂件夹并打开ControllerDemo。您应该看到带有花纹⽹格平⾯上的场景⽴⽅体它上⾯漂浮。
7.您连接控制器的⼿机(不是⽿机⼿机)使⽤USB电缆连接到计算机。启动控制器⼿机上的控制器仿真器应⽤程序。
7.按播放在Unity按钮。你应该会看到⼏个⽩⾊⽴⽅体的⽴体游戏视图渲染。四处移动控制器的电话和看到⼀个黄点在游戏环境中⾛动
⼆. Daydream 平台
1.
2. 相关插件及类
3. 3.Daydream 的开发类似Cardboard 的搭建,可以看相关教程()
第⼆部分  HTC Vive
[github]. OpenVR SDK是由原本的SteamWorks SDK更新⽽來,新增對HTC Vive開發者版本的⽀援,也包含Steam VR的控制器及定位設備的⽀援。相關的API是以C++實作,已有C++經驗的開發⼈員可以直接學習。
[github] SDK⽂件說明(英⽂),針對主要界⾯解釋使⽤⽅法。包含
IVRSystem, IVRChaperone, IVRCompositor, IVRRenderModels 及 IVROverlay。
[github]SDK範例,從範例(hellovr_opengl 及 helloworldoverlay) 即可快速學習如何建⽴VR這個世界的⽅法,可以逐步修改成為你⾃⼰的應⽤。由於範例使⽤了Visual Studio套件的專案格式,請⾃⾏上Microsoft網站下載或是直接使⽤編輯器查看.cpp檔。
[u3d.as]使⽤Unity平台開發Vive應⽤所需要的套件。Unity平台擁有的Unity引擎可加快VR世界中3D特效的開發,當然若習慣使⽤
Visual Studio也是可以的,完全看開發者的喜好。
[steamcdn-a.akamaihd]HTC Vive安裝說明(英⽂),中⽂版本後續會再提供。
SteamVR 官⽅FAQ。相關問題這裡已有豐富的討論及解答,陸續會將重要的問答翻譯後放到論壇上。
拿到開發者版本第⼀件事情是將硬體的韌體更新⾄最新,可有效增進定位的速度及準確性
問題排除指南。
请⼤家⾃⾏下载
2.Steam
第三部分:Oculus
经过这么⼏天对Oculus研究,⼤概总结出了这么些经验,希望能对正在或者打算使⽤Oculus的各位GG或者MM有所帮助。
⾸先呢是安装Oculus,⽐较恶⼼...(表⽰光配置硬件环境,在下都配置了两天...(不过⽐起配了4天的⼤神,还算可以啦~~~))
(⾸先你得要有设备...)
第⼀步
腾讯的扣扣邮箱不管⽤!)
第⼆步
⼀般情况下呢,是打不开下载链接的,为啥呢?因为你没FQ~~~VPN想必⼤家都知道⼀些吧,像长城啦,赛风啦,Loco什么的,看⾃⼰爱好选吧。
不过这⾥要提醒⼀点,最好⼀个稳定的VPN,⽀持800M以上的数据更新,因为我们这个安装包是800多M(对啦,提醒⼀下,如果有以前的旧版本也就是安装
的作品,⼀定要确保其删除⼲净后再安装)
第三步
经过⼀段时间的等待就下载完成了,不过这⾥它需要你配置你的硬件环境,
也就是插线喽...
插在你主机对应的3.0接⼝上(必须是3.0接⼝,⼿柄的话还有3.0接⼝的话就接⼊,没有的话就2.0啦...)在这⼉呢⼤部分⽤户呢会出现传感器识别不到
也就是Sensor USB,如果等了很久都没反应的话,那就点右下⾓的Skip(跳过这⼀步),在以后的操作中呢他就会不停的提⽰你硬件设备没获取到这个
提⽰,不要搭理,⼀路狂跳!然后就到了使⽤虚拟头盔进⾏操作的时候,他会提⽰你⽤你的遥控器,点击⽅向按钮中间的那个按钮控制就⾏。
第四步
也就是卡死⼤部分⼈的⼀步,也是安装进程的倒数第⼆步(最后⼀步就是)
这⾥呢,它会提⽰你设置View也就是视图界⾯,如果姿势不对呢,就会⼀直卡在这⼀步...其实解决起来呢也很简单。
解决⽅法:带上你的头盔盯着你的传感器,传感器就会⾃动识别,你会看到你的传感器⾃动识别的⼀幕,看着很⾼⼤上哦~~(这就已经完成安装了)
友情提⽰:然后就安装好了,然后点击⼀个名叫Oculus的应⽤程序,点击设置按钮,⼀个齿轮状的按钮,弹出⼀个弹框,点击setting,你会看到你当前设备的⼀个链接
状况。
如果你想下载东西呢就去商店也就是Store。
安装完之后呢,我们开始使⽤Unity对其进⾏⼀个简单的开发,⾸先呢点击打开发包的那⼀步,就是导出的操作啦,然后点击PlayerSetting 进⾏设置,勾选⼀个带有
带上头盔后,你会看到⼀个虚拟点触点,把点放在你视野中所看到的⼀段英⽂上(其实是两段英⽂,第⼆段应该是⼀个Button按钮的东西,不是特别明显,将虚拟点投在其上⾯,就会有读条操作,读条完了后就可以看到你的项⽬啦)
然后就是关于⼿柄的⼀些操作,我在这⼉呢截了我以前在进⾏研究的⼀些图⽚,希望对各位能起到⼀些简单的帮助,⾸先导⼊
OculusUtilities插件,可以去官⽹下载
这⾥呢我只实现了RawButton的操作,其实Button也⼀样,只不过换了⼀个名字⽽已,本⾝没有太⼤的区别的,不要去在意,如果想⽤Button就对照这RawButton去看下就好了(对了,有⼀点忘了声明了,在你要控制的游戏物体上不仅要有你写的脚本还需要挂⼀个OVRManager的⼀个脚本,这个脚本是插件⾃带的)
第四部分:Hololens
伴随着数⽉的期待,终于拿到了预订的HoloLens开发者版本套件。随着VR/AR/MR技术的热潮,国内外均对它们的应⽤与盈利前景持有积极的预期,这也直接导致了国内外当前投资VR/AR/MR技术的热潮。⽆论是融资数⼗亿美元的Magic Leap,还是Facebook、微软等科技巨头布局VR/AR市场,这股热潮不仅出现在风险投资领域,还席卷了消费者市场和智能硬件市场,这⽆疑引领了下⼀波互联⽹产业的爆发,⽽我们作为技术核⼼的开发者更不能落下。正如乔帮主所说:“Stay foolish,Stay Hungry”,今天我们就来了解下AR/MR技术的开发特性,本⽂以微软出品的HoloLens为⽬标设备。
AR/MR是什么?
VR⼤家都已经很清楚了,VR即是技术,这意味着沉浸式全虚拟的使⽤体验。全虚拟沉浸式的体验带了独特的视觉效果,但是由于遮盖现实内容,仍导致了头晕、运动不友好等难以解决的问题。与之相对的则是AR/MR技术,这意味虚拟世界与真实世界交织的视觉体验。从⽤户使⽤体验来看,AR/MR⽆疑是更符合⼈类⾃然交互模式,代表了未来更伟⼤的发展⽅向。同时在笔者看来,由Magic Leap提出的MR(Mixed Reality)技术其本质与AR(Augmented Reality)技术并⽆区别,微软⽬前也在HoloLens⽂档中⼤量使⽤MR技术的说法,故此本⽂将
AR/MR技术视为⼀体。
AR核⼼特性
正如上⾯所说,AR具备与VR截然不同的视觉体验,所以其开发体验也与VR区别较⼤,下⾯我们来⼀起探讨HoloLens的部分核⼼开发特性。本⽂使⽤的开发环境为Unity HoloLens preview beta 14以及Unity Universal Windows Platform Runtime组件
开发环境
.安装清单
1.升级win10
4.Unity HoloLens Technical Preview,推荐⽤Unity。
⾸先:
1. ⾸先安装Unity引擎
2. 然后安装UWP Runtime
3. 最后可以根据需要安装离线⽂档⼯具
⼤家注意:设备要求--
64位Windows 10 Pro, Enterprise, or Education系统(家庭版不⽀持Hyper-V)
64位CPU
8G或更多内存
⼩编有个技巧(仅适合Mac 的⽤户)安装win10 ⼗分简单,⼀次成功,并且在搭建开发环境时⼗分快,不会超过⼀个⼩时(有Vpn 的前提下),安装win10 镜像的⽅法,注意分配给win0
最后,对hololens 的核⼼做个简单介绍:
语⾳识别Voice Command
语⾳识别同样是HoloLens重要组成部分,包括我们很熟悉的Cortana,同样能够为我们带来更⾃然⾼效的输⼊体验。
HoloLens的语⾳识别分为三个部分:
语⾳命令 KeywordRecognizer:通过关键词来执⾏动作
语法识别GrammarRecognizer:通过预设的语法来模糊匹配动作
听写 Diction:即语⾳转⽂字,⽤于输⼊
三个组件中语⾳命令特性最为常⽤,配合凝视能够完成绝⼤部分场景的需求。为了使⽤语⾳命令,⾸先要启⽤KeywordRecognizer实例,同时要预设好<keyword,action>来源。
KeywordRecognizer keywordRecognizer; Dictionary<string, System.Action> keywords = new Dictionary<string, System.Action>();
通过<keyword,action>数组来初始化关键词识别器:
keywords.Add(“activate”, () => { // 关键词动作 }); keywordRecognizer = new KeywordRecognizer(keywords.Keys.ToArray()); keywordRecognizer.OnPhraseRecognized += KeywordRecognizer_OnPhraseRecognized; //开始识别 keywordRecognizer.Start();
在响应事件中做处理,调⽤识别到的关键词事件。
private void KeywordRecognizer_OnPhraseRecognized(PhraseRecognizedEventArgs args) { System.Action keywordAction; //如果关键词在预设列表中,即执⾏其2动作 if (keywords., out keywordAction)) { keywordAction.Invoke(); } }
空间映射 Spatial Mapping
AR技术能实现的关键就是能够识别映射周边世界,这是全息对象与真实表⾯交互的基础,是AR技术的核⼼组件。HoloLens借助于微软特殊研发的全息处理单元(HPU 1.0)才能实现空间映射特性,幸运的是我们可以使⽤空间映射API来对真实世界做交互。
全息处理单元
我们可以利⽤SurfaceObserver组件来获取控件表⾯映射信息,下⾯是基本的操作:
SurfaceObserver surfaceObserver; void Start () { //初始化 surfaceObserver = new SurfaceObserver(); StartCoroutine(UpdateLoop()); } IEnumerator UpdateLoop() { var wait = new WaitForSeconds(2.5f); while(true) { surfaceObserver.Update(OnSurfaceChanged); yield return wait; } }
每⼀个空间表⾯都需要注册其Handle事件,⽤于实时调整空间映射信息和交互。
private void OnSurfaceChanged(SurfaceId surfaceId, SurfaceChange changeType, Bounds bounds, System.DateTime updateTime) { //处理空间表⾯变化 }