2015年3月28日

由Opaque Multimedia制作的虚幻引擎Kinect项目

作者 Russell Grain

大家好,我是Russell Grain。我和我的团队目前在澳大利亚的公司Opaque Multimedia工作,我们已经在虚幻引擎的Kinect项目上干了有6个多月的时间。Kinect 4 Unreal这个项目制作的是一个插件,它可以让虚幻引擎4充分使用Kinect 2感应器的全部功能。我们最近在网站上发布了插件的1.1版本,并在Epic的虚幻商城发布了内容示例相关的集合。

什么是Kinect 2?

对于没有使用过Kinect 2的新用户来说,我来解释一下,Kinect 2就是一个感应套件,它使用颜色、红外线和飞行时间相机的组合来创造世界的细节化贴图。这个套件还包含了一组麦克风,用于定位其获取的任何音效。

它的主要功能是根据其从多个感应器捕获的玩家骨架信息来追溯玩家的动作。骨架追溯不过是Kinect 2强大功能的冰山一角,但是它也是最常用的一项功能。

我们如何开始这个项目

Kinect 4 Unreal项目一开始是用于多个项目的一个内部工具,它需要自然的动作接口,这个接口的唯一输入就是用户的身体动作。编程系统性地使用Kinect 2 SDK的每个部分来确保美术和关卡设计师能访问他们所需的每个Kinect 2功能。

我还记得当我第一次坐下来使用K4U的情景。我曾经看到过我们的程序员开发虚幻引擎的Kinect功能,他在闲暇时间进行这些工作。所以我把他拉到一边,问他有没有让我帮忙的地方,尤其是手部状态和手部位置。这个事是很早的事了,而且那时的项目中没有现在已经开发的很多功能,但那时候已经有了进行开发所需要的所有功能。

我希望能丢火球。

根据我在这项技术的早期版本中开发Kinect应用的经验,并结合从其他引擎中获得的经验,我把所有的剩余时间都用来创建该演示。我很吃惊,在半个小时的时间和一些节点的完成之后,我成为了空手召唤火球并丢出它们的魔术师,我可以让一堆盒体在关卡中飞行。那天在Opaque Multimedia的办公室中,我们没有进行其它工作,原因很简单,什么工作也比不上丢火球。

我原来想着要花一天或更多时间,但是实际上,就花了30分钟。我不用做什么工作,因为已经完成了。

K4U1火球演示蓝图.

让用户可以使用

对火球演示的开发让我们的主要理念之一得以加强,也使得我们决定开发K4U项目- 我们希望无论有没有编程经验,每个人都能使用它。

随着开发的进行以及越来越多Kinect 2功能的发布,我们还开始更认真地查看如何让这些希望把数据转化进游戏的用户们更好地使用这些数据。所以我们让设计团队自行构建一套演示游戏,然后我们基于他们的反馈进行迭代。

K4U_3来自内容示例的Spydrone相机控制演示。大家的最爱。.

通过这个过程,我们逐渐重新定义了接口,以及我们显示原始Kinect数据给用户的方法。那时设计师已经能够创建从头到尾的整个演示,我们对于创建让用户感到舒适并能方便地进行使用的Kinect 2全部功能的接口充满自信。

这种合作的最佳示例之一是我们的avateering系统。一开始,我们直接显示来自Kinect 2的源骨架数据。尽管美术在使用这些数据来直接控制游戏角色时很少遇到问题,但他们也指出了一个事实,这个输出太不稳定。

K4U_4Avateering系统演示展示了原始输入和经过处理的输入间的不同,以及组合虚幻动画和avateering输入的方式

目前为止得到了许多用户感谢的一项开发功能是,我们把Kinect 2的有些令人费解的四元数输出自动转换为虚幻旋转单位,并且整合了动态的平滑函数。最终结果是生成了便于读取而且高度可用的信息。

未来

在这个阶段,这个插件当前的1.1版本已经有了一系列稳定的功能,主要是因为我们给予了玩家Kinect 2当前允许他们所能做的所有内容。我们还会在每个对Kinect 2 SDK的官方更新推出后,在我们的版本中包含相应的完整功能。如果您想要尝试一下,我们推荐您查看1.1介绍视频 ,在其中您可以看到Kinect基础功能的展示,其中还详细描述了一些新功能。

在未来几个月里,我们会推出几个已经计划的改进内容,一些将为可选的插件扩展内容,而一些则为对于核心功能的改进。

我们还在与Sirenum Digital的朋友们合作,他们正在开发新的虚幻引擎4游戏Lost Pisces,我们共同创建的这个接口将可以让玩家以前所未见的方式来与他们游戏中的虚拟形象进行互动。

现在虚幻引擎4已经完全免费,我们也盼望能看到您在同时使用Kinect 2和虚幻引擎4时所制作的许多疯狂和出色的内容!