Unity AzureKinect所有Demo整理分析(持续更新中)

插眼2021/01/25: 

想要做点东西,发现都好像找不到东西,写博客的初衷更多的是让自己有个印象,希望能够帮助到别人,也希望能带动更多的人一起分享,希望大家不要吝啬,以前写的都很零散,后面会整理的好一点,毕竟每个人要做的东西都不一样,我更多的是希望能让大家有个入门,不至于不知道怎么开始,两眼一抹黑

下载链接:

(Unity AzureKinect最新1.15资源包)

 https://download.csdn.net/download/qq_39097425/14932763

一: AvatarDemo

1.AvatarDemo / KinectAvatarsDemo1

该场景从第三人称视角显示了两个由用户控制的化身。该场景利用KinectManager组件来管理传感器和数据,使用AvatarController组件来控制两个化身中的每一个,以及利用SimpleGestureListener组件来演示手势检测过程。

2.AvatarDemo / KinectAvatarsDemo2

它从第一人称视角演示了头像控制。场景利用KinectManager组件来管理传感器和数据,并利用AvatarController组件来控制第一人称化身。

3.AvatarDemo / KinectAvatarsDemo3

该场景利用AvatarControllerClassic组件来控制化身的上身以及偏移节点,以使化身相对于游戏对象运动。场景利用KinectManager组件来管理传感器和数据,并利用AvatarControllerClassic组件来控制化身的上身。

4.AvatarDemo / KinectAvatarsDemo4

该演示演示了如何实例化和删除场景中的化身,以匹配镜头前的用户。它利用KinectManager组件来管理传感器和数据,使用UserAvatarMatcher组件来实例化和移除用户来去时场景中的化身,以及利用AvatarController组件来控制每个实例化的化身。

二: BackgroundRemovalDemo

1.BackgroundRemovalDemo / BackgroundRemovalDemo1

此背景去除演示演示了如何在虚拟背景(所谓的绿屏)上显示用户剪影。它利用KinectManager组件来管理传感器和数据,利用BackgroundRemovalManager组件来呈现用户轮廓,并使用PortraitBackground组件来管理不同的屏幕分辨率。

2.BackgroundRemovalDemo / BackgroundRemovalDemo2

该演示演示了如何在虚拟背景上显示部分真实环境。它利用KinectManager组件来管理传感器和数据,利用BackgroundRemovalManager组件来渲染场景中的真实环境,利用BackgroundRemovalByDist组件来过滤真实环境的一部分,并使用PortraitBackground组件来管理不同的屏幕分辨率。

3. BackgroundRemovalDemo / BackgroundRemovalDemo3

该演示场景显示了如何通过利用检测到的身体索引在虚拟背景上显示用户剪影。它利用KinectManager组件管理传感器和数据,利用BackgroundRemovalManager组件呈现用户轮廓,利用BackgroundRemovalByBodyIndex组件根据检测到的身体索引过滤用户轮廓,并利用PortraitBackground组件管理不同的屏幕分辨率。

4.BackgroundRemovalDemo / BackgroundRemovalDemo4

该场景演示了如何在用户的轮廓内显示虚拟场景环境的一部分。它利用KinectManager组件来管理传感器和数据,利用BackgroundRemovalManager组件来呈现用户轮廓,并利用PortraitBackground组件来管理不同的屏幕分辨率。 

5. BackgroundRemovalDemo / BackgroundRemovalDemo5

该演示场景显示了如何根据用户到传感器的距离在3D虚拟环境中显示用户剪影。它使用KinectManager组件来管理传感器和数据,使用BackgroundRemovalManager组件来呈现用户剪影,使用ForegroundToRenderer组件来在游戏对象上呈现用户剪影,使用UserImageMover组件根据用户到图像的距离移动用户的图像对象。传感器,ColorImageJointOverlayer组件(用于将用户的关节与虚拟对象重叠)和PortraitBackground组件(用于管理不同的屏幕分辨率)。

 

三: BlobDetectionDemo 

1.BlobDetectionDemo / BlobDetectionDemo

斑点检测演示显示了如何在为传感器配置的最小/最大距离内检测原始深度图像中像素的斑点(紧凑区域)。它利用KinectManager组件管理传感器和数据,使用BlobDetector组件提供来自传感器的原始深度图像中的斑点检测,并利用BackgroundDepthImage组件在场景背景上显示深度相机图像。

 

2.BlobDetectionDemo / DepthIrFilterDemo

红外深度过滤器演示展示了如何在为传感器配置的最小/最大距离内用原始深度图像数据过滤红外图像。它利用KinectManager组件管理传感器和数据,并利用DepthIrFilterImage组件使用原始深度数据过滤IR图像,并将其显示在场景背景上。

 

