Notifications
Article
Unity Labs 新一代AR/MR工具:Project MARS
Published a month ago
2.1 K
7
Project MARS是Unity针对混合和增强现实的新一代工具包,专注于帮助创作者,创作能在世界任何地方运行的空间计算体验和游戏。工具包包含两个主要部分:一个Unity的拓展手机伴侣应用,和AR头戴式显示器(HMDs) 作者:Timoni West,2019年10月2日
计算机技术的发展正处于一个非常迷人的转折点。无处不在的传感器与高速处理器终于能实现自1960年代以来就一直提及和测试的空间计算图像。终于,各种小而灵活的电脑如今强大到能录入大量真实世界的信息,然后再利用它们做些有趣的事情。
Unity长期以来被用于制作游戏和模拟场景中的数字世界。可是我们只能经由一个小小的窗口来体验这些世界,经由各种外设控制我们的人物在其中四处探索,而我们自身却仍坐在沙发上。虚拟现实(VR)则让我们步入了这个世界,实现了人与虚拟空间更亲密的接触。混合现实(MR)则将数字对象带到了窗口另一头的真实世界中。
越来越多的创作者在学习Unity创作混合现实体验时的优势,感受到Unity的强大之处:所有为数字世界构造的系统都可在开发时加以利用(如动画系统、物理系统和导航系统),以创造出可在真实世界中运行,能对现实变化做出反应的应用。
而Unity Labs的创作工具团队深挖AR/MR使用案例后发现,不仅应用要能在真实世界中运行,编辑器中也需要更多的现实信息。我们必须以一种简单的方法告诉Unity什么是现实,什么是虚拟,方便我们设计、开发、测试现实世界中的应用。
所以Project MARS出现了,作为一个新的Unity工具包,它能帮助创作者制作可在世界任何地方运行的空间计算体验和游戏。它包含了两个关键部分:一个Unity的拓展手机伴侣应用,和AR头戴式显示器(HMDs)。
在2018年的Unite柏林我们公布了Project MARS。随着beta版发布日期的临近,我们想分享下自首次公布以来我们构建的新功能以及现今工具包的概览。

MARS核心功能及亮点

Simulation view(模拟视图)

Simulation View(模拟视图)是MARS最重要的新功能之一。MR/AR应用中有一个奇特的特点:应用需要定义两个不同的世界,一个Unity世界,一个现实世界。在Simulation View中我们可以在一个模拟的现实空间中摆放对象或测试事件。这个新的编辑器窗口专门用于输入真实或虚拟世界的数据,如录制好的视频、直播视频、3D模型和扫描数据,然后你就可以直接使用这些数据开始铺展自己的应用。该窗口包含的工具和UI可以用于观察、构建原型、测试或可视化健壮的AR应用,测试应用的实际效果。
模拟视图解释起来很简单,但要成功开发,我们需要创建一个复杂系统来解决所谓的“模拟鸿沟”。模拟鸿沟是指电脑中完整全面的数字对象数据和现有设备及传感器能检测到的不完全、不完美的数据之间,所存在的不同。我们尝试了各种不同的方法来解决这个问题,从模拟表面数据探索到极具抗变换性的查询系统。我们将在往后几篇博文中详细介绍这部分内容。

Simulation device view(设备模拟视图)

Simulation device view(设备模拟视图)是类似模拟视图的功能。我们不仅可以在Unity编辑器中模拟真实世界,还可以模拟设备在世界中四处移动。该功能可帮助我们体验到应用的实战效果,如此一来我们就无需在现实空间中一个个实机测试AR应用,极大地减少构建时的迭代时间。我们可以用键鼠控制一个设备模拟镜头,或模拟一个设备运行伴侣应用,导入现实数据到编辑器的流程。

描述真实世界创作理念的新方法

