如何设计开发一款优秀的HoloLens APP?

设计的逻辑

开发者在设计之初,首先需要明确的就是APP今后的适用环境及具体用途,能够为使用者带来一定的“附加值”;其次,开发者要充分考虑到程序内一些设定的操作手势是否能够与符合使用者的肢体习惯,用户能够以一种比较自然、轻松的方式对HoloLens进行操作。

基于真实世界的混合现实画面表现

我们认为,一个优秀的APP是可以在原来产品的基础上为其发展一定的“附加值”,而要想真正在真实世界中产生额外的价值,就必须在真实世界的基础上添加“有用”的信息,将虚拟世界有效的与现实世界进行结合。

比如,在一个家装案例的场景中,家装设计师可以通过建立虚拟世界,将传统的设计方案直接呈现在真实的房间之中,使设计师直观看到家装后的最终效果,来验证自己的设计是否合理。

便于用户操作的交互动作

在微软MRPP的培训中,有一项启发开发者进行设计的重要方法就是“Body Storming”,这个有点类似于“Brain Storming”,在“Body Storming”中,开发者们集思广益,从使用者的角度出发,探索、挖掘用户在使用时的一些手势、身体姿势等,如何才能使用户以较为舒适的动作去操作HoloLens,这些姿势、动作要怎样融入HoloLens APP的操作动作中,这些都是考量优秀的APP的重要条件之一。一个优秀APP最终是可以达成一种自然的交互状态。

混合现实(MR)的一系列设备从设计之初就从功能出发,紧密结合真实世界的特性也就决定了其在生产、生活中的现实性,这也就是为什么混合现实不仅可以在娱乐行业大展身手,也可以有效用于生产、生活,只有通过了解真实世界、与真实世界发生交互,才可以真正在使用中提高工作效率。

技术考量

首先,为使全息物体稳定在真实空间,APP开发者需要在虚拟世界中准确地建立空间锚(World Anchor)。空间锚应该设置在用户视线最集中的点,这样才能够保证整个混合现实中的全息物体的稳定。此外,对于一些比较重要的全息物体,它们的稳定性需要特别保障,这是我们就可以通过添加稳定平面(Stabilization Plane),使这些物体稳定地保持在相对位置, 稳定面Stabilization Plane的使用目的是使稳定性最大化,当虚拟场景中所有的全息物体都处于相同的稳定状态下时,被设定稳定平面的物体可以得到最大程度的稳定性。值得注意是,开发者们可以依照物品的重要程度,灵活地为全息物体添加稳定平面来提升其稳定性。

提升画面的流畅性

要使画面具备较优的流畅度,帧速(FPS)应保持在60FPS左右。以60FPS渲染时,能够最大程度上减少渲染后的画面和用户看到的画面之间的时差。但如果是低于30FPS渲染时,用户就会看到两次相同的画面,并且两次画面之间有着16.6ms的延迟,引发画面抖动等问题,严重影响到使用者的视觉体验,甚至会无法正常使用。

为此,开发者需要努力去优化程序和美术表现,充分利用HoloLens的每一分性能,在绚丽的画面和流畅的帧速之间取得平衡。

用户体验很大程度上会受到虚拟世界中全息物体的真实感的影响,影响真实感的因素很多,模型的面数、使用的材质、环境灯光布置等等都会影响真实感。而其中模型面数可能是最直接的因素,面数越多,虚拟物品也就显得越发的真实。

在使用HoloLens观看这些高面数物体时,由于像HoloLens这样的移动设备的处理能力有限,物体面数过高往往会占用太多效能,甚至完全无法运行,因此需要适当减面来使物体的真实性不受影响。这里为开发者们推荐一款优化减面的神器——Simplygon,它具备强大的自动减面功能,快速生成与HoloLens所匹配的高质量画面,扫除开发中的难点与障碍。当然,模型面数越高,使用Simplygon 的效果越好,如果模型本身面数已经不算太高,再减面出来的效果,恐怕就不堪入目了。

最后,当你具备以上的思考之后,就离开发一款优秀的HoloLens APP更进了一步。