Kinect+Unity实现虚拟人物动作同步

Kinect+Unity实现虚拟人物动作同步

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

0 简述

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

1 准备

所需硬件:

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

所需软件:

  • Kinect for Windows SDK 2.0
  • Unity

所需文件:

  • 一个Unity Package Demo文件

2 资源获取

  • Kinect for Windows SDK 2.0 https://pan.baidu.com/s/1skMIPrf
  • Unity https://store.unity.com/cn (个人版足矣)
  • 一个Unity Package Demo文件
    https://www.assetstore.unity3d.com/cn/#!/content/18708
    (尊重版权,实在不舍得花$25购买正版的学生党可以私聊我,我可以帮你)

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. 还记得我们在准备阶段中的所需文件吗?就是之前下载的Unity Package的demo文件,现在找到它的位置,导入这个Package。博主下载的Demo Package名为“Kinect+v2+Examples+with+MS-SDK”,所以现在找到它的位置,导入它:
    这里写图片描述
    导入后,Unity读取可能需要一点时间,不会太长。
  4. 导入完毕后,会出现以下窗口,点击import:
    这里写图片描述
    这时,Unity开始读取导入的Package文件,需要一点时间,请耐心等待。
  5. 此时的界面如下:
    这里写图片描述
  6. 然后在Projects窗口中展开KinectDemos文件夹,单击此文件夹下的AvatarsDemo,双击红框内的demo,如图:
    这里写图片描述
  7. 此时scene窗口和game窗口都已出现demo中建立虚拟人物,点击红框内的开始按钮,则开始将人的动作同步到此虚拟人物上,在game窗口呈现:
    这里写图片描述
  8. 注意:需要人站在Kinect的视角内,否则demo会一直等待人的到来才开始同步。我们将game窗口最大化以便观察,博主抬起一只手,则虚拟人物也会做相同的动作,如图:
    这里写图片描述
  9. 到此,已经完全完成任务了。大吉大利,今晚吃鸡!