K2-asset提供的脚本组件

K2-asset在KinectScripts文件夹中提供通用脚本组件,并在KinectDemos / 文件夹的相应脚本子文件夹中提供特定于演示的组件。可以在自己的Unity项目中重用所有提供的脚本组件。要重用通用组件,需要将KinectScripts文件夹复制到项目中。为此,请按照下列步骤操作:

  1. 将文件夹“KinectScripts”从包的资产文件夹复制到项目的资产文件夹。该文件夹包含通用组件,过滤器和接口。
  2. 将文件夹“资源”从包的资产文件夹复制到项目的资产文件夹。此文件夹包含所有需要的库和资源。可跳过复制不想使用的库(例如32位库或KinectV1库)。
  3. 将文件夹“标准资产”从包的资产文件夹复制到项目的资产文件夹。它包含Kinect-v2的MS-wrapper类。

要使用演示专用的脚本组件,将相应的脚本复制到Unity项目的脚本子文件夹中。请注意,仍然需要将KinectScripts文件夹复制到项目中,因为始终需要KinectManager,它必须存在于场景中,以便所有其他与Kinect相关的组件正常工作,该文件中包含所有的通用文件,如果不完全确定使用了哪些,最好全部加进来。

资源使用建议

不要直接将unity package包直接导入项目中,包里面囊括了众多示例,个人项目能用上也只有少数,应先在空项目中导入研究,再将需要的导入。
KinectScripts文件夹中脚本最好全部导入进来,除非你确定自己需要的文件。


以下是通用组件的描述和具体说明,需要避免在多场景中使用KinectManager,如果需要使用可参考_Readme文件夹下的“Howto-Use-KinectManager-Across-Multiple-Scenes.pdf”文件。
以下脚本可以去这里查看更详细的描述

组件 描述
AvatartController AvatarController是将kinect捕获的用户动作应用到类人模型的组件。
AvatarControllerClassic AvatarControllerClassic继承自avatarcontroller组件,允许手动将模型的关节映射到身体关节,由传感器跟踪。
AvatarScaler AvatarScaler是根据被跟踪用户的身体尺寸缩放类人模型身体的组件。
BackgroundColorImage BackgroundColorImage是在GUI纹理上显示彩色摄像机输入的组件,通常用作场景背景。
BackgroundDepthImage BackgroundDepthImage是在GUI纹理上显示深度相机图像的组件,通常用作场景背景。
BackgroundRemovalManager BackgroundRemovalManager控制Kinect的背景移除功能,也就是在透明的背景上渲染选中的用户。
FacetrackingManager FaceTrackingManager是控制跟踪用户头部和面部的组件。
InteractionInputModule InteractionInputModule是可以作为组件添加到EventSystem 对象中的输入模块组件。与interactionmanager组件相结合,它提供了与Unity UI元素的类似鼠标的交互。
InteractionManager InteractionManager它控制手游标,并跟踪手交互,其方式是手的握和松。
KinectGestures kinectgesture用于管理和检测所有由被跟踪用户执行的程序化手势。如果场景中有一个或多个手势监听器,不要忘记添加KinectGestures以便检测用户手势。
KinectManager KinectManager是与Kinect相关的主要和最基本的组件。它控制传感器并轮询数据流。所有其他组件都依赖于KinectManager组件提供的数据。没有用到的属性建议保持默认,加快数据处理。
KinectRecorderPlayer KinectRecorderPlayer提供API来记录和回放以前记录的身体框架数据文件。
PortraitBackground PortraitBackground是组件,添加到彩色背景图像并启用后,将其设置为以纵向模式显示(9:16而不是16:9)。游戏视图的宽高比也应更改为Kinect-v2的9:16或Kinect-v1的3:4。
SpeechManager SpeechManager是控制Kinect语音识别的组件,提供所需的API以检查检测到的语音命令,并在语音命令被识别时调用场景中的可用语音监听器。
VisualGestureManager VisualGestureManager是控制视觉(VGB)手势检测的组件。当检测到视觉手势时,它将调用场景中的可用视觉手势侦听器。

下面是通用脚本的属性介绍

Avatar Controller (模型控制器)

AvatarController 是将kinect捕获的用户动作传输到类人模型的组件,它是类人模型的组件,需挂载到类人模型上.

属性 描述
Player Index 识别到的用户索引。0 就是第一个、1 就是第二个,依次递推
Mirrored Movement 模型是否背对屏幕(玩家)
Vertical Movement 模型是否允许垂直运动(Y轴)
External Root Motion 模型的根节点可以被其他组件或者脚本控制运动
Finger Orientations 是否允许应用手指位置。
Move Rate 模型在场景中移动的速率。
Smooth Factor 用于模型运动和关节旋转的平滑因子。
Offset Node 此转换相对于游戏对象(可选)。
Pos Relative to Camera 如果启用,则使模型相对于此摄像机的位置与玩家到传感器的位置相同。
Pos Rel Overlay Color 模型的位置是否应与彩色图像匹配(仅在相对于相机模式下)。
Pos Rel Inverted Z z轴移动是否需要反转(仅正相对模式)。
Grounded Feet 模型的脚是否必须在地面上。
Apply Muscle Limits 是否应用类人模型的肌肉限制。
Flip Left Right 模型是否相对于传感器左右翻转。
Vertical Offset 模型位置相对于用户脊柱基础位置的垂直偏移。
Forward Offset 模型位置相对于用户脊柱基础位置的Z轴偏移。

