Kinect+Unity 实现虚拟人物动作同步(羽毛球场景)

Kinect+Unity实现虚拟人物动作同步(羽毛球场景)

声明:此文乃本人原创,未经本人允许不得转载。
联系本人:网易邮箱[email protected]

0 简述

任务:在羽毛球场的场景下,将用户的羽毛球训练动作实时同步到自建的虚拟人物上。
实现原理简介:用Kinect实时捕捉用户的动作,将捕捉到的信息实时传给Unity,Unity将获得的数据处理加工赋给Unity demo中建好的虚拟人物上,从而实现将人的动作实时同步到虚拟人物上。

1 准备

所需硬件:

  • PC
  • Kinect for windows(传感器+适配器)

所需软件:

  • Kinect for Windows SDK 2.0
  • Unity

所需文件:

  • 一个羽毛球场景的unitypackage文件

2 资源获取

  • Kinect for Windows SDK 2.0 https://pan.baidu.com/s/1skMIPrf
  • Unity https://store.unity.com/cn (个人版足矣)
  • 一个羽毛球场景的unitypackage文件 (尚未公测,此处不共享资源)

3 安装Kinect for Windows SDK 2.0和Unity

下载好后,直接setup就可以了,没有任何难度。
- Kinect for Windows SDK 2.0安装好后是看不到任何快捷方式或者启动项的,因为SDK是一种开发工具包,类似于一种环境,故安装好则使用Kinect所需软件环境搭建好了。
- Unity安装好后可以启动,界面如下:
目前版本的Unity

4 START!

现在让我们开始吧!

4.1 连接硬件及Kinect测试

  1. 连接Kinect,注意USB必须是3.0的,因为2代Kinect传输数据量超过USB2.0的容限。
  2. 启动Kinect Studio v2.0,如图红框内:
    这里写图片描述
  3. 启动后的界面:
    这里写图片描述
  4. 点击红框内的图标开始测试:
    这里写图片描述
  5. 出现下图则测试成功,Kinect可以实时传感:
    这里写图片描述

4.2 正式开始

Kinect测试好没有问题,那么我们可以正式开始我们的任务啦!将人的动作同步到虚拟人物上。

  1. 打开Unity,新建一个Project。
    这里写图片描述
  2. 点击Asserts-Import Package-Custom Package,准备导入Package文件:
    这里写图片描述
  3. 还记得我们在准备阶段中的所需文件吗?就是前文提到的一个羽毛球场景的unitypackage文件,现在需要我们找到它的位置,导入这个package。博主将此unitypackage命名为“badminton”,所以现在找到它的位置,导入它:
    这里写图片描述
    导入后,Unity读取可能需要几分钟,不会太长。
  4. 导入完毕后,会出现以下窗口,点击import:
    这里写图片描述
    这时,Unity开始读取导入的Package文件,还需要几分钟,请耐心等待。
  5. 读取导入的package文件完毕后,此时的界面如下(不同unity版本布局可能不一样):
    这里写图片描述
  6. 然后在Projects窗口中Asserts文件夹下,找到test文件,双击此文件,如图:
    这里写图片描述
  7. 此时scene窗口和game窗口都已出现羽毛球场场景和一个虚拟人物,点击红框内的开始按钮,用户此时要站在kinect前运动,则程序将用户的动作同步到此虚拟人物上,在game窗口呈现:
    这里写图片描述
    这里写图片描述
  8. 注意:需要人站在Kinect的视角内,否则程序会一直等待人的到来才开始同步,如图:
    这里写图片描述
  9. 到此,已经完全完成任务了。大吉大利,今晚吃鸡!