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文件夹中脚本最好全部导入进来,除非你确定自己需要的文件。


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

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

Avatar Controller (模型控制器)

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 Zz轴移动是否需要反转(仅正相对模式)。
Grounded Feet模型的脚是否必须在地面上。
Apply Muscle Limits是否应用类人模型的肌肉限制。
Flip Left Right模型是否相对于传感器左右翻转。
Vertical Offset模型位置相对于用户脊柱基础位置的垂直偏移。
Forward Offset模型位置相对于用户脊柱基础位置的Z轴偏移。

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

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 MeshHD-face模型网格应如何纹理化。
Move Model Mesh是否根据用户的头部位置移动面部模型网格。
Foreground Camera相机用于将面部网格覆盖在彩色背景上。
Model Mesh Scale面网格的比例因子。
Vertical Mesh Offset头部上方的网格的垂直偏移(以米为单位)。
Debug Text用于显示FT管理器调试消息的GUI文本。

Kinect Gestures (手势姿势识别)

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


Kinect Manager(基础组件)

Kinect-v2 Examples with MS-SDK(译文二)-LMLPHP

Sensor Height传感器距离地面高度(单位:米)
Sensor AngleKinect仰角(角度),可正负。
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文本。
05-27 22:21