MARS有一系列的新体系帮助我们在工作流中描述、理解、可视化真实世界的对象。状态定义对象,对象组成场景。
我们先从Conditions(状态)说起,它描述了我们所见物的特征:大小、GPS位置、形状等等。
接着,我们定义Real World Context(现实环境),由一系列的状态组成,比如要描述一张桌子,我们可以用表面大小(如“该表面至少有1x1米”),对齐(“该平面是水平的”)和高度(“该对象至少离地1米”)。
在定义时比较重要的一点是这些状态需要较为模糊,能容许用户所在空间的变量。鉴于此,空间状态需要由一个包括最小和最大数值的范围来定义(如“表面大小约为1x1平米到3x3平米”)。调整空间状态时可以调用场景中的Gizmos,在编辑器中可视化并调整范围的大小。
虽然许多这些大小、高度、地理位置和其它状态都是对象的空间属性,但它不一定是关于空间的,我们可以定义一天中的时间和天气(“该内容应该在晴天的中午展示”)。
为了创建更复杂更特殊的行为,我们可以将这些现实环境串在一起,组成集合来描述更大的场景。比方说你想开发一个AR视频流播放应用,希望将回放控制放在咖啡桌上,将视频库放在书架上,而将虚拟屏幕放在房间里最大的墙上。我们需要先定义每个现实环境的组成(咖啡桌、书架、墙面),再将它们归入到包含多个现实对象的房间描述数据中去。
当然,在这些描述现实的阶段中,需要考虑到用户环境不一定会有所描述的对象。比如用户没有上个例子中的书架,想要应用能照常运作,我们需要适当地调整要求,让其更加简单。出于这个考虑,我们提供了Fallback(备选)事件函数。我们可以用其定义一个次好场景,然后再定义一个最简单场景(比如用户仅能使用一块表面)。这种“最理想→可接受→最简单”层级可以帮助我们平衡不同场景的表现力,不论是富含内容表现的最理想场景(用户精心地根据设计预想布置了环境),还是仅提供基本功能的最简单场景(用户环境与设计预想完全不同,设计时没有此环境的扫描数据)。
总之,状态描述单个对象的属性;一系列状态可描述现实环境;而一系列现实环境则可描述整个预想的环境。有了这些元素,我们就可以为应用设定一个“最理想→可接受→最简单”的层级式效果了。
我们也可以使用Trait Conditions(特征式状态)定义具体的特征,将其与内部的科技栈或已命名的属性相匹配。在不同的设备和软件上,我们可以命名任何东西,包括情景式房间对象、3D标记点和定位锚点。我们希望让该功能有尽可能多的灵活性,以便在将来的世界数据化技术中,以及AR Foundation的属性类型中也能有用武之地。今天我们定义的特征虽然只是“地板”、“墙面”或“天花板”,但是在未来,这些特征为已知对象(猫,狗)和属性(木头,草)的定义打开了巨大的可能。当发展到这个阶段,相信每月都有激动人心的更新,我们需要确保Unity能支持所有的这些数据。
当定义完对象的样式及位置后,放置时可能需要更多的颗粒感。我们创建了一个Landmarks(地标)系统,让对象在对应现实环境中的放置和朝向可以更加细致。

高级数据操纵

推导API属于一种高级功能:用户编写出与MARS世界互动的脚本能一次性被理解,不是一次一条数据。该功能允许我们做出高级的数据推导,组合、创建或转换数据。
一个很好的例子是在扫描一块空间后,应用可以推断出最低、最大的平面为地面。部分设备,如HoloLens,默认提供一块地面,但是其它的感应器和科技栈则不提供。推导API功能让我们能混合、配对输入数据,更好地描述现实世界,创作出其它有趣的事件。另一个比较重要的点是,这些代码不会影响到应用的逻辑。

伴侣应用

虽然我们在Unity编辑器中做了大量工作,尝试将现实世界带入编辑器,可如果不能利用好非常适合处理现实数据的移动设备,也算不上称职的开发人。这就是为什么我们创建了MARS AR设备伴侣应用。首次迭代是针对手机的:应用能通过Unity云服务连接到项目,然后像贴3D贴纸一样布置资源。还可以创建状态描述、录制视频和记录世界数据,然后直接将其导出到编辑器中。这是拉近现实世界和数字世界的另一进步。

下一步计划

Alpha测试

MARS现在正处于封闭alpha测试阶段,我们正寻求与推动空间应用边界的团队和合作者一起合作。我们想让大家来考验MARS,给予我们反馈,帮助我们设立新的路线图重点。我们已经打下了基础,希望该功能的开发方向是正确的,可以帮你制作出令人惊异的体验。

致谢

Project MARS的灵感和许多需求来自于我们硬件和软件的合作伙伴Microsoft、Magic Leap、Google、Facebook等奋斗于创新一线的公司,他们正致力于开发基于地理位置的虚拟体验、汽车可视化、太空模拟器、建筑预览模型、创新的移动AR游戏以及更多。非常感谢所有与我们合作讨论过的公司,特别感谢Mapbox与我们一同构建了首个完整空间应用。
我们在构建部分内容时利用了混合现实研究团队先前的成果,在开发时又与XR平台团队紧密合作。双方的AR Foundation和XR Interaction套件为构建MARS提供了坚实的技术基础。
如果你想了解更多有关MARS的内容,想继续跟进我们往后更多的版本发布,请在这里登记邮箱,并访问我们新的Project MARS页面吧。
开发过程中遇到问题?在这里提问:connect.unity.com/g/discussion
觉得这篇内容不错or有待提高?请在下方评论区留言。我们会根据大家的需求,优化内容产出^_^
Tags:
Unity China
694
Comments
末多末
a month ago
期待(o^^o)
0
SunnyDecember
a month ago
需要付费的吗
0
LL
Liwen Lin
Staff
a month ago
chen这个工具包在哪里下载
应该是正处于封闭alpha测试阶段,可以通过文章末尾的链接来跟进情况。
0
max
a month ago
主程
这类东西的问题就是模拟出来的东西和屏幕里的真实世界不是“硬链接”的,本就不像一个世界的东西,还会有相对位移,实用性堪忧。
0
c
chen
a month ago
这个工具包在哪里下载
0