使用Unity3Dmiui开发版和体验版HoloLens应用是怎样的体验

HoloLens程序开发经验及小技巧分享 VR开发心得
目前科技界最感兴趣的设备之一是微软HoloLens。HoloLens背后的技术十分迷人,但也十分复杂。简单来说,它可以被描述为真实世界和虚拟世界的融合,其中来自两个&现实&的对象可以并存,同时可以实时地彼此交互。这种技术被称为&混合现实&。
许多开发者都为HoloLens感到兴奋,即便并没有太多早期用户购买了售价为3000美元的开发者包。好消息是,你其实不需要拥有一台设备就能为其开发内容。借助Universal Windows Platform,你的应用也能运行在HoloLens上。
1. 准备工具、SDK、IDE
从太空探索到建筑、再到游戏和教育,微软HoloLens都被用于革新这些行业,这款产品也已经找到了实际的用例。由于HoloLens使用了相对较新的技术,目前没有太多的工具用于开发混合现实内容。大多数熟悉的开发套件和软件适合在开发全息应用程序时使用。根据Program-Ace,一组最低要求的工具是:
3D设计:Autodesk Maya、3ds Max、Adobe PhotoShop、Substance Painter
动画:Biped for 3ds Max
开发:Unity、Vuforia、Microsoft Visual Studio、Windows 10 SDK、HoloLens Emulator(如果你没有HoloLens设备)
要开发全息体验,开发者必须拥有上述的工具。而这些工具都可以在微软官网上找到。一旦完成了安装和准备环节,你就可以准备开发一款全新的混合现实体验。
2. 设置全息图
当你通过这些3D建模和渲染工具来开发VR应用、游戏或HoloLens体验时,其使用方法仍然一样。不同之处只有当这些三维模型被集成至全息环境中才会出现。
虽然HoloLens所能实现的视觉体验十分惊艳,但开发者仍然需要小心地开发,以避免经常会遇到的现象:眩晕,也被称为晕动症。当用户身处VR环境中可能会出现晕动症,并可能会经历眼睛不适、头痛、恶心、晕眩和迷失方向等等。
在我们的开发过程中,Program-Ace的专家同样面临着相同问题,因为HoloLens应用的构建方式会导致晕动症。这时,近裁剪面(near clip plane)就能派上用场。在使用Unity时,近裁剪面需要设置为不少于0.85m,这十分重要,因为如果比这个数值小,物体就会过于靠近用户的眼睛,使得眼睛变成&斗鸡眼&。
除了会让视觉体验更难处理之外,这还会造成用户严重的不适。全息内容到眼睛的理想距离应该尽可能接近2m,因为这个距离不会出现双眼竞争(binocular rivalry)。
简单来说,投影到透明组合器的左右两块透镜的两张图像将在距离用户2米处完全重叠。在不可能把全息内容放置在推荐距离的情况下,你可以使用最有利的区域:即1.25至5米的范围。
开发者还应该注意视觉体验的另一个基本要素:帧率。为了确保HoloLens能实现愉悦和安全的体验,我们主张将帧率设置为每秒30帧以上。
但是,请注意不要偏离推荐值,因为太小的帧速率会导致前面提及的晕眩问题,而因为设备的有限的计算性能限制,系统也不能迅速处理过高的帧速率。
3. 用注视与全息世界交互
追踪用户的注视点对管理虚拟内容十分重要,尤其是HTC Vive和Oculus Rift。
为了实施这项技术,HoloLens会追踪用户头部在空间中的位置,每秒处理一个千兆字节的实时信息。我们可以想象一个涉及多个选择的简单应用程序:例如,一个解释太阳系的标准应用。当用户查看某个行星时,它就会变为高亮显示,并在其旁边显示更多的信息。
在默认情况下,HoloLens中细小半透明圆圈实际上是一个3D光标,会指明用户正在注视的位置。然而,它能够以任何形式呈现,无论是真实还是虚拟。
Unity会帮助开发者以多种方式操纵这个HoloLens特性。例如,已知的&广告牌&技术允许全息图总是面向用户。这对于诸如文本或按钮的UI元素特别有利。此外,开发者可以使用3D光标来吸引用户的注意力,并将其引导至必要的全息图或对象。
4. 用语音与全息世界交互
语音命令是用户与头戴式设备交互的最不寻常的方式。然而,它感觉更自然和直观,并为应用程序导航甚至是设备的UI提供了全新的频谱。Program-Ace专家为此创建了一组规则,开发者在使用Unity编程语音识别时必须遵守这些规则:
语音命令应尽可能保持简短,以简化非母语的发音,不要通过复杂的短语或句子混淆用户。
应在整个应用程序中使用一个预定义的命令来执行类似的操作,例如单击和打开。
通过基于手势的替代方法来复制语音命令,从而提高整体用户体验,并避免发音错误或不清楚的情况。
5. 用手势与全息世界交互
手势是与混合现实世界进行交互的新方式。这种输入方式已经被证明是有用和高效的操作。通过一系列离散和连续的运动,用户可以更轻松地控制HoloLens。
离散手势使用的是即时动作,例如点击图标或打开菜单;而连续手势则包含旋转或滚动。
当为HoloLens开发时,你应该确保设备通过突出显示图标、打开应用程序或执行其他适当的操作来迅速响应手势。类似于对用户的注视进行编程,开发者可以加入几行代码来警告用户他或她的手势位于视野之外。
然而,由于混合现实技术尚未成熟,HoloLens存在一定的局限性。例如,手部位置或对象放置并不总是可以被准确地识别。在为HoloLens开发时应该要考虑到这一点,并确保距离偏差不会对应用程序的功能产生重大影响。
<font color=#-23<font color=#-23<font color=#-23<font color=#-22<font color=#-21<font color=#-20<font color=#-20<font color=#-19<font color=#-19<font color=#-18
想知道在Unity中如何将游戏中角色对话的唇型与面部微表情达到次时代的水准吗?想知道...
近日,RLTY CHK工作室的联合创始人Nick Robinson发布了一篇文章,以媒体天师麦克卢汉...
VR设计师和开发者们开始着手如何让VR环境及体验更加有趣、逼真。以下是一些关于如何为room...
笔者在为《幻想装置》和《工作模拟》制作出混合现实的预告片以后,研究了更深层次的VR...
关于用EasyAR SDK 搭建AR 开发环境的教程,我已经写过很多了,不懂得朋友可以看下我之...一、Hololens概述
Hololens有以下特性
1、空间映射借助微软特殊定制的全息处理单元(HPU),HoloLens 实现了对周边环境的快速扫描和空间匹配。这保证了 HoloLens能够准确地在真实世界表面放置或展现全息图形内容,确保了核心的AR体验。
2、场景匹配HoloLens 设备能存储并识别环境信息,恢复和保持不同场景中的全息图像对象。当你离开当前房间再回来时,会发现原有放置的全息图像均会在正确的位置出现。
3、自然交互HoloLens 主要交互方式为凝视(Gaze)、语音(Voice Command)和手势(Gesture),这构成了 HoloLens的基本输入要素。同时传统的键盘鼠标等设备也被支持,自然的交互方式更贴近人类习惯,提高了交互效率。
4、 通用应用HoloLens 平台的操作系统为 Windows Holograpic,同样基于 Windows 10 定制。所以Windows 10 UWP 通用应用程序可以顺利地在 HoloLens 上运行。这不仅降低了研发和迁移成本,也让开发效率能够大幅提升。当然,说了很多 HoloLens 独特的特性和优点后,HoloLens 开发者版本也存在一些亟待解决的问题,包括视野较窄、凝视体验不佳、抗光线干扰弱和重量续航等问题。 但瑕不掩瑜,HoloLens 带来了真正的混合现实体验,拥有着强烈的冲击感,未来将大有作为。
二、开发环境搭建
开发Hololens之前需要准备以下环境(以下为我准备的环境)
2、(有真机可以不用模拟器)
4、Windows 10 SDK (10.0.14393.33) VS中进行安装
更加详细的环境配置可参考
三、集成HoloToolkit-Unity项目
在创建了标准 Unity 项目之后,我们需要集成微软官方提供的 HoloToolkit-Unity 项目。HoloToolkit-Unity 项目是微软官方的开源项目,用于帮助开发者快速开发 HoloLens 应用,能够快速为项目集成基本输入、空间映射和场景匹配等特性。
关于该项目的详细介绍,可以参考微软的开源项目
1、下载HoloToolkit-Unity代码&
2、使用unity打开HoloToolkit工程,右击Assets,导出Package
3、在自己的工程中使用HoloToolkit-Unity package
新建自己的Unity工程,Assets -& Import Package -& Custom Package 选择刚才导出的HoloToolket-Unity package, 导入成功后,可以看到HoloToolkit菜单
以下是此项目的结构和内容? Input 目录&& & ? GazeManager.cs 用于快速集成凝视射线特性;&& & ? GestureManager.cs 用于快速集成手势识别特性;&& & ? KeywordManager.cs 用于快速集成语音命令特性;&& & ? CursorManager.cs 用于快速集成可视化凝视组件。&? Sharing 目录&& & ? Sharing Prefab 组件用于快速集成场景共享特性。&& & ? SpatialMapping 目录&& & ? SurfacePlane Prefab 组件用于描述和渲染真实世界表面;&& & ? SpatialMapping Prefab 组件用于快速集成空间映射特性;&& & ? RemoteMapping Prefab 组件用于快速集成远程空间映射信息导入特性;&? SpatialSound 目录&& & ? UAudioManager.cs 用于快速集成空间声音特性。&? Utilities 目录&& & ? Billboard.cs 用于实现跟随用户视线特性;&& & ? Tagalong.cs 用于实现跟随用户移动特性;&& & ? Main Camera Prefab组件用于快速集成 HoloLens 标准主摄像机。
四、构建场景
1、新建空白场景后,我们需要删除原有的 Main Camera 对象,同时从 HoloToolkit/Utilities/Prefabs 目录中拖拽一个 Main Camera Prefab 组件到场景中,这样就集成了满足 HoloLens 需求的基本。主摄像机。对于 HoloLens,将主摄像机渲染背景设为纯色,颜色设为 RGBA(0,0,0,0)。因为任何纯黑的颜色将会被 HoloLens 渲染为透明,以达到不遮挡现实世界的目的。此外,HoloLens 建议摄像机视角近距离为 0.85,这个距离最符合真实人眼的体验。同时主摄像机位置必须重置为世界零点,即 xyz(0,0,0),任何全息图像将会以此为原点在周边世界中绘制出来。
2、点击& Create Empty& 创建一个空游戏对象,并将其命名为 Input,为 Input 对象添加核心脚本组件,分别为 GazeManager.cs、 GestureManager.cs、 HandsManager.cs 和KeywordManager.cs。这样就集成了凝视、手势和语音命令三大核心特性。对于凝视射线、手势识别和语音命令功能,均建议使用单例来进行管理,这样可以避免功能混乱,方便管理。同时为凝视设置可视化的指针,可以提高用户的交互体验和效率。
3、从 HoloToolkit/Input/Prefabs/ 目录下拖拽 CursorWithFeedback Prefab 组件到场景中。这样当凝视在全息对象时,其表面会出现可视化凝视组件。 当用户手势被识别到时,会出现一个蓝色的手掌图像,能够贴心的告诉用户可以操作了。
4、创建一个Cube对象并创建一个新的C#脚本,命名为 HoloTest.cs。
using UnityE
using System.C
public class HoloTest : MonoBehaviour {
// Use this for initialization
void Start () {
// Update is called once per frame
void Update () {
public void OnSelect()
//随机变换物体颜色
gameObject.GetComponent&MeshRenderer&().material.color = new
Color(Random.Range(0, 255) / 255f, Random.Range(0, 255) / 255f,
Random.Range(0, 255) / 255f);
5、HoloTest.cs 脚本的功能为随机更换对象的材质颜色,遵循 GestureManager.cs 中预设的OnSelect消息名称进入 Input 组件检视选项卡,为 KeywordManager.cs 组件配置语音命令。语音命令触发时将会执行相应的组件行为。 本例中,当我说出& test&时,触发Cube的 OnSelect 方法,来随机改变 Cube 颜色。
五、编译项目
1、为了满足HoloLens的需求,我们需要在 Player Settings 里面开启Virtual Reality Support,并在下拉列表中选中Windows Holographic,只有这样 HoloLens 才会将此应用渲染为3D应用,这一点十分关键。
2、同时从工具栏 Edit-&Project Settings-&Quality 选项卡中,将 UWP 平台默认画质设为Fastest。这是为了降低性能开销,官方推荐帧率为 60fps。&
3、Build Settings 视图中选择目标平台为 Windows Store,SDK 为 Universal 10,其他设置为如图所示,把Unity C# Projects勾上方便调试,点击 Build 按钮开始编译 UWP 项目。&
六、部署调试应用
使用 Visual Studio 打开编译后的 UWP 项目,在 Debug&(方便调试)选项上设置为x86(Hololens的系统类型,非计算机的)。&连接 HoloLens 到 PC,完成 Build 和 Deploy 后,我们在 HoloLens 中打开此应用。实际效果如图 所示。当我使用手势点击 Cube 时,它会随机变化颜色;而当我说出语音命令"test"时,Cube 仍会正常的变换颜色。
七、开发总结
使用 Unity 引擎开发 HoloLens 应用是非常容易的事情,大部分流程与开发 UWP 项目并无不同。但仍有不少需要注意的雷区和特殊要求,以下就是部分要注意的部分:&1. Main Camera 一定要按照官方要求配置,背景纯色且 RGBA 值为(0,0,0,0),这样才能避免遮挡现实内容;&2. Gaze 凝视特性需要我们使用 Raycast 来实现,注意处理射线未命中目标情形,默认凝视最远距离为 15 米,若是未击中物体,使用时可能会出现空引用异常;&3. 手势识别、拍照和语音命令等均需使用 Windows 特有 API,空间映射和场景匹配需要使用 HoloLens 特有 API;&4. 其他很多细节上的体验,例如可视化凝视组件、目标区域可视化指引组件,使用他们来给用户提示,可以帮助用户理解应用操作方法,提高使用体验。&
阅读(...) 评论()后使用快捷导航没有帐号?
只需一步,快速开始
&加载中...
查看: 606|回复: 2
HoloLens开发(一)—— 入门
TA的其他好贴
马上注册,加入CGJOY,让你轻松玩转CGJOY。
才可以下载或查看,没有帐号?
接触HoloLens有一段时间了,在学习和开发过程中遇到过一些坑,跟大家分享下
一、 开发环境搭建
http://blog.csdn.net/yechen2320374/article/details/
1. 系统要求&&win10&&64位,开启Hyper-V, 设置“开发人员模式”
2. 开发工具① —— vs2015 Undate 3
3. 开发工具② —— Unity + Windows Store平台
4. 开发工具③(可选) —— 模拟器 HoloLens Emulator
<font color="#. C盘大小建议200G以上,vs2015默认安装在C盘,undefined,个人家里的电脑只预留了100G,重装系统?看了看D盘,E盘,F盘,放弃.....
2.&&VS2015在安装update时,多勾选了一些东西,Apache Cordova Tools Package,导致can't open the appxmanifest,解决方法是卸载掉Apache Cordova Tools Package
参考: /questions//cant-open-package-appxmanifest-in-visual-studio-2015
3. 还有遇到一些未能解决的问题:
①系统更新——安装更新时出现一些问题,但我们稍后会重试。如果你继续看到此错误,并且想要搜索 Web 或联系支持人员以获取相关信息,以下信息可能会对你有帮助: (0x8024402f)
②win10系统,无法开启 “开发人员模式” 错误代码:0x
③unity导出windows store工程时无法创建证书
4. Unity导出的C#工程时,常常缺少一个程序集(在引用部分),导致vs打开时报错一堆,如下图——不过,莫慌,这个不影响导入HoloLens,原因未知
01.png (8.46 KB, 下载次数: 0)
20:15 上传
02.png (19.76 KB, 下载次数: 0)
20:15 上传
二&&开发流程
(参考1: http://blog.csdn.net/yechen2320374/article/details/)
(参考2: /en-us/windows/holographic/holograms_100)
如何让别人关注你?
谢谢分享!!!!!!!!
本楼回复(<span id="dp_count_)
如何让别人关注你?
这是微软的那个AR眼镜吗&&
本楼回复(<span id="dp_count_)
如何让别人关注你?
Powered byHoloLens SDK开发(Unity3d+VS2015+HoloLens Emulator),项目配置
HoloLens SDK开发(Unity3d&#43;VS2015&#43;HoloLens Emulator),入门简述:项目配置
当下AR、VR在各行各业(游戏、影视)的共同努力下,取得了很多前所未有的发展。目前存在问题有很多,游戏制作、影视拍摄方式和后期处理的效果等不管是工具、方式方法等都还不成熟,有些设备的交互方式也&#20540;得商榷。往往所有的假设和想象往往在实践的时候一下子就被打破了。对于公司来说商业模式也是一样的,是做平台还是做内容?如何付费?如何跟自领域进行深度结合,“”化反“?,”一切都是未知的。
在此混沌之际,微软推出重量级(贵)AR设备,当前开发者版本3000刀。据体验过的人评论效果确实ok的,不过据微软一贯的尿性,得打个大大问号(好几个)?????
作为相关开发者,那么来看看HoloLens Sdk它是怎么玩的......
系列文章:
HoloLens SDK开发(Unity3d&#43;VS2015&#43;HoloLens Emulator),入门简述:hello world
---------------------------------------------------简单的分割线-----------------------------------------------------------------
第一步:新建unity3d HoloLens项目
在安装完Unity3d&#43;VS2015&#43;HoloLens Emulator软件后,在桌面会出现unity3d HoloLens版图标,如果没有请认真完成软件部分。点击新建项目myFirstHoloLens。
1、在Hierarchy中点击Main Camera,调整Inspector中的&#20540;
a、设置Transform中Position为0,0,0;
b、调整Camera中Clear Flags为Solid C
c、设置Camera中Backgroud的颜色为0000000;
d、保存场景为main.
e、新建球体Shpere,并设置位置为0,0.5,2,便于在Camera中观察得到该物体;
*摄像机的位置为0,0,0,相当于设置HoloLens&#30524;镜的观看位置为0,0,0。摄像机是“捆绑”在&#30524;镜的
*可选设置Clipping Planes-Near为0.85(HoloLens推荐)
2、依次打开File-BuildSettings-Windows Store,配置选项:
SDK:Universal 10
UWP Build Type:D3D
Build and Run on Local Machine
Debugging选项打上勾,无影响
3、设置VR Support为HoloLens
依次点击PlaySetting-Inspector-Windows Store的图标-Other Settings
找到Virtural Reality Supported,打上勾。选择Virtual Reality SDKs,这里默认选择了Windows Holographic
4、非必选,设置输出质量为Fastest
5、编译输出HoloLens项目
a、拖拽main.unity图标到Build Settings下的Secnes In Build栏中;
b、点击Build按钮,选择输出文件夹;
c、几秒钟后,编译输出成功,会自动打款输出文件夹;
第二步:vs2015打开输出项目,在HoloLens Emulator中显示
1、使用vs2015打开第一步的输出项目,标准工具栏中选择编译平台为x86;
2、标准工具栏运行设备选择HoloLens Emulator 10.0.14393.0,并点击运行;
3、项目部署成功后,在HoloLens Emulator中运行效果图;
问题1:第二步2运行后,DEP0100 : 请确保目标设备启用了开发人员模式。由于错误 ,无法获取开发人员许可证。弹出为Windows 10启用开发人员模式。并且HoloLens Emulator不出现项目球体,未部署项目上去。
& 左键点击系统开始按钮处,依次选择设置-更新和安全-针对开发人员,选择开发人员模式。再重新点击运行,即可。(图11)
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?【图片】开发商Asobo分享HoloLens增强现实游戏设计心得【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:78,198贴子:
开发商Asobo分享HoloLens增强现实游戏设计心得收藏
法国开发商Asobo Studio最近推出了两款游戏《Young Conker》和神秘游戏《Fragment》,目前都登陆了微软HoloLens。Asobo首席法务官David Dedeine表示之所以能获得与微软一起开拓增强现实的机会,是因为工作室创作了一系列成功的游戏,获得了皮克斯工作室的认可。最终Asobo与微软一起合作,开发游戏《Kinect Rush: A Disney-Pixar Adventure》。他补充道设计增强现实体验与先前的工作经历截然不同。他说:“这是我有生以来第一次创作有点像圈套的体验。为HoloLens设计游戏,需要非常仔细认真,因为它所用的范式是与众不同的。如果不反复检查你的本能反应,有可能就会犯下大错。如果你够聪明够与时俱进,你就能和经验丰富的电子游戏玩家一样棒!”他表示虚拟现实团队也面临着增强现实发展所遇的挑战。他说:“你不能确定相机的焦点,因为用户即是相机。你无法强迫用户注视某个地方。用户选择的自由给技术带来了许多有趣的限制。”但这只是冰山一角。Dedeine说:“在HoloLens中一切都变了。需要对游戏进行调整,以适应玩家所处的环境,创造更好的体验。资源结构需要进行改造,引擎运行资源的方式也要随之进行改造。甚至你查看游戏的方式与创作时的方式都不一样。”一个关键的提示:在开发过程中,Dedein强烈推荐使用立体显示屏。他说:“如果不能给所有人配置OLED屏,那3D屏幕是唯一能重建该设备立体属性的方式。”为了充分发挥HoloLens的性能,你需要绘制玩家所处的环境。“为了确保程序可以在任意地方使用,就需要在不同的房间情景下进行测试。最好的方式就是运用一个经典的电子游戏技巧,即创作能达到99%真实的房间配置,并应用到虚拟世界,测试玩家的行为。”另一个提示:给玩家充足的时间,以适应新的神奇的现实。他说:”戴上头显,生平第一次看到全息影像,难免喜不自禁。我们谈论技术参数,但当你看到Young Conker跑到你的咖啡桌上,你坚信它就在那里。你已经惊呆了!“Dedeine说:“不停惊叹’我的天哪‘!但在开始真正的体验前,你需要给玩家充足的时间,去接受这个新事物,并且去适应它。”YOUNG CONKERAsobo其中一款游戏是根据Rare公司IP Conker游戏设计研发的。一开始,就出现一个具有识别度的角色在做着一些日常的动作和收集钱币。但这个角色一直在绕着你的客厅跑,在墙上和家具上爬来爬去。Dedeine强调这个游戏的主角并非Conker,而是大小和体型都专为HoloLens设计的Young Conker。Dedeine说:“在角色成型前,我们做了一些雏形,尝试了不同的形状大小,以搞清楚适合这类互动游戏的角色的体型大小。在与玩家互动中,这个角色够大了么?但如果太大的话,又会占据过多的空间,那开展游戏的空间就缩小了。”Young Conker对身处的环境非常敏感,当它走到咖啡桌边缘时,就会出现头晕摇晃一类的表现。在一些有弹性的物体上面如沙发,他就会蹦蹦跳跳的。FRAGMENTDedeine说:“Fragment是个全新的增强现实游戏。游戏的角色是真人大小的。”这个应用从《海军罪案调查处》之类的侦探型美剧,《钢铁侠》中的抬头显示器、交互界面等中吸收了许多灵感。简而言之,假定玩家与一家根据记忆展开调查的经纪公司进行合作。玩家会发现他特别擅长这活。与经纪公司联手,调查和解开一个特别的秘密。Dedeine估计玩家需要6到7个小时才能解开秘密。除了确保真人大小的角色能够自然地坐在玩家的地毯或沙发外,还要确保它能像个自然人一样行动。Dedeine说:“能够在真实世界,自然与玩家互动,这是非常困难的。比如,所有人都知道“个人空间”,就是距离太近,会让人感动不舒服。无法解释,但确有其事。与技术无关,这是一种心理反应。
登录百度帐号推荐应用

我要回帖

更多关于 深入体验php项目开发 的文章

 

随机推荐