最近在玩Kinect,使用的是Unity,发现网上好像没有什么教程。自己就只有抱着英文版帮助文档啃,真是苦逼
本人英语也不好,大家将就着看吧
Kinect入门帮助
如何运行示例
1 下载并安装Kinect
v2 SDK,详情将在下一节中描述。
2 打开场景“KinectAvatarsDemo”,位于Assets/AvatarsDemo文件夹
3 运行场景。移动身体来观察两个Avatar(正常和镜像)以及CubeMan是如何反映你的动作的
4 使用你的左右手来控制屏幕上的手型光标。
5 尝试多个内置的手势,并确保他们能被正确的检测到。
6 关闭场景,将KinectManager的属性 ‘Compute User Map’ 和 ‘Display User Map’置为可用状态,重新开启场景
7 打开并运行“KinectGesturesDemo”场景,位于/
GesturesDemo文件夹。使用手向左或者向右挥表示将立方体向左或者向右转动。
8 打开并运行“KinectInteractionDemo”场景,位于/
InteractionDemo文件夹。试着用手去抓住并拖拽一个屏幕上的物体,再释放这个物体。
安装Kinect v2 SDK
1 下载Kinect为Windows SDK 2.0。
2 运行安装程序。
3 连接Kinect
v2传感器。所需的驱动程序将会自动安装。
为什么场景中需要两个Avatar对象?
场景中两个阿凡达的意义在于你可以同时展示你的镜像和非镜像运动。
首先,你能有一个Avatar反映你的镜像运动。在这个例子中就是你正面临的那个。这个Avatar的父物体是一个被名为'UCharCtrlFront'在Y轴上旋转了180°的空物体。同时,Avatar的游戏物体CharacterFront’上的AvatarController组件的'Mirrored Movement'参数处于可用状态。镜像就是你伸左手时他伸的右手,就像照镜子一样。
第二个阿Avatar不是镜像,他是背对着你的。和你的动作完全一样。你的左边同时也是他的左边。换种方式看,你是背对着场景的主相机。控制的对象是'UCharCtrlBack',他的Y轴旋转量为0,AvatarController的'Mirrored Movement'参数是禁用状态。
为了在场景中得到正确的Avatar的位置和运动,总是创建一个空的游戏对象作为Avatar的父物体。根据需要设置这个空物体的Y轴旋转量。然后将Avatar局部的position和rotation都置为0,你就可以通过移动和旋转来控制你的avatar的运动了。记得注意你Avatar上AvatarController组件的'Mirrored Movement'参数。
如何重用Kinect-Example在你的项目里
1 复制文件夹的KinectScripts资料文件夹的项目的资料文件夹的例子。这个文件夹包含所有需要的脚本和可选的过滤器。
2 复制文件夹“Resources”和“Standard Assets’’文件夹的项目的资料文件夹的例子。这些文件夹包含所需的库,包装类和资源。
3 等待Unity检测和编译新的资源和脚本。
4 添加“AvatarController”脚本到场景中的每个你需要控制的Avatar上
5 通过拖拽将Avatar的骨骼结点和AvatarController’脚本上的joint相对应(2.8以上版本似乎不需要)
5 看你是否需要镜像Avatar,如果需要,勾选‘Mirrored
Movement’参数
6 添加KinectManager脚本到MainCamera。如果您使用多台摄像机,就创建一个空物体
7 将所有Avatar的物体拖拽到KinectManager的‘Avatar Controllers’列表中(2.8以上版本似乎也不需要)
8 如果你要看深度图像,你可以开启‘Compute
User Map’ 和
‘Display User Map’参数;如果你想看色彩图像,开启‘Compute
Color Map’ 和
‘Display Color Map’参数;看骨骼追踪效果可以开启‘Display
Skeleton Lines’参数
使计算用户地图和地图显示用户的参数,如果你想看到user-depth地图在屏幕上。使“计算彩色地图”和“显示彩色地图”参数,如果你想看彩色摄像机图像在屏幕上。使显示骨架线的参数,如果你想看看Kinect跟踪user-depth地图上的骨架。
9 你可以在你的脚本中使用“KinectManager”的公有方法。作为示例,请参阅“GestureListener.cs”和“PresentationScript.cs