四: ColliderDemo 

1.ColliderDemo / ColorColliderDemo

它演示了如何在用户的手和虚拟场景对象之间触发“虚拟触摸”。场景使用KinectManager组件管理传感器和数据,HandColorOverlayer组件使用碰撞器移动覆盖的手形对象,JumpTrigger组件检测虚拟对象的碰撞,BackgroundColorImage组件在场景背景上显示彩色摄像头图像。

 

2.ColliderDemo /DepthColliderDemo2D

它显示了用户的轮廓如何与2D场景中的虚拟对象进行交互。该场景使用KinectManager组件管理传感器和数据,使用DepthSpriteViewer组件显示用户的轮廓并创建覆盖的骨骼碰撞器,并使用EggSpawner组件生成场景中的虚拟对象(球体)。

 

2.ColliderDemo /DepthColliderDemo3D

它显示了用户的轮廓如何与3D场景中的虚拟对象进行交互。场景利用KinectManager组件管理传感器和数据,DepthImageViewer组件显示用户的轮廓并创建覆盖的骨骼碰撞器,EggSpawner组件利用该组件生成场景中的虚拟对象(鸡蛋)。

 

4.ColliderDemo /SkeletonColliderDemo

该场景显示了用户的骨骼如何与场景中的虚拟对象进行交互。它利用KinectManager组件管理传感器和数据,利用SkeletonCollider组件显示用户的骨骼并创建骨骼碰撞器,并利用BallSpawner组件在场景中生成虚拟对象。

五:FittingRoomDemo 

1.FittingRoomDemo / KinectFittingRoom1

这是主要的更衣室演示场景。它演示了校准姿势,模型叠加以及虚拟对象与物理对象之间的混合的用法。它使用KinectManager组件来管理传感器和数据,FollowSensorTransform组件使相机的姿势与传感器保持同步,BackgroundColorImage组件用于在BackgroundImage2上显示彩色摄像头,CategorySelector组件用于根据需要更改模型类别,ModelSelector -用于管理模型菜单填充和模型选择的组件,用于管理照片制作的PhotoShooter组件,用于将虚拟对象与物理对象混合在一起的UserBodyBlender-组件。

2.FittingRoomDemo / KinectFittingRoom2

这是第二个更衣室的演示场景。它显示了如何使用任意人形模型(如Ironman,Cinderella,Ninja turtle等)覆盖用户的身体。场景使用KinectManager组件管理传感器和数据,FollowSensorTransform组件使相机与传感器保持同步,AvatarController组件控制虚拟模型,AvatarScaler组件根据用户的尺寸缩放模型, BackgroundColorImage组件可在BackgroundImage2上显示彩色摄像头源,还可以选择UserBodyBlender组件将虚拟对象与物理对象混合在一起。

六: GestureDemo

1.GestureDemo/KinectGesturesDemo1

该场景演示了检测离散手势(在此演示中为向左滑动,向右滑动和向上滑动)的检测,该手势用于控制演示多维数据集。场景利用KinectManager组件管理传感器和数据,利用CubeGestureListener组件侦听滑动手势,并利用CubePresentationScript组件控制场景中的表示多维数据集。

 

2.GestureDemo/KinectGesturesDemo2

它演示了如何检测用于旋转和缩放3D模型的连续手势(本演示中的滚轮,缩小和放大)。场景使用KinectManager组件管理传感器和数据,使用ModelGestureListener组件设置和侦听滚轮和缩放手势,使用ModelPresentationScript组件控制场景中的3D模型。

 

七: GreenScreenDemo

1.GreenScreenDemo / GreenScreenDemo1

场景显示了如何利用绿屏进行背景分割。场景使用KinectManager组件来管理传感器和数据,BackgroundRemovalManager组件来渲染场景中的真实环境,BackgroundRemovalByGreenScreen组件根据其与绿色的相似性或差异来过滤真实环境的一部分。屏幕和PortraitBackground组件来管理不同的屏幕分辨率。

 

2.GreenScreenDemo / GreenScreenDemo2

它显示了如何利用绿屏进行背景分割和体积渲染。场景使用KinectManager组件来管理传感器和数据,BackgroundRemovalManager组件来渲染场景中的真实环境,BackgroundRemovalByGreenScreen组件根据其与绿色的相似性或差异来过滤真实环境的一部分。屏幕上,ForegroundBlendRenderer组件可提供场景中已过滤环境的体积渲染和照明,而PortraitBackground组件可管理不同的屏幕分辨率。

 

