K2-asset提供的脚本组件
K2-asset在KinectScripts文件夹中提供通用脚本组件,并在KinectDemos / 文件夹的相应脚本子文件夹中提供特定于演示的组件。可以在自己的Unity项目中重用所有提供的脚本组件。要重用通用组件,需要将KinectScripts文件夹复制到项目中。为此,请按照下列步骤操作:
- 将文件夹“KinectScripts”从包的资产文件夹复制到项目的资产文件夹。该文件夹包含通用组件,过滤器和接口。
- 将文件夹“资源”从包的资产文件夹复制到项目的资产文件夹。此文件夹包含所有需要的库和资源。可跳过复制不想使用的库(例如32位库或KinectV1库)。
- 将文件夹“标准资产”从包的资产文件夹复制到项目的资产文件夹。它包含Kinect-v2的MS-wrapper类。
要使用演示专用的脚本组件,将相应的脚本复制到Unity项目的脚本子文件夹中。请注意,仍然需要将KinectScripts文件夹复制到项目中,因为始终需要KinectManager,它必须存在于场景中,以便所有其他与Kinect相关的组件正常工作,该文件中包含所有的通用文件,如果不完全确定使用了哪些,最好全部加进来。
资源使用建议
不要直接将unity package包直接导入项目中,包里面囊括了众多示例,个人项目能用上也只有少数,应先在空项目中导入研究,再将需要的导入。
KinectScripts文件夹中脚本最好全部导入进来,除非你确定自己需要的文件。
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 (模型控制器)
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(面部追踪管理)
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(基础组件)
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文本。 |