联手开发者,Oculus发布手部追踪交互开源库HandPosing
介绍了他的手部追踪开发经验,以及开源所述库的决定
(映维网 2021年04月07日)手部追踪在创建沉浸式的和直观的虚拟现实体验方面有着巨大的潜力,特别是它能够增强社交时的自然表达。诚然,所述功能依然存在巨大的改进空间。
所以在过去的半个月里,Oculus一直在与来自马德里的卢卡·梅菲斯特(Luca Mefisto)合作。这位充满激情和才华的VR开发者一直致力于解决在VR中构建手部追踪交互的最大难点之一。现在,Oculus和梅菲斯特共同发布一个开源库,其希望帮助大家轻松地创建优秀的基手对象交互。另外,团队同时在App Lab发布了一个演示内容《Hand Posing Tool: Pirates Demo》。这款应用以一艘海盗船作为舞台,而玩家可以执行各种类型的交互:操纵船舵,装填炮弹,点燃引信,抓起一本书,打开一个瓶子等等。所述应用完全开源。
对于基手交互应用,开发者需要先进的工具。另外,基手交互存在两组挑战。
第一个挑战是:在虚拟现实中,当双手与对象交互时,最好的表现方式是什么?团队发现,最引人入胜的方式是在抓取对象时锁定姿势。与动态的基手交互(如由物理或碰撞引擎管理)相比,尽管牺牲了保真度,但它提供了更强大的稳定性。保持抓取姿势的稳定感觉非常好。值得一提的是,Oculus表示这在手部追踪应用中已经是一个明显的趋势:牺牲一定的保真度来换取稳定性。另一个例子是手部追踪丢失恢复API。当丢失追踪时,可以用预制动画替换真实的追踪数据。即使在手部追踪失败的情况下,它都能很好地保持沉浸感。
第二个挑战是:如何创作当手抓取对象时的固定手势。这通常由需要美术为每个虚拟对象手动创建手势。这是一项艰苦的工作,因为每个对象需要创建多个姿势。利用这个全新的库,系统可以为手部追踪自动创建相关的手势。团队同时在自动生成姿势,巧妙地利用对称性(例如,不再需要分别记录左手和右手的姿势,或者沿着一个轴记录多个姿势)。
卢卡·梅菲斯特日前在专访中介绍了他对手部追踪的经验,以及开源所述库的决定。下面是映维网的具体整理:
1. 请介绍一下你自己,以及你最初是如何开始涉足VR
我是一名软件工程师,从2010年开始涉足XR。与当时一样,我现在依然对这种技术感到非常兴奋。
我当时供职于一家主要是开发培训模拟和营销应用的公司,而公司在Oculus DK1一问世就选择进军虚拟现实。当我第一次尝试的时候,我感到非常震撼并决定全心全意投身其中。我最终辞掉了工作,并与伙伴创建了VRManchester社区,然后我们与尽可能多的项目合作,同时始终在实验性项目和商业化项目之间保持平衡。
从那时起,我发布了一些游戏,与知名美术和非政府组织合作,为大公司和小企业解决问题,帮助塑造社区,并在其他方面提供教学指导。这个领域存在太多有趣的问题,我喜欢参与其中。
2. 你第一次尝试手部追踪是什么感觉?
目前我在业余时间搞的一个项目是为后天性脑损伤患者提供一种神经康复工具,我正在与一个神经心理学家团队合作开发。
无障碍是关键,而手部追踪是一个明显的选择。我过去曾在实验性项目中使用过手部追踪解决方案,而那时的体验并不是非常理想。
但Oculus Quest将所有这一切都集成到了头显之中,能够切换选择控制器和双手的能力,再加上一个十分契合OVR代码的SDK,它将这项技术变成了一个无需多想的解决方案。
3. 有什么很棒的地方吗?你经历了哪些痛点?
对于我们的患者来说,不必掌握和理解控制器的扳机键是无障碍方面的一个巨大飞跃。另外,沉浸感的增强允许患者更加专注于练习,因为活动双手非常自然。这同时提高了体验的安全性,因为如果失去平衡,患者可以自由地利用双手寻找扶靠。
遗憾的是,这一切并不是那么简单。有些脑损伤会让患者把虚拟世界看得‘太理想当然’。当看到一只手消失,用不切实际的方式抓取对象,或者在追踪抖动时,这都会让患者质疑体验,以及自己的本体感。我们不得不在设计中投入大量额外的工作来缓解这些问题,部分包括我们与社区共享的开源工具。
4. 你是如何想到《Pirates Demo》的呢?
构建《Pirates Demo》和开放源码这是一个很棒的决定。首先,它迫使我在另一个更常见的场景中测试这个Hand-Posing工具。它帮助我确定了众多难点和重新设计了一些系统,以便其他开发者可以更容易地使用和扩展它们,而它同时可以作为如何使用工具的完整示例。
它同时允许我们与更广泛的用户群进行交互测试,不仅是使用内部工具的开发者,同时还有渴望畅玩游戏的玩家。大家越是发现这个工具的存在,其就更有更多的渠道与我们沟通并提供反馈。
5. 对于与Oculus团队的合作,你感觉如何?
很高兴发现,我对这个工具的看法与他们的看法如此一致。从一开始,他们就指导(并支持)我改进这个工具,同时依然允许我控制项目的总体方向和范围。当了这么多年的‘独狼’,能够与众多天才大脑一起讨论设计决策让人耳目一新。真希望有个更好的同伴。
6. 开放源代码库中有什么特点?
这个工具的主要特点是能够创作高质量的抓取姿势和锁定它们。将手部追踪作为开发工具,而不仅仅是交互工具,你可以在几秒钟内生成对象的姿势。它同时支持锁定曲面、姿势镜像和其他许多高质量的功能,所以你只需‘模拟’一次抓取姿势,然后就可以根据需要多次使用。玩家是否使用不同的手部骨架、控制器或其他手部表示并不重要。
我们构建它时考虑到了可扩展性。我不想强制其他开发者采用我们的工作流程,而是可以利用他们当前的工作流程,这样他们就可以添加姿势并继续使用他们的手部预制件获动画。当然,我们同样提供了一个很好的实现,这样大家就不必从零开始了。《Pirate Demo》是一个优秀的例子,说明了这个开源库代码可以提供什么。
7. 你为什么决定开源这个库?
一开始,我只想创建一个对我的病人来说感觉自然,但同时拥有一个足够优化的工作流程的锁定工具,因为我是团队中唯一的开发者,而我绝对不是一个动画师(他们通常会关心这些问题)。
当我在Twitter分享我的第一个结果时,我发现对于我遇到的问题,几乎所有VR开发者都有遇到过,所以即便这时一个非常技术性的贴文,但它还是快速疯传起来。这让我意识到我开源能够极大地帮助我们的社区。
8. 构建这个演示内容的关键收获是什么?
主要的收获是,即使像手部追踪这样的输入听起来非常明确(手部追踪听起来就只是手部追踪而已),但你都不会找到一体通适的解决方案。一旦你决定实现手部追踪,你的面前将出现许许多多的决策分支。要做出明智的选择,你必须了解用户的需求。手部追踪需要与设计齐头并进,如果实现正确,它可以成为虚拟现实体验沉浸感的最强大工具之一。
9. 你现在在做什么?
我目前正在研究一些能够在糟糕追踪情况下保持稳定的功能。在那之后,我想探索基于手部追踪和手势的移动机制,不断为《Pirate Demo》添加更多的示例,以及当没有现成姿势时自动化姿势。要做的事情有很多。
10. 如何使用这个开源库?
开发者可以通过这里访问代码。
要将其用于你的项目中,你可以使用Unity Package Manager,这样它就可以作为一个单独的包保留,不会搞乱你的代码。你不需要下载《Pirate Demo》,因为包附带了涵盖所有功能的示例。
11. 你希望开发社区如何利用开源库和《Pirates Demo》呢?
我的希望是,即便开发者更希望玩家使用控制器,他们都会尝试采用这个系统。这样,他们无需投太大的工作量都能够增加体验的沉浸感。我的梦想是在Oculus Store里看到用这个工具实现的游戏,并看到有玩家评论说‘手部交互很棒!’,然后开发者会说:‘我们实现这样的手部交互可是没花什么功能哦。’
我同时非常乐意继续阅读大家的反馈!如果这个工具在某些方面太难使用,或者演示内容缺少什么关键功能或有趣的交互,我将洗耳恭听。
我要感谢Oculus一直以来的支持,他们太棒了。我同时要感谢整个虚拟现实开发者社区。尽管有些问题可能有点太难,但我们知道我们的领域有多有趣,所以让我们继续像过去几年来那样,共同解决它们。我为我们的行业感到非常自豪。
请在评论栏分享你对手部追踪,开源库或《Pirates Demo》的看法。我们非常期待看到你带来的创意用例,以及你未来对手部追踪发展的贡献。