KinectToVR is an application for emulating Vive trackers in SteamVR for full-body tracking using a Kinect for Xbox 360, Kinect for Xbox One or PlayStation Move controllers and cameras.
This version of the app (0.9) will be the last based on this repo. Development on 1.0 and onward is happening elsewhere, more on that later.
AutoCalibration scripts are written by コレヂャン
KinectToVR base is Sharky's
Triping organizes the whole project
The installer's property of Himbeer
Rest is probably written by 公彦赤屋先
This project is licensed under the GNU GPL v3 License
You'll need:
- Visual Studio 2019 (with: C++, v142 tools, ATL)
or just build tools for same (see GitHub Actions script) - Kinect SDK 1.8 & 2.0 installed and visible in PATH
- Working installation of SteamVR for testing
Follow GitHub Actions script, or:
-
Install
vcpkg
and its Visual Studio integration
(cd into somewhere you want it to be)
git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
-
Install needed libraries (You should choose one linking method for all packages)
vcpkg install opencv3[world]:x64-windows boost:x64-windows glm:x64-windows curlpp:x64-windows cereal:x64-windows sfml:x64-windows glew:x64-windows
(Now you may rest a bit, also consider using a drive other thanC:
, it'll be about 6-7GB without cleaned buildtrees) -
Clone the latest OpenVR, GLM and Eigen3 into
external/
:
git clone https://github.com/ValveSoftware/openvr external/openvr
git clone https://gitlab.com/libeigen/eigen external/eigen
git clone https://github.com/g-truc/glm external/glm
-
Fix min/max error in GLM (unresolved with NOMINMAX for now)
sed -i '/#include <limits>/c\#include <limits>\n\n#undef min\n#undef max' external/glm/glm/gtx/component_wise.inl
-
Clone the latest K2APP and setup shortcuts to external deps:
git clone https://github.com/KinectToVR/k2vr-application external/KTVR
New-Item -ItemType Junction -Path external/KTVR/external/openvr -Target external/openvr
New-Item -ItemType Junction -Path external/KTVR/external/eigen -Target external/eigen
New-Item -ItemType Junction -Path external/KTVR/external/glm -Target external/glm
-
Setup GLog
git clone https://github.com/google/glog.git external/glog
git reset --hard f8c8e99fdfb998c2ba96cfb470decccf418f0b30
cd external/glog
mkdir vcbuild; cd vcbuild
cmake -DBUILD_SHARED_LIBS=ON ..
msbuild glog.vcxproj "/p:Configuration=Release;Platform=x64
WindowsTargetPlatformVersion=10.0"
-
Setup GFlags
git clone https://github.com/gflags/gflags.git external/gflags
git reset --hard 827c769e5fc98e0f2a34c47cef953cc6328abced
cd external/gflags
mkdir vcbuild; cd vcbuild
cmake -DBUILD_SHARED_LIBS=ON ..
msbuild gflags.vcxproj "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"
-
Setup SFGUI
git clone https://github.com/KimihikoAkayasaki/SFGUI external/SFGUI
cd external/SFGUI
mkdir build; cd build
cmake "-DBUILD_SHARED_LIBS=ON [YOUR VCPKG TOOLCHAIN COMMAND HERE]" ..
msbuild SFGUI.vcxproj "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"
-
Build the K2API & K2APP's OpenVR driver:
msbuild "/t:KinectToVR_API" "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"
msbuild "/t:Driver_KinectToVR" "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"
-
Build the K2EX:
msbuild "/p:Configuration=Release;Platform=x64;WindowsTargetPlatformVersion=10.0"
All needed dlls are automatically copied to the output folder.
Please note that everything from vcpkg is being linked dynamically,
so to avoid errors with the driver, if you've added any additional libraries,
build it alone and copy to the desired folder, including all present dlls inside the output folder.
For now, the folder structure is generated and dlls are copied automatically.
You will find the built driver in external/KTVR/x64/$(Configuration)/driver/
and the built K2EX in x64/$(Configuration)
. (Release
configuration should be used, though)