八: InteractionDemo 

1.InteractionDemo / KinectInteractionDemo1

该场景演示了在屏幕上的手形光标控制以及通过抓握和释放来进行手形交互。场景使用KinectManager组件管理传感器和数据,使用InteractionManager组件管理手形光标和用户交互,使用GrabDropScript组件通过手柄和释放与场景中的虚拟对象进行交互,并使用InteractionInputModule传达用户交互与UI到Unity事件系统。

2.InteractionDemo / KinectInteractionDemo2

它显示了如何使用手部互动来在各个方向上抓取和旋转屏幕上的虚拟对象。场景使用KinectManager组件管理传感器和数据,使用InteractionManager组件管理手形光标和用户交互,并使用GrabRotateScript组件与场景中的虚拟对象进行交互。

九: MocapAnimatorDemo 

1.MocapAnimatorDemo / MocapAnimatorDemo

Mocap动画器场景提供了一个简单的工具,可以将用户的动作捕获为Unity动画。场景利用KinectManager组件管理传感器和数据,利用MocapRecorder组件捕获用户的动作并将其记录到Unity动画资产中,利用MocapPlayer组件在人形模型上播放录制的动画,并利用AvatarController组件提供动作数据。

 

十: MultiCameraSetup

1.MultiCameraSetup / MultiCameraSetup

这个后面单独写一篇博客

“多摄像机设置”场景提供了一种工具,用于估计多摄像机设置中的传感器位置和旋转。它利用KinectManager组件来管理传感器和数据,利用MultiCameraSetup组件来估计传感器的位置和旋转,并利用UserMeshRendererGpu组件来呈现场景中的用户,如传感器所感知。 

十一: MultiSceneDemo 

1,2,3.MultiSceneDemo / Scene0-StartupScene,Scene1-AvatarsDemo和Scene2-GesturesDemo

这组场景显示了如何在多个场景中使用KinectManager和其他Kinect相关组件。它使用KinectManager组件来管理传感器和数据,使用启动场景中的LoadFirstLevel组件来加载第一个真实场景,使用真实场景中的LoadLevelWithDelay组件来在场景之间循环,并使用RefreshGestureListeners组件来刷新手势侦听器的列表。对于当前场景。其他与Kinect相关的组件(如AvatarController,手势侦听器等)在实际场景(1和2)中使用,但它们与各自的场景细节相关,而不是在多个场景中使用单个KinectManager。

十二: NetworkDemo 

1.NetworkDemo / KinectNetServer

该场景充当所连接传感器流的网络服务器。它利用KinectManager组件来管理传感器和数据,利用KinectNetServer组件来侦听客户端并通过网络发送传感器数据,并利用UserAvatarMatcher组件来实例化和移除用户来去时场景中的化身。

2.NetworkDemo / NetClientDemo1

该场景演示了如何使用网络客户端传感器(与KinectNetServer结合使用)来远程控制场景中的化身。它利用KinectManager组件来管理传感器和数据,使用NetClientInterface组件通过从网络上的服务器接收远程传感器的数据来充当“网络”传感器,并利用UserAvatarMatcher组件来实例化和删除场景中的化身。用户来来去去。 

十三: OverlayDemo 

1.OverlayDemo / KinectOverlayDemo1

这是最基本的关节覆盖演示,展示了虚拟对象如何在屏幕上覆盖用户的关节(右肩)。场景利用KinectManager组件管理传感器和数据,JointOverlayer组件利用给定的虚拟对象覆盖用户的身体关节,而BackgroundColorImage组件则在场景背景上显示彩色摄像头图像。

2.OverlayDemo / KinectOverlayDemo2

这是一个骨骼覆盖演示,绿色球覆盖人体关节,它们之间的线代表骨骼。场景利用KinectManager组件管理传感器和数据,SkeletonOverlayer组件利用虚拟对象和线条覆盖用户的身体关节,以及BackgroundColorImage组件在场景背景上显示彩色摄像机图像。

3.OverlayDemo / KinectOverlayDemo3

这是一个手覆盖演示,在用户右手合上时在屏幕上绘制线条。场景使用KinectManager组件管理传感器和数据,使用InteractionManager组件管理手部交互,使用HandOverlayer组件用给定的光标覆盖用户的手并捕获手部事件,使用LinePainter组件在以下情况下绘制线条:紧握用户的手,然后使用BackgroundColorImage-component在场景背景上显示彩色摄像机图像。

 

4.OverlayDemo / KinectPhotoBooth

