Kinect v2 Examples with MS-SDK

Kinect2_MsSDKKinect v2 Examples with MS-SDK is a set of Kinect-v2 (aka ‘Kinect for Xbox One’) examples that use several major scripts, grouped in one folder. The package contains over thirty demo scenes.

Please look at the Azure Kinect Examples for Unity asset, as well. It works with Azure Kinect sensors (aka Kinect-for-Azure, K4A), as well as with Kinect-v2 sensors (aka Kinect-for-Xbox-One).

The avatar-demo scenes show how to utilize Kinect-controlled avatars in your scenes, gesture-demos – how to use the programmatic or visual gestures, fitting room demos – how to create your own dressing room, overlay demos – how to overlay body parts with virtual objects, etc. You can find short descriptions of all demo-scenes in the K2-asset online documentation.

This package works with Kinect-v2 sensors (aka Kinect for Xbox One) and Kinect-v1 sensors (aka Kinect for Xbox 360). It can be used with all versions of Unity – Free, Plus & Pro.

Free for education:
The package is free for academic use. If you are a student, lecturer or academic researcher, please e-mail me to get the K2-asset directly from me.

One request:
Please don’t share this package or its demo scenes in source form with others, or as part of public repositories, without my explicit consent.

Customer support:
* First, please check if you can find the answer you’re looking for on the Tips, tricks and examples page, as well as on K2-asset Online Documentation page. See also the comments below the articles here, or in the Unity forums. If it is not there, you may contact me, but please don’t do it on weekends or holidays.
* If you e-mail me, please include your invoice number. More information regarding e-mail support you can find here.
* Please note, you can always upgrade your K2-asset free of any charge, from the Unity Asset store.

How to run the demo scenes:
1. (Kinect-v2) Download and install Kinect for Windows SDK v2.0. The download link is below.
2. (Kinect-v2) If you want to use Kinect speech recognition, download and install the Speech Platform Runtime, as well as EN-US (and other needed) language packs. The download links are below.
3. (Nuitrack-Deprecated) If you want to work with Nuitrack body tracking SDK, please look at this tip.
4. Import this package into new Unity project.
5. Open ‘File / Build settings’ and switch to ‘PC, Mac & Linux Standalone’. The target platform should be ‘Windows’ and architecture – ‘Intel 64-bit’.
6. Make sure that ‘Direct3D11’ is the first option in the ‘Auto Graphics API for Windows’-list setting, in ‘Player Settings / Other Settings / Rendering’.
7. Open and run a demo scene of your choice, from a subfolder of ‘K2Examples/KinectDemos’-folder. Short descriptions of all demo scenes are available here.

* Kinect for Windows SDK v2.0 (Windows-only) can be found here.
* MS Speech Platform Runtime v11 can be downloaded here. Please install both x86 and x64 versions, to be on the safe side.
* Kinect for Windows SDK 2.0 language packs can be downloaded here. The language codes are listed here.

Documentation:
* The online documentation of the K2-asset is available here and as a pdf-file, as well.

Downloads:
* The official release of the ‘Kinect v2 with MS-SDK’ is available at Unity Asset Store. All updates are free of charge.

Troubleshooting:
* If you get errors like ‘Texture2D’ does not contain a definition for ‘LoadImage’ or ‘Texture2D’ does not contain a definition for ‘EncodeToJPG’, please open the Package Maneger, select ‘Built-in packages’ and enable ‘Image conversion’ and ‘Physics 2D’ packages.
* If you get compilation errors like “Type `System.IO.FileInfo’ does not contain a definition for `Length’”, you need to set the build platform to ‘Windows standalone’. For more information look at this tip.
* If the Unity editor crashes, when you start demo-scenes with face-tracking components, please look at this workaround tip.
* If the demo scene reports errors or remains in ‘Waiting for users’-state, make sure you have installed Kinect SDK 2.0, the other needed components, and check if the sensor is connected.

