Kinect officially supports Windows Store! So, if you decide to bring your Kinect apps & games to the Windows Store and reach more customers, be my guest.
Uploading traditional Windows Store apps, made with Visual Studio and XAML, is quite trivial. However, exporting a Kinect for Unity project as a Windows Store package is a little more complicated. In today’s tutorial, I’ll show you how to do it.
Prerequisites
- Kinect for XBOX v2 sensor with an adapter (or Kinect for Windows v2 sensor)
- Kinect for Windows v2 SDK
- Unity3D 5.0 or higher
- Kinect Unity Package
- Visual Studio 2013 or higher
- Windows 8.1 or higher
- A dedicated USB 3 port
Process
So, let’s see how we can export our Unity project as a Windows Store app. The screenshots below are found in the built-in demos of Vitruvius. The Unity samples have been developed by our Lead Engineer, Michael Miropoulos.
Step 0 – Create and test your Kinect project
Create your Unity Kinect project as you’d normally do. Include the required references and test your game using the Unity Editor.
Step 1 – Set Unity Build Settings
Then, navigate to File → Build Settings and add the scenes you want to include in the Windows Store project. Select Windows Store as your Platform. Select 8.1 as the target SDK. Then, click Build. Do not click “Build And Run”.
Attention: You cannot export for Windows Universal Apps (UWP) yet. Your Windows Store app would run in Windows 8.1 and Windows 10 with no problems, though.
Step 2 – Export for Windows Store 8.1
Unity will then ask you to create or select a folder. This folder would include the Visual Studio Solution (.sln) files and binaries. Click Select Folder and wait. Unity will compile your project using the corresponding Windows Store APIs. Kinect SDK is fully compatible with Windows Store. However, your whole project and dependencies should be compatible with the Windows Store APIs. Avoid using iOS-specific, Android-specific, or Desktop-specific dependencies.
Step 3 – Set Visual Studio Build Settings
After the process is completed, Unity will generate a Solution (.sln) file. Double-click to open it using Visual Studio.
Kinect is not compatible with ARM processors, so you’ll need to select x86 as your target processor. For better performance, you should also select Release instead of Debug.
Step 4 – Add the required References
And now the tricky part! Even though we have already included the Windows.Kinect namespace into our Unity project, one additional step is required. Visual Studio needs to map the Unity-specific classes and methods to the WinRT-specific ones. So, right-click the References option and select Add Reference.
Navigate to Windows 8.1 → Extensions and select WindowsPreview.Kinect (required) and Microsoft.Kinect.Face (optional). Click OK and wait for a few seconds.
Step 5 – Run!
This is it! Hit the green Run button to launch your Kinect Windows Store app! Feel free to upload it to the Windows Store.
Kinetisense and XRsense are two Kinect Windows Store apps that use Unity. Give them a try!
PS: Vitruvius
This project is part of the Premium version of Vitruvius (original cost: $299). Vitruvius is a set of powerful Kinect extensions that will help you build stunning Kinect apps in minutes. Vitruvius includes avateering, HD Face, background removal, angle calculations, and more. Check it now.
Want to hire my team for your next cutting-edge app? Drop me an email.
Hi!
Vitruvius sounds great! I would like to know if you have an ETA for Windows Universal Apps (UWP) support.
Kind regards,
Christian
Hi Christian. Vitruvius is compatible with Windows 10 (keep in mind that Kinect is not a “universal” sensor, so there is no API to run Kinect apps on phones).
You can export your Kinect/Vitruvius project for Windows Store (SDK 8.1) and uploaded to the Windows Store. The API is 100% compliant with the Windows Store certification process. Both Unity and .NET versions are 100% compatible with Windows Store.
I would be happy to help you if you have any questions.
Best regards,
Vangos
Does this method works for kinect for xbox 360 / v1 with sdk 1.8 for building windows store apps?
Hello. This method only applies to Kinect v2. Microsoft provides no official support for Kinect 1.8 and Windows Store.
please can I use unity instead of visual studio and Xaml to detect the human activity ?
Hello. You can get started with Kinect and Unity by downloading either Microsoft’s package, or Vitruvius Academic.
Hi Vangos,
The Windows Store platform doesn’t seem to be available in the latest versions of Unity. The last build I found that support it is the 5.3.8 but I’m unable to open any sample Vitruvius scene.
I get a “CheckDisalowAllocation. Allocating memory when it is not allowed to allocate memory” error.
What version of Unity should I use ? Is there a way to install the Windows Store build platform on 2017.x ?
Thx.
Hi Sylvain. Unity 5.6.x supports Windows Store 8.1. So, all of the Kinect applications should be built using 5.6.x. Are you exporting for 8.1 or 10? Microsoft is supporting Windows Store 8.1 exports only.
Hello Sylvain. Vitruvius works with the latest versions of Unity, even 2017. Are you still facing this issue?