首页 > 代码库 > Kinect+Unity实现虚拟人物动作同步

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

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

声明:此文乃本人原创,未经本人允许不得转载。 
联系本人:网易邮箱geekyutao@163.com。

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安装好后可以启动,界面如下: 
技术分享

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. 到此,已经完全完成任务了。大吉大利,今晚吃鸡!

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