Face-Tracking Manager(面部追踪管理)

FaceTrackingManager是控制被跟踪用户头部和面部跟踪的组件。

属性 描述
Player Index 识别到的用户索引。0 就是第一个、1 就是第二个,依次递推
Get Face Model Data 是否轮询HD(高清)脸部模型数据。
Display Face Rect 是否在彩色照相机源上显示面部矩形。
Face Tracking Tolerance 等待时间(以秒为单位),这时可能跟踪不到脸部但不考虑脸部丢失的情况。
Face Model Mesh 用于在场景中显示HD脸部模型网格的游戏对象。
Pause Model Mesh Updates 是否暂停更新HD-face模型网格。
Textured Model Mesh HD-face模型网格应如何纹理化。
Move Model Mesh 是否根据用户的头部位置移动面部模型网格。
Foreground Camera 相机用于将面部网格覆盖在彩色背景上。
Model Mesh Scale 面网格的比例因子。
Vertical Mesh Offset 头部上方的网格的垂直偏移(以米为单位)。
Debug Text 用于显示FT管理器调试消息的GUI文本。

Kinect Gestures (手势姿势识别)

kinectgesture用于管理和检测所有由被跟踪用户执行的预定义(程序化)手势。如果场景中有一个或多个手势监听器,不要忘记添加KinectGestures以便检测用户手势。


Kinect Manager(基础组件)

KinectManager是与Kinect相关的主要和最基本的组件。它控制传感器并轮询数据流。所有其他组件都依赖于KinectManager组件提供的数据。**没有用到的属性建议保持默认,加快数据处理。

属性 描述
Sensor Height 传感器距离地面高度(单位:米)
Sensor Angle Kinect仰角(角度),可正负。
Auto Height Angle 是否自动设置传感器高度和角度。用户必须站在传感器的前面,以便自动检测。
Compute User Map 是否使用以及设置用户和深度图像。
Compute Color Map 是否使用彩色摄像机图像。
Compute Infrared Map 是否使用红外摄像机图像。
Display User Map 是否在屏幕上显示用户图像。
Display Color Map 是否在屏幕上显示彩色摄像机图像。
Display Skeleton Lines 是否在用户图像上显示骨架线。
Display Maps Width Percent 屏幕上的深度和彩色图像宽度,以屏幕宽度的百分比表示。根据宽度计算图像高度。
Use Multi Source Reader 是否使用感应器(仅K2功能)。
Min User Distance 到用户的最小距离,处理骨架数据时会计算进去。
Max User Distance 到用户的最大距离,处理骨架数据时会计算进去。值为0表示没有最大距离限制。
Max Left Right Distance 到用户的最大左或右距离,处理骨架数据时会计算进去。值为0表示没有左右距离限制。
Max Tracked Users 可以同时跟踪最大用户数(最多6个)。
Show Tracked Users Only 仅显示允许的距离内的跟踪用户,还是显示所有用户(较高的fps)。
User Detection Order 根据用户出现的顺序,如何为用户分配玩家索引:距离或从左到右的顺序。
Ignore Inferred Joints 是否仅使用真正跟踪的关节(并忽略推断的关节)
Ignore Z-Coordinates 是否忽略关节的Z坐标(即在2D场景中使用)。
Late Update Avatars 是否在LateUpdate()中而不是在Update()中更新AvatarControllers。适用于需要混合Mecanim动画的模型。
Skip Remote Avatars 在多人游戏中是否跳过远程的模型控制器?
Smoothing 设置关节平滑参数。
Use Bone Orientation Constraints 是否应用骨骼方向约束。
Estimate Joint Velocities 是否估计人体关节的速度。
Velocity Smoothing 设置关节速度平滑参数。
Allow Turn-Arounds 是否允许检测身体的侧转。
Allowed Hand Rotations 允许的手腕和手部旋转:None-不允许手部旋转,Default-允许除扭曲以外的手部旋转,All-允许所有旋转。
Wait-Time Before Remove 丢失的用户被删除之前的等待时间(以秒为单位)。这是为了防止偶尔的用户切换。用户离开区域,会被删记录的ID
Avatar Controllers 场景中的模型控制器列表。如果列表为空,则在场景启动时检测到可用的模型给控制器。
Player Calibration Pose 需要校准姿势,以打开相应播放器的跟踪。
Player Common Gestures 每个玩家检测的常见手势列表。
Min-Time Between Gestures 手势检测之间的最短时间(以秒为单位)。
Gesture Manager 手势管理器,用于检测设定好的Kinect手势。
Gesture Listeners 场景中手势侦听器列表。如果列表为空,则在场景启动时将检测到可用的手势侦听器。
Calibration Text 用于显示用户检测消息的GUI文本。
Gestures Debug Text 显示当前跟踪手势的调试消息的GUI文本。