这是一个照相亭演示,将特定用户的身体关节与2d图像叠加在一起。该场景使用KinectManager组件管理传感器和数据,使用InteractionManager组件管理手的交互,使用JointOverlayer组件将用户的身体关节覆盖2d图像,使用PhotoBoothController组件检测用户的滑动手势并相应地更新覆盖的图像和BackgroundColorImage-component在场景背景上显示彩色摄像机图像。

十四: PointCloudDemo 

1.PointCloudDemo / SceneMeshDemo

该演示演示了如何在运行时将真实环境的一部分(如点云)集成到Unity场景中。它利用KinectManager组件管理传感器和数据,利用SceneMeshRendererGpu组件将真实环境渲染到场景中,并利用FollowSensorTransform组件根据传感器的位置和旋转来移动网格中心。

2.PointCloudDemo / UserMeshDemo

该演示演示了如何在运行时将真实用户作为点云集成到Unity场景中。它利用KinectManager组件管理传感器和数据,利用UserMeshRendererGpu组件将用户渲染到场景中,并利用FollowSensorTransform组件根据传感器的位置和旋转来移动网格中心。

 

3.PointCloudDemo / VfxPointCloudDemo

后面会单独开一篇博客讲这个

需要更多粒子效果下载链接: https://download.csdn.net/download/qq_39097425/14932689

条件:

(1) 安装URP 或者 HDRP,以及Visual Effect Graph

(2) 初次运行要打开VFX的编译保存一下

该场景演示了如何将传感器提供的空间和颜色数据与视觉效果图结合起来,以创建具有或不具有视觉效果的环境点云。它利用KinectManager组件来管理传感器和数据,以及传感器接口设置来创建VFX图形所需的属性纹理。请参阅下面的“如何运行VfxPointCloudDemo场景”部分。

 

十五: PoseDetectionDemo 

1.PoseDetectionDemo / PoseDetectionDemo1

这是简单的静态姿势检测演示。它计算静态姿势模型的骨骼方向与用户的骨骼方向之间的差异,并估算姿势匹配因子。场景利用KinectManager组件管理传感器和数据,使用StaticPoseDetector组件估计姿势匹配因子,使用PoseModelHelper组件提供模型骨骼方向,使用AvatarController组件控制用户的化身。

2.PoseDetectionDemo / PoseDetectionDemo2

与之前的演示相比,该演示场景估计了用户与动画姿势模型之间的姿势匹配因子。可以将运动姿势检测分为步骤,以向用户提供更好的反馈。场景利用KinectManager组件管理传感器和数据,DynamicPoseDetector组件估算用户与动画模型之间的姿势匹配因子,MovingPoseManager组件估算给​​定的动画步骤序列中的用户性能,PoseModelHelper和PoseModelHelperClassic组件可估计用户和模型的骨骼方向,而AvatarController组件可控制用户的化身。

 

十六: RecorderDemo 

1.RecorderDemo / BodyDataRecorderDemo

这是简单的人体数据记录器和播放器。录制的身体数据文件可以稍后在同一台机器或其他机器上播放。场景使用KinectManager组件管理传感器和数据,BodyDataRecorderPlayer组件用于记录文件中的数据或从文件中播放身体数据,BodyDataPlayerController组件用于处理按键并启动/停止记录器或播放器,UserAvatarMatcher-组件以根据需要实例化和删除场景中的化身。

2.RecorderDemo / PlayerDetectorDemo

该场景演示了一段时间内未检测到用户时如何播放身体数据记录。场景利用KinectManager组件管理传感器和数据,BodyDataRecorderPlayer组件从文件播放记录的身体数据,PlayerDetectorController组件检查用户并相应地启动/停止身体数据播放器,UserAvatarMatcher组件用于根据需要实例化并删除场景中的化身。

十七: VariousDemos

1.VariousDemos/HeightEstimatorDemo

身高估算器演示演示了如何仅基于原始深度图像数据估算用户的身高和某些身体尺寸。它利用KinectManager组件管理传感器和数据,BodySlicer组件根据原始深度数据估算用户的身高和其他身体尺寸,HeightEstimator组件在屏幕上显示用户的身体信息,BackgroundDepthImage组件用于显示深度。镜头图像在现场背景上。

2.VariousDemos/HolographicViewerDemo

全屏查看器演示场景显示了如何根据查看器的位置在屏幕上渲染简单的全息场景。它利用KinectManager组件来管理传感器和数据,并利用SimpleHolographicCamera组件来模拟3D全息显示,具体取决于查看者在显示器前面的位置。

猜你喜欢

转载自blog.csdn.net/qq_39097425/article/details/113125220
今日推荐