您想找什么?
Games

Kluge Interactive 如何在《Final FURY》中增加 VR 手势识别功能

ADAM AXLER / UNITYSenior Content Marketing Manager
Apr 23, 2025
《FINAL FURY》| Kluge Interactive
为方便起见,此网页已进行机器翻译。我们无法保证翻译内容的准确性或可靠性。如果您对翻译内容的准确性有疑问,请参阅此网页的官方英文版本。

Kluge Interactive 从 2008 年开始开发沉浸式游戏。他们的旗舰产品;游戏《Synth riders》---- VR节奏游戏---- 于2018年发布,该团队在过去七年里提供了源源不断的音乐包。这些有趣的内容更新将 IP 提升到了 A 级音乐人和全国性体育活动的平流层。

该团队没有放缓的计划。他们将自己的VR经验和对格斗游戏的热情结合起来,创造了《最终的愤怒》。Multiplayer产品;游戏将经典的格斗游戏机制与实际战斗相结合。玩家可以通过单人格斗或挑战银河系的顶级人物,让每一次格斗都有意义。

我们与《FINAL FURY》制作人Rob Alvarez和游戏首席程序员David Montesdeoca进行了交谈,讨论该团队如何协调沉浸感和速度,以制作出下一代VR格斗游戏。

你会如何描述《Final FURY》

Rob Alvarez:FINAL FURY》背后的概念源自对经典街机格斗游戏的热爱,这些游戏是通过现代VR技术重新构想的。从一开始,我们就一直在问自己一个核心问题:“从挥拳到闪躲攻击,我们如何让每个动作都尽可能真实和富有内涵?”

在将 Vision 转变为完全试玩广告体验时,也会遇到很多挑战,尤其是在 VR 的沉浸感与这种类型的紧张、快节奏战斗之间取得适当的平衡。在早期阶段,将这些机制适应 VR 并不容易,但通过不断迭代,我们最终找到了甜头。

《FINAL FURY》| Kluge Interactive
《FINAL FURY》| Kluge Interactive

游戏独特的摄像机系统如何提高游戏的沉浸感?

David Montesdeoca:《FINAL FURY》采用模块化多摄像机系统,专为支持不同游戏状态、视角和玩家体验的沉浸感而设计。

我们支持多种摄像机类型:第一人称、第三人称、旁观者、2D 和“Out of Body”摄像机,在影片拍摄时(如抓取或玩家无法控制的情况下)使用。我们没有将它们视为孤立的系统,而是构建了统一的 Camera Service,在需要时将它们作为单个逻辑实体或单独的摄像机进行管理。

使用方法:

  • 每个摄像机都由共享事件系统驱动,但可以选择是否以及如何响应事件。例如,当触发抓取时,第一人称和“Out of Body”摄像机可能会激活效果,但方式不同。
  • 该系统是数据驱动的,具有极高的可扩展性。我们可以添加新的摄像机行为,而不影响其他系统,也不需要特殊逻辑。
  • 我们将世界分为三个主要视觉层:HMD、第三人称和HMDAnd3rd。这样,我们就可以通过在运行时移动对象层来控制可见性,并允许某些元素仅在第一人称视图中显示,而对第三人称视角或影片视角则隐藏起来。

通过此设置,我们可以在 VR 中的玩家代理(从第一人称视角投掷拳头和做手势及动作)与在外部观看时更令人满意的电影回报时刻之间取得平衡。

《FINAL FURY》| Kluge Interactive
执行抓取情况的编辑器内镜头。可以看到 Hitbox 和 Character Controller 工具。

为什么完善战斗手势如此重要?

Rob:战斗手势是我们想要提供的沉浸式战斗体验的核心。虽然《FINAL FURY》是一封写给所有热爱经典街机格斗游戏的玩家的情书,但让玩家挥洒汗水,感觉自己身处竞技场进行战斗,也是一种挑战。

《FINAL FURY》| Kluge Interactive
《FINAL FURY》| Kluge Interactive

该团队如何实现基于手势的控制系统?

David:手势识别一直是 FINAL FURY 设计中最具技术和创意挑战性的方面之一。我们的目标一直是确保玩家感觉自己是战斗员,而不仅仅是控制战斗员的人。

