时间:2017-06-20 来源:互联网 浏览量:
6月18日,由微软举办的“HoloLens与混合现实技术集会深圳站”在腾讯大厦举行。会上,微软总部Visual C++项目经理陆榕、微软(中国)有限公司技术顾问梅颖广与到场开发者分享了如何利用Unity打造MR体验。
以下内容由VR陀螺整理,有删改。
用unity开发MR相关应用,目前主要是HoloLens,后期会有MR的头显设备。其实不管用什么设备,只要是MR框架上的设备,都可以使用这个开发方法。
整个演讲分为五个部分:
1、开发的准备工作。
2、没有开发过HoloLens有一个零基础教程。【Holograms:101】
3、微软的开源项目HoloToolkit-Unity。
4、HoloLens的新的交互方式在unity中怎么开发。
5、HoloLens更趋向AR类的眼镜,怎么在HoloLens使用vuforia SDK进行开发。
一:开发的准备
1:环境:推荐使用Visual Studio2017,不过其实从Visual Studio2015Update 3就可以了。从公司战略上来说,我们要给大家推荐最新的。
如果你要开发MR的头显内容或者以后的话,那就必定要用Visual Studio2017。
3:安装HoloLens的模拟器。不管你有没有PC端的模拟器,都是推荐安装的,这样不用每次修正都到头盔上。
5-6:unity推荐版本最新的,从unity5.4开始就支持HoloLens的开发了。现在是unity5.6是最好的。
Portal的话也推荐使用。
7.8.9是你的电脑开发配置相关,需要在64 位 Windows 10专业版、企业版或教育版下开发。
4 核及以上 64 位 CPU,8G 及以上内存,配置虚拟化与 Hyper-V。GPU 支持 DirectX 11.0 或以上,WDDM 1.2 驱动及以上的版本。
当然这些是基于HoloLens的开发,如果是其他沉浸式MR开发的话,我稍后介绍。
下面需要说到的是两类应用。一类是在运行的时候是带窗口的。这一类可以将2D的窗口随意地贴在地上、墙上、天花板上,叫2D类应用。这个非常容易,不是我们这节课的重点。
第二个是全息应用,就是和真实场景的MR的应用。
这类应用也有两个方法,第一个是使用最原始的Holograms的,对性能要求和经验比较多。
一般来说我们还是推荐unity来做,就足够了。
HoloLens上90%的应用都是用unity开发的,这是unite大会上说的,这个数据应该是可靠的。
开发过程中包含的部分(HoloLens)
分为18块。3个部分。
最上面的6个:3D程序、材质、脚本、贴图、……基本上,HoloLens就是一个标准的3D应用。
最下面的这6个:HoloLens所具有的特有的,HoloLens有三个最主要的交互方式,当然传统的方式也是支持的,不过我们推荐这三种:凝视、手势和语音。
这是三个GGV,三个英文单词的首字母。
后面是三个spatial,一个是空间映射,第二个是空间声音,你在程序中需要处理,第三个是空间坐标,需要不断扫描,坐标是不断形成的,以此在扫描相对位置后,保证你看到的环境,画面是相对稳定的。
这一部分是你做应用开发的是你要特别注意的。因为这时候HoloLens特有的。
中间这一部分是工具,也是分为6个,这6个工具可以帮助你完成上面6个和下面6个的效果。
当你开发的时候,你先要确定自己需要的是哪一块,然后再去找处理这一块的方法。
二:开发从零开始【Holograms:101】使用介绍
1:打开unity,选3D
2:Hierarchy 中找到Main Camera,做一些设置:
01、坐标归零,
02、Clear Flags 为 Solid Color,Background,设置成黑色。原因是HoloLens和电脑的成像原理不同,所以你设置为背景的话,要选黑色。
03、Clipping Planes 的 Near 推荐为 0.3 ~ 0.85 之间的值,不在这个区间的话,在HoloLens不会被显示。0.85之内差不多是你手臂比较自然的交互。
这个距离可以自己调,不过这个距离是沉浸感最好的。
3:设置品质
设置品质,可以找到Unity 编辑器菜单栏 Edit → Project Settings → Quality,推荐选择最上面的fastest。
这是推荐,从开发的角度,更关注于速度。
4:构建
Unity 编辑器菜单栏 File → Build Settings,微软从Windows8开始,unity就把应用都归类到Windows store里面的。所以要注意选择 SDK 为 Universal 10,Target device 为 HoloLens。
下面有个UWP SDK种类选择,需要选择D3D。不要选择XAML
这里注意一下Build Settings,选择VR。这里HoloLens是归类在VR里面的,这里你要勾选一下。
之后就和之前的操作一样啦,如果你安装了模拟器的话,旁边会有模拟器的界面。你可以运行,如果你是直接连的HoloLens的话,你可以直接输出到HoloLens了。
你可以在PC上使用键盘鼠标,模拟凝视、手势操作。
按一个按键,代表你做了开发动作,就像你玩双摇杆的游戏。也是通过键盘,所以,你勾选了键盘的话,可以模拟你的凝视、手势操作,如果没选的话,就不会去模拟你的操作了。就变成键盘。
第三部分:HoloToolkit-Unity工具介绍
https://github.com/Microsoft/HoloToolkit-Unity
有一个是HoloToolkit,后面没有-unity的,可以选择其他引擎开发。你如果选用HoloToolkit-Unity,你拿过来对你的开发其实是相当有帮助的。
也是分为六个部分,每一个部分大概有这么些内容:
第一个:比如说交互方式Input,基本上就是那三个交互方式的处理。分别是 GazeManager.cs、 GestureManager.cs、 HandsManager.cs 和KeywordManager.cs。现在都叫做InputManager。
之后肯定也会对应其他的头显设备的,包括以后的VR设备。所以全都归类为InputManager了。
第二个是空间映射、空间声音,如果你要模拟,你可以直接参考HoloToolkit-Unity的代码写法就可以,如果你不参考的话,你就需要自己写,相对麻烦一些。
还有一个是utility,比如说要做一个“广告牌”,在北京站我以为都知道,我就跳过去了。举手的不多,我也不深入讲了。
还有交互方面的视角。如果你要换一个视角,如果你没有UI的话,用户会很茫然,戴上去后什么都没有。这个时候你有两种办法,比如在用户看的方向模拟声音,只要他不是耳朵上有障碍的话,他会往那个方向看。第二个是做一些箭头指示,引导他往哪个方向看。
箭头指示到底这么做呢?utility里面有可以参考的。
其实你就会发现,在HoloToolkit-Unity里面有很多功能,只要你去挖掘的话,能给你很多的帮助,其次HoloToolkit-Unity在目录的编排也优化得比较好。比如脚本就在脚本目录下,材质就在材质目录下。
你写了这么多我还真不会用,HoloToolkit-Unity文档方面的教程不多,但是你可以在最下面有个test目录,就是HoloToolkit-Unity-test。就是一个测试,把所有的功能都有测试案例。
你直接到test里面去看,你就知道怎么用。这里目录非常有用。
最后说一下,HoloToolkit-Unity具体怎么用呢?
01、HoloToolkit-Unity就是一个开源的东西,你从unity进去,你就可以看到基本模块,你可以直接打包。
使用unity打开HoloToolkit工程,右击Assets,导出Package。
你可以选择你所要导入的package。
02、【操作演示】
03、在这边你可以看到一个build,在这里你可以用来build工程,你简单一点也可以直接输出。也可以直接发布到HoloLens真机上,非常方便。
不过提醒一下,你还是用unity自己的build去做,比较安全一些。
第四部分:HoloLens的特有6大部分怎么开发。
6大部分:GGV和空间
凝视:两个方法,射线的交互,做一个碰撞检测。
手势:在unity中有一个叫手势识别器的东西,它不是判断手的动作的,它之后一个事件,就yes和No。
只要这个事件被触发,这个函数就会被调用。
语音识别:这个要提醒的是,现在HoloLens主要是识别英语。其次是需要一个麦克风和网络,做语音识别的话,这两个记得打开。
都在InputManager里,大家拿去用就可以了。
空间映射:spatial mapping,你不能自己修改,你可以保存下来,这个与你看的方向有关。你看哪个地方,哪个地方就会产生空间映射。
Unity里面也有一些函数是可以获得空间映射的数据的,如果需要的话,可以下载下来,减少你空间扫面的时间,你可以把数据在unity里面用。
Unity里面有组件是和它配套的,比如game object。
空间声音:unity有一个空间音效的组件,你直接就可以用,在插件上你只能选择微软的,其他的不支持。参数都是固定的。
声音的3D效果,拖到最右边效果是最好的,这些操作你只要按官方推荐的就好。
空间坐标:空间锚标
比如三个设备看到的物体是同一个,那怎么实现,就是那个物体对三个人来说是在同样位置的,而且一个人交互,另外两个人也可以看到,那就是首先需要设备是全套,其次是交互的数据三台设备是共享的。最后也是最重要的,那就是空间锚标。
第五部分:如何用vuforia开发HoloLens应用
如果写过手机AR游戏的话,对vuforia还是比较熟悉的。只要你按这个步骤去做,就可以实现了。
1:下载vuforia
2:装在unity工程里面,根据你的系统选择相应的版本下载即可。例如我的是Win10 64位,我就点击5.4.1的“下载(Win)”按钮,选择Unity编辑器(64位)下载。
你把HoloLens里面的主相机(场景camera)拖到这个AR camera,那你在HoloLens看到的东西就能被vuforia的相机采集到。
3:配置项目以使用Vuforia应用
隐藏部分:最后是沉浸感设备开发者的一个小小内容
不少开发者在问,微软的VR平台现在构建地如何了,给大家汇报一下。大家都说微软只注重AR,MR,不注重VR产品,其实我们只是稍微晚了一点啊。
从MR的HoloLens和沉浸式头显设备放在一起,HoloLens开发有6件事情,MR会扩展一些。
第一是,HoloLens是不支持motion Controller的,只有在VR里面有的。
第二是手势,以后是VR产品是没有手势识别的。你直接使用motion controller就可以,不需要对纯手势进行识别。
第三个是空间坐标,空间声音,都有,只有空间映射目前还没有ready,现在大家装过创意者版本吗?等今年秋天就会支持空间映射了。
MR现在到底准备的情况怎么样?
Ready和不ready的东西我都列在这里了。
Unity有课程,MR的产品没有课程,只能自己去看,unity需要5.6的技术预览版,才能开发VR产品。
Unity还是不推荐发motion controller的,他还是推荐使用XBOX的手柄去操作VR类的产品。
Ready的:
HoloLens的文档大量更新,你可以直接看文档,还有就是社区。做MR的产品的话,一定是Windows 10的创意者更新以后。你可以先看看文件,操作可能要晚一点。
推荐配置:4 核及以上 64 位 CPU,8G 及以上内存,配置虚拟化与 Hyper-V。GPU 支持 DirectX 12.0 ,WDDM 1.2 驱动及以上的版本。
我们的联系方式:
商务合作 | 采访 | 投稿 :文静(微信 mutou_kiki)
交流分享 | 爆料:案山子 (微信 shimotsuki_jun)
投稿邮箱:tougao@youxituoluo.com