* Here is a link to the project’s Unity forum: http://forum.unity3d.com/threads/kinect-v2-with-ms-sdk.260106/
* Many Kinect-related tips, tricks and examples are available here.
* The official online documentation of the K2-asset is available here.

Known Issues:
* If you get compilation errors, like “Type `System.IO.FileInfo’ does not contain a definition for `Length“, open the project’s Build-Settings (menu File / Build Settings) and make sure that ‘PC, Mac & Linux Standalone’ is selected as ‘Platform’ on the left. On the right side, ‘Windows’ must be the ‘Target platform’, and ‘x86’ or ‘x86_64’ – the ‘Architecture’. If Windows Standalone was not the default platform, do these changes and then click on ‘Switch Platform’-button, to set the new build platform. If the Windows Standalone platform is not installed at all, run UnityDownloadAssistant again, then select and install the ‘Windows Build Support’-component.
* If you experience Unity crashes, when you start the Avatar-demos, Face-tracking-demos or Fitting-room-demos, this is probably due to a known bug in the Kinect face-tracking subsystem. In this case, first try to update the NVidia drivers on your machine to their latest version from NVidia website. If this doesn’t help and the Unity editor still crashes, please disable or remove the FacetrackingManager-component of KinectController-game object. This will provide a quick workaround for many demo-scenes. The Face-tracking component and demos will still not work, of course.
* Unity 5.1.0 and 5.1.1 introduced an issue, which causes some of the shaders in the K2-asset to stop working. They worked fine in 5.0.0 and 5.0.1 though. The issue is best visible, if you run the background-removal-demo. In case you use Unity 5.1.0 or 5.1.1, the scene doesn’t show any users over the background image. The workaround is to update to Unity 5.1.2 or later. The shader issue was fixed there.
* If you update an existing project to K2-asset v2.18 or later, you may get various syntax errors in the console, like this one: “error CS1502: The best overloaded method match for `Microsoft.Kinect.VisualGestureBuilder.VisualGestureBuilderFrameSource.Create(Windows.Kinect.KinectSensor, ulong)’ has some invalid arguments”. This may be caused by the moved ‘Standard Assets’-folder from Assets-folder to Assets/K2Examples-folder, due to the latest Asset store requirements. The workaround is to delete the ‘Assets/Standard Assets’-folder. Be careful though. ‘Assets/Standard Assets’-folder may contain scripts and files from other imported packages, too. In this case, see what files and folders the ‘K2Examples/Standard Assets’-folder contains, and delete only those files and folders from ‘Assets/Standard Assets’, to prevent duplications.
* If you want to release a Windows 32 build of your project, please download this library (for Kinect-v2) and/or this library (for Kinect-v1), and put them into K2Examples/Resources-folder of your project. These 32-bit libraries are stripped out of the latest releases of K2-asset, in order to reduce its package size.

What’s New in Version 2.21:
1. Added ‘Fixed step indices’ to the user detection orders, to allow user detection in adjacent areas.
2. Added ‘Central position’-setting to the KinectManager, to allow user detection by distance, according
to the given central position.
3. Added ‘Users face backwards’-setting to the KM, to ease the backward-facing setups.
4. Updated Nuitrack-sensor interface, to support the newer Nuitrack SDKs (thanks to Renjith P K).
5. Cosmetic changes in several scenes and components.

Videos worth more than 1000 words:
Here is a video by Ricardo Salazar, created with Unity5, Kinect v2 and “Kinect v2 with MS-SDK”, v.2.3:

..a video by Ranek Runthal, created with Unity4, Kinect v2 and “Kinect v2 with MS-SDK”, v.2.3

..and a video by Brandon Tay, created with Unity4, Kinect v2 and “Kinect v2 with MS-SDK”, v.2.0:

806 thoughts on “Kinect v2 Examples with MS-SDK

  1. Hi Rumen.
    I am a student from UCL and study Unity and Kinect for our design project prototype. Could you please send me this package as education asset via email?

    Really appreciate!

    • Hi Teresa,
      Please send me an e-mail from your university e-mail address, to prove you really study there. Then, I can send you the requested package to an e-mail address of your choice, provided it’s also yours.

  2. Hi Rumen.

    I am a third-year student from the Department of Visual Communication at Kun Shan University of Technology in Taiwan.

    Currently, I am working on my graduation project, and I would like to create a character for real-time motion capture. My teacher suggested using UNITY and Kinect v2 for this purpose.

    I would like to inquire if it is possible for me to request the resources from you!

    Really appreciate!

  3. Hi Rumen,
    I’m trying to make a Unity project that includes KinectV2 and Vuforia as a project at school, to both achieve AR and human motion interaction, so I need to build a UWP application since Vuforia only support UWP platform on PC.
    But I found that you mention that the scripting backend should be ‘.Net’ in ‘Kinect v2 Tips, Tricks and Examples’, which has been deprecated by unity from 2019 version.
    Is there any way to build UWP application in higher version of Unity?

    Looking forward to your valuable insights and suggestions!

    • Hi Feng, .Net’ scripting backend was replaced with ‘Mono’ in the more recent versions of Unity. You can build your project with it. Regarding UWP: I don’t think it will support the Kinect’s native libraries. It was a very restricted framework, as far as I remember.

      • Hi Rumen.

        I am a fourth grade-year student from the Department of Information and Communication at Asia University of Technology in Taiwan.

        Currently, I am working on my graduation project, and I would like to create a character for real-time motion capture. My teacher suggested using UNITY and Kinect v2 for this purpose.

        I would like to inquire if it is possible for me to request the resources from you!

        Really appreciate!

  4. Hi Rumen.

    I am currently using VisualGesturesDemo to try and create my own gesture library using Visual Gesture Builder. I recorded a clapping gesture for testing, but when I import the VisualGesturesDemo package into Unity, it doesn’t seem to respond. We followed your tutorial to replace it with our clapping gesture, but it still doesn’t work.

    I also noticed that your demo package includes a gesture library you created. Could you please explain how to create it correctly?

    Thank you.

    • Hi and sorry for the delay! Please look at this tip regarding the visual gestures. The ‘seated.gbd’-database, as far as I remember, was ready made. I didn’t create it by myself.

  5. Hi, i’m trying to use your scripts to make a university project (thanks for letting us use your assets). At the moment I’m stuck because I don’t know how to send the information of the kinect sensor from a client to a server, which has to animate an avatar spawned as a prefab (think of it as a vr chat where an user can see the other clients animated).
    -any idea on how to do this?
    -i’m now trying to spawn a prefab with your scripts attached but the KinectManager script is missing when the prefab is spawned. i thought that there may be some conflincts and that can be just one object with that script attached but now i’m pretty sure that there are no other scripts in the scene…

    thank you in advice if you can help me!

    • Hi Marian, sorry for the late reply! Please look if your version of the K2-asset contains KinectDataServer / KinectDataClient demo scenes. The server/client components there can be used to send the data over the network. If it doesn’t, please e-mail me to send you the “Azure Kinect Examples”-asset. It works with Kinect-v2 sensors as well, and has components and demo scenes to send/receive data over the network.

      • Hi, yes i’ve tried your demo scenes and they worked finely. i’ve tried to use the KinectDataServer and KinectDataClient on my project spawining with my own script the avatar prefab and it doesn’t move… do I have to use your UserAvatarMatcher script mandatory? thanks

      • No, it’s not mandatory. Don’t forget to call ‘kinectManager.RefreshAvatarControllers();’ after you instantiate your avatar. This is a peculiarity of the K2-asset.

  6. Hi Rumen,
    I’m a senior undergrad student studying at NYU, and I’m trying to create a project using Kinect and Unity. Could you please send me the package for educational use? I’ve also send you an email that has the same text via my school email. Thank you so much for your help!

  7. I can’t access the document website(https://ratemt.com/k2docs/),ping is also failed, Is there any document in pdf(I only find the pdf for demo scene)? Thank you for your help!

Leave a Reply to Rumen F.Cancel reply