我们系统的关键部分是:

  • 输入跟踪:我们构建了一个轻量级系统,其核心是持续跟踪每只手相对于中心参考点的位置和方向。它通常位于玩家头部(质心)。这有助于我们标准化输入,从而最大限度地减少可能影响手势检测精度的变量 - 头部移动或身体定向。
  • Gesture实用程序:我们使用一组低级数学实用程序来检测“手在向前移动吗?”或“手在检测区域的左侧吗?”等图案。
  • ActionTrigger系统:我们通过 ActionTriggers 定义复杂的手势。每个 ActionTrigger 都使用我们的实用程序侦听特定的手势序列。
  • 检测过程包括一个包含三种可能状态的状态系统:
  • 失败:输入不符合要求
  • 部分:Gesture 看起来启动正确
  • 完成:Gesture 已成功执行

部分状态非常重要,因为它可以帮助我们根据上下文确定手势的优先级,向玩家提供实时反馈,让他们知道自己走对了路,并将意图传达给对手。

以下是我们的“抓取手势”工作原理的示例:

  1. 系统会检查两只手是否相距很远,并对称地位于质心的两侧。这会触发“Partial”状态(“开始抓取”)
  2. 如果玩家将手快速聚集起来,则手势完成并触发动作
  3. 如果移动太慢或不一致,系统将进入“Fail”状态,并取消手势

这种方法让我们能够将顺畅的输入与精确的行动相结合,并且我们根据社区反馈不断改进。

《FINAL FURY》| Kluge Interactive
游戏内应用流有限状态机的编辑器内截图。在节点画布上制作。

Unity是如何混入其中?

Rob:老实说,我们甚至都没问过这个问题。我们的团队多年来使用Unity制作《Synth riders》,这真是一次很好的体验。它让我们能够跨平台无缝协作。

该引擎让我们能够将各种工具和系统聚集在一起,在构建《FINAL FURY》时创建动态且响应迅速的内容。因此,我们可以很快进行迭代,这令我们兴奋。它为我们提供了在最小压力下测试新游戏概念的灵活性。

Unity 的插件生态系统是一个巨大优势。NodeCanvas 等工具对于以可视化和模块化方式构建复杂的 AI 行为非常有价值。我们还使用了 Unity 的 OpenXR 支持,集成非常顺利。它几乎实现了即插即用,使 VR 开发的难度大大减轻。

Unity 对 PlasticSCM 的内置支持帮助我们在管理项目代码库所需的简单性和强大性之间取得了适当的平衡。

《FINAL FURY》| Kluge Interactive
团队角色无关 AI 主行为树的编辑器内截屏。在节点画布中制作。

该团队邀请了Pro游戏玩家Justin Wong担任该游戏的顾问。他的参与程度如何?

Rob:我们非常公开地讨论了在《FINAL FURY》初始开发阶段发生变化时需要改变方法的问题。我们将在第一个《FINAL FURY》博客中进一步深入探讨这一点。随着我们对这一过程的深入了解,我们希望确保我们不仅进展顺利,而且能够更深入地解决问题。除了让玩家站在战斗机的立场上之外,我们还希望挖掘优秀的竞技格斗游戏的要素。因此,只有向 Justin 寻求帮助才有意义。

在多个游戏用户时长/会话次数中,我们会与 Justin 一起进入游戏,展示我们的设计,并进行一些匹配。他关于平衡和战斗机制的反馈非常有价值。它通常涵盖只有专业格斗游戏玩家才会提到的领域。事实上,他帮助我们看到了否则无法想象的东西,他的参与让游戏的某些机制感觉好多了。而且,我必须承认,他在我们自己的比赛中击败了我们。

FINAL FURY》的下一步是什么?

Rob:我们为抢先体验期间要添加到游戏中的内容制定了宏伟的计划。《FINAL FURY》团队不断探索新的想法和改进,每次更新都会让游戏玩法更进一步。新战士、新竞技场、为所有战士添加的新动作 - 这只是开始。其中一些功能已在构建中,其他功能实际上将由玩家自行决定。

我们的开发团队计划加入战斗,倾听玩家的心声,并继续改进游戏。“发布→播放→聆听→迭代”的方法是我们在 2018 年发布 Synth Riders 的原因,它让我们的工作非常顺利。

我们的志向是成为虚拟现实中街机风格格斗游戏的首选,凭借我们团队的奉献精神,我们有信心将其变为现实。

要了解有关Made with Unity项目的更多信息,请访问Unity的资源页面