Kippy 的转义The Making of Kippy's Escape

自动唤醒机器人,使其 Kippy。Kippy the robot wakes up to find itself stranded on an island. 你需要放在你的问题解决 hat 上,以帮助它找到返回到其火箭的途径!It’s up to you to put on your problem-solving hat to help it find a path back to its rocket ship! 通过你 Microsoft Store 的 HoloLens 2 附带的内容,从 GitHub 下载应用程序 或从 GitHub 克隆 存储库 ,Kippy 主页安全!Strap on your HoloLens 2 and download the app from the Microsoft Store or clone the repository from GitHub and get Kippy home safe!

重要

如果要从 GitHub 存储库构建 Kippy 的转义,请确保使用的是 Unreal Engine 4.25 或更高版本Make sure you're using Unreal Engine 4.25 or later if you're building Kippy's Escape from the GitHub repository.

Kippy 的转义是使用 Unreal 引擎4和混合现实 UX 工具(适用于 Unreal)生成的开源HoloLens 2示例应用。Kippy’s Escape is an open-source HoloLens 2 sample app built with Unreal Engine 4 and Mixed Reality UX Tools for Unreal. 在此文章中,我们将指导你完成从第一个原则和视觉设计到实现和优化体验的过程。In this post, we’ll walk you through our process from first principles and visual design to implementing and optimizing the experience. Unreal 开发概述中,可以找到有关通过 MRTK UX 工具开发混合现实应用程序的详细信息。You can find more information on developing Mixed Reality applications with MRTK UX Tools in the Unreal development overview.

首要原则First principles

在设置为创建 Kippy 的转义的过程中,我们的目标是创建一个可突出显示 Unreal 引擎的 HoloLens 2 支持、hololens 2 功能和混合现实工具包的体验。In setting out to create Kippy’s Escape, our goal was to create an experience that would highlight Unreal Engine’s HoloLens 2 support, the HoloLens 2’s capabilities, and the Mixed Reality Toolkit. 我们想让开发人员想象一下他们可以通过 Unreal 和 HoloLens 2 创建的内容。We wanted to inspire developers to imagine what they could create with Unreal and HoloLens 2.

我们提出了三个针对体验的指导原则:这是一项有趣的交互式工作,并面临进入的障碍。We came up with three guiding principles for the experience: that it needed to be fun, interactive, and have a low barrier to entry. 我们希望经验非常直观,甚至首次混合现实用户都不需要教程。We wanted the experience to be intuitive enough that even a first-time mixed reality user won’t need a tutorial to go through it.

设计游戏Designing the game

HoloLens 2 可访问目前在游戏中的其他地方。The HoloLens 2 has access to design features found nowhere else in gaming today. 对象可以使用您的手直接推送或操作,也可以使用目视跟踪来进行操作。Objects can be directly pushed or manipulated using your hands or targeted with eye tracking. 这些关键功能在 Kippy 的转义中构建了一些有趣的时刻。These key features are behind some of the fun moments we built out in Kippy’s Escape.

使用唯一的 HoloLens 2 功能作为游戏设计的指导,我们的作用域只是几个小环境方案。Using the unique HoloLens 2 features as guidance for our game design, we scoped out a few small environment scenarios. 孤岛非常有用,因为它们可以针对不同的播放机高度进行调整,并提供一些有趣的 bridge 创意。Islands made sense because they can be adjusted for different player heights, and provided some entertaining bridge ideas. 我们着陆主题古文明与科幻技术相结合,这种想法表明有人通过刻录构建了一种奇怪的能源。We landed on the theme of ancient civilization meets sci-fi tech, with the idea that someone had built machinery over ruins harnessing a strange energy provided by each island. 每个孤岛都具有自己的外观,这是一项有助于创建视觉对象的详细信息。The islands were each given their own look and feel, a detail that helped create visual interest. 建模和纹理间的良好平衡会使绘图调用对呈现性能的消耗降低,因此,设计风格的外观就是用这一理念设计的。A good balance between modeling and texturing would keep draw calls low for rendering performance, so a stylized look was designed with that in mind.

早期游戏设计 将一些更早的草图作为经验Early game design sketches Some early sketches for what the experience might look like

第二个 岛呈现 的呈现Renderings of the second island Renderings of the second island

为了保持较短的生产计划,我们同意在没有严格的动画周期的情况下,可以捕获意向和情感。To keep within our short production schedule, we agreed that a floating character could capture intent and emotion without rigorous animation cycles. 那么 Kippy 是不是的。And so Kippy was born! 它通过眼睛和简单沉默声音效果 emotes 几个不同的表达式,以帮助指导玩家体验。It emotes a few different expressions through its eyes and through minimalistic vocal sound effects to help guide the player throughout the experience.

Kippy 通过其眼睛显示不同的表达式

Kippy 通过其眼睛显示不同的表达式Kippy showing different expressions via its eyes

如果用户需要花费很长时间来解决测验题,Kippy 会向用户提示

如果用户需要花费很长时间来解决测验题,Kippy 会向用户提示If the user takes too long to solve a puzzle, Kippy will give the user a hint

除了字符和环境设计外,我们还进行了 concerted 的工作,让游戏变得有趣。Beyond the character and environment design, we made a concerted effort to make the game feel fun. 目视跟踪允许我们激发材料和声音属性,其中突出显示了游戏的关键部分。Eye tracking allowed us to fire off material and sound attributes, which highlighted key pieces of the game. 空间音频有助于使这些级别在播放机的周围处于家里。Spatial audio helped make the levels feel at home in the player’s surroundings. 能够抓住对象、推送按钮和操作滑杆推动创新的播放器的合作。Being able to grab objects, push buttons, and manipulate sliders drives innovative player engagements. 务必要确保这些连接点感觉自然。It was important to make sure these connection points felt natural.

桥接电缆结束时,用户将对其进行接近

桥接电缆结束时,用户将对其进行接近The end of the bridge cable glows when the user’s hand approaches it

构建游戏机制Building the game mechanics

Kippy 的转义很大程度上依赖于混合现实 UX 工具组件,以使游戏成为交互的(即手交互参与者、边界控件、操控器、滑杆和按钮)。Kippy’s Escape relies heavily on Mixed Reality UX Tools components to make the game interactive - namely hand interaction actors, bounds controls, manipulators, sliders, and buttons.

手动交互执行组件允许直接和远端操作全息影像。The hand interaction actor enables both direct and far manipulation of holograms. 在 Kippy 的转义开始时,用户有机会设置游戏的位置。At the start of Kippy’s Escape, the user is given the opportunity to set the location of the game. 手动光标从用户的掌中进行扩展,可以轻松地操作距离较远的大全息影像,如以下 gif 所示。Hand beams extending from the user’s palm make it easy to manipulate large holograms that are far away, as seen in the gif below.

手动交互执行组件 gif

占位符场景本身可使用 UX 工具的 边界控件 组件进行拖动和旋转。The placeholder scene itself can be dragged and rotated using UX Tools’ bounds control component.

在第二个岛上,用户必须选择宝物,并将其放入匹配的插槽中。On the second island, the user must pick up gems and place them in their matching slots. 这些 gem 附加了操控器,这些 操控 器允许用户选取它们并将其放置。The gems have manipulators attached to them that allow the user to pick them up and place them down.

操控器示例 gif

Pressable 按钮是在第三个岛上使用炸弹的关键所在。A pressable button is the key to bringing up bombs for use on the third island.

Pressable 按钮示例 gif

第四个岛上会出现一个 滑块 组件,触发要引发的最终桥。A slider component appears on the fourth island, triggering the final bridge to be raised.

滑块组件示例 gif

针对 HoloLens 2 进行优化Optimizing for HoloLens 2

对于在移动设备上运行的任何体验,请务必关注性能。With any experience built to run on a mobile device, keeping an eye on performance is critical. Unreal 4.25 包括一个用于支持移动多视图的主要更新,这大大减少了渲染开销并提升了帧速率。Unreal 4.25 includes a major update to support for mobile multi-view, which significantly reduces rendering overhead and boosts frame-rate. 建议在进行优化时,使用 Unreal 来查看适用于 HoloLens 2 的其他 建议性能设置We recommend checking out our other recommended performance settings for HoloLens 2 development with Unreal when you're optimizing.

物理学对象在性能方面仍会成本高昂,因此使用了一些巧妙的解决方法。Physics objects still remain costly for performance, so a couple clever workarounds were used. 例如,第三个 "桥" 需要吹一些阻止方法的碎片。For instance, the third “bridge” requires blowing up some debris blocking the stairway. 炸弹引爆不会将石子影响为物理学对象,而是通过切换静态石子来实现分解粒子效果。Instead of having a force impact the stones as physics objects, the bomb detonation triggers a swap, switching the static stones for an exploding particle effect.

针对 HoloLens 2 gif 优化的示例

我们还将我们的绘图调用从400减少到 ~ 260:We also cut down our draw calls from over 400 to ~260 by:

  • 降低网格复杂性Reducing mesh complexity
  • 组合网格Combining meshes
  • 删除某些初始动态照明元素Removing some of our initial dynamic lighting elements

虽然我们可能还有更多的操作,但我们认为这是性能和视觉质量之间的良好平衡。While there’s likely more we could have done, we felt that was a good balance between performance and visual quality.

试试看!Try it out!

启动 HoloLens 2 并从 Microsoft Store 下载 应用程序,或从 GitHub 克隆 存储库 并自己生成应用!Boot up your HoloLens 2 and download the app from the Microsoft Store, or clone the repository from GitHub and build the app yourself!

关于团队About the team

Picture of Jack Caron 插孔抑符Jack Caron
线索游戏设计器Lead Game Designer
插孔当前适用于 Microsoft 的混合现实体验,包括 HoloLens 2 项目和 AltspaceVR,以前是 HoloLens 平台团队的设计器。Jack currently works on Mixed Reality experiences for Microsoft, including HoloLens 2 projects and AltspaceVR, and was previously a designer on the HoloLens platform team.
Picture of Summer Wu 夏季 WuSummer Wu
创建器Producer
夏季适用于混合现实开发人员平台,并领导团队与 Unreal 引擎相关的工作。Summer works on the mixed reality developer platform and heads the team’s Unreal Engine related efforts.

特别感谢我们在 Framestore 中的朋友,帮助我们将 Kippy 带入生活。Special thanks to our friends at Framestore for helping us bring Kippy’s Escape to life. 从字符开发到资产设计,再到游戏编程,对此项目的协作是 pivotal 的。From character development, to asset design, to game programming, their collaboration on this project was pivotal.