Kinect-v2 Examples with MS-SDK(译文二)的更多相关文章

  1. 【计算机视觉】深度相机(五)--Kinect v2.0

    原文:http://blog.csdn.NET/qq1175421841/article/details/50412994 ----微软Build2012大会:Kinect for Windows P ...

  2. 【翻译】Kinect v1和Kinect v2的彻底比较

      本连载主要是比较Kinect for Windows的现行版(v1)和次世代型的开发者预览版(v2),以C++开发者为背景介绍进化的硬件和软件.本文主要是对传感的配置和运行条件进行彻底的比较.   ...

  3. Kinect v2.0 for windows开发环境说明

    官方文档里是这些: Supported Operating Systems and Architectures The following operating systems and architec ...

  4. 【翻译】Kinect v2程序设计(C++-) AudioBeam篇

    Kinect v2,Microphone Array可以用来对于水平面音源方向的推测(AudioBeam)和语音识别(Speech Recognition).这一节是介绍如何取得AudioBeam. ...

  5. 【翻译】Kinect Studio是? 三月 SDK Update的新机能

      Kinect应用软件开发支援工具「Kinect Studio」的功能和用法的说明.由于可以记录/再生数据,让开发和调试变得更加简单.   Kinect SDK v2预览版的RTM版的预定在发布之前 ...

  6. 【翻译】Kinect v2程序设计(C++) Body 篇

    Kinect SDK v2预览版的主要功能的使用介绍,基本上完成了.这次,是关于取得Body(人体姿势)方法的说明.   上一节,是使用Kinect SDK v2预览版从Kinect v2预览版取得B ...

  7. 【翻译】Kinect v2程序设计(C++) BodyIndex篇

    通过Kinect SDK v2预览版,取得BodyIndex(人体区域)的方法和示例代码. 上一节,介绍了从Kinect v2预览版用Kinect SDK v2预览版获取Depth数据的方法.   这 ...

  8. 【翻译】Kinect v2程序设计(C++) Depth编

    Kinect SDK v2预览版,取得Depth数据的方法说明. 上一节,介绍了通过使用Kinect for Windows SDK v2预览版(以下简称为,Kinect SDK v2预览版)从Kin ...

  9. 【翻译】Kinect v2程序设计(C++) Color篇

    Kinect SDK v2预览版,获取数据的基本流程的说明.以及取得Color图像的示例程序的介绍. 上一节,是关于当前型号Kinect for Windows(后面称作Kinect v1)和次世代型 ...

随机推荐

  1. PHP代码安全有必要了解下

    攻击者通过构造恶意SQL命令发送到数据库,如果程序未对用户输入的 SQL命令执行判断过滤,那么生成的SQL语句可能会绕过安全性检查,插入其他用于修改后端数据库的语句,并可能执行系统命令,从而对系统造成 ...

  2. PHP 在Swoole中使用双IoC容器实现无污染的依赖注入

    简介: 容器(container)技术(可以理解为全局的工厂方法), 已经是现代项目的标配. 基于容器, 可以进一步实现控制反转, 依赖注入. Laravel 的巨大成功就是构建在它非常强大的IoC容 ...

  3. ZeroC ICE的远程调用框架 AMI与AMD -Why?

    在Ice有两种异步使用的方式,AMI和AMD.AMI是异步方法调用,AMD是异步方法调度(分派).前者用在代理端,后者用在饲服实现端. AMI其实就是在代理端,使用Future机制进行异步调用,而不阻 ...

  4. 关于Java 值传递深度分析

    首先说观点:java只有值传递没有引用传递 然后再来看看值传递与引用传递两者的定义 值传递(pass by value)是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中如果对参数进行修改, ...

  5. Error: invalid "instanceof" keyword value Promise的解决方法

    执行npm run dev 时,发现错误 Error: invalid "instanceof" keyword value Promise 经过一番查找,发现原因是webpack ...

  6. php 打印数组格式化显示

    输出前添加 <pre>,便可以自动格式化换行显示. print_r("<pre>"); 比如打印数组 : print_r($arr); 输出: Array ...

  7. CSS中如果实现元素浮动和清除浮动,看这篇文章就足够了

    浮动基本介绍 在标准文档流中元素分为2种,块级元素和行内元素,如果想让一些元素既要有块级元素的特点也同时保留行内元素特点,只能让这些元素脱离标准文档流即可. 浮动可以让元素脱离标准文档流,可以实现让多 ...

  8. mysql数据库终端上的增删改查及权限等相关操作

    ctrl + c 终止 [linux] service mysql start 启动mysql service mysql stop 停止mysql service mysql restart 重启m ...

  9. android clipChildren 的使用与遇到的困难

    案例 在一次我写画板模块的时候,布局比较普通,但是需要子元素溢出父元素.其中一小块布局如下所示: 红色部分需要溢出,这个时候我想到了clipChildren. clipChildren 就是说我可以不 ...

  10. Linux job control

    Linux 系统中有一个 job control 的概念,本文简单介绍什么是 job,以及常见的 job control 命令.本文中演示部分使用的环境为 ubuntu 18.04. 进程组(job) ...