Vive Mocap Kit - Support

Try using OpenVR Advanced settings, and use that to rotate the playspace in realtime!

You can change spawn location of the manual calibration actor (BP_CapturePawn blueprint, “StartManualCalibration” custom event).

Hi, Thank you for making a wonderful system! We have a question, is it possible to record the calibration data?

Hi ,

Awesome solution for VR and mocap! I have a question regarding the inverse kinematics though; I know that this is meant for mocap and VR, but I was wondering if it could possibly also be extended for use as a generic full-body IK solver as well? Such that, instead of using tracker transforms to drive the bone chains, one could generate an arbitrary transform as an end effector and the solver would try to reach it (similar to something like Ikinema RunTime). Is that possible and would it be difficult to implement in an already existing project?

Fingers Solver will be added to this plugin with 4.22 version.

Would it be possible to support finger tracking via SteamVR Skeletal Input? Would be immensely helpful for me!

No. But it’ll be possible to get input from Valve Knuckles with some manual setup, like in this video: https://www.youtube.com/watch?v=UCDDIto2xmA (it’s for another plugin, but for same Fingers Solver).

Ah alright, I got some VRFree gloves coming in, the Unreal SDK is not available yet but SteamVR Skeletal Input is, that’s why I ask. Once that becomes available I will then try and use that finger data instead. (Also gonna hack in Vive tracker for position instead of its dumb head mounted tracker)

If this gloves give relative rotation of fingers (not in world space, like Leap Motion), you could apply it to this fingers solver.

Running non-HMD map in 4.22 / Also, follow this steps to avoid swapping trackers and controllers

  1. Please download packaged version of Valve’s SteamVRInput plugin here
  2. Extract the archive to [Program Files/Epic Games/UE_4.22/Engine/Plugins/Marketplace] (or just Plugins, or Plugins/Runtime - doesn’t matter actually, I just keep all my custom plugins in the Marketplace folder).
  3. Download updated ViveMocap project here.

For ViveMocapGame project and custom projects, please enable SteamVRInput plugin in Edit->Plugins menu and restart the editor. Documentation for this plugin is here.

Tutorial for using sequence recorder?

With current SteamVR (1.5.6), USteamVRFunctionLibrary::GetHandPositionAndOrientation(…) function doesn’t work correctly. I updated the plugin to use IMotionController::GetControllerOrientationAndPosition instead.
(Note: USteamVRFunctionLibrary::GetTrackedDevicePositionAndOrientation works).

Updates for 4.22 and 4.21 are submitted.

Also, here is a project demonstrating fingers animation: https://drive.google.com/open?id=12P…pNuyjtni0JsLJK
I use Valve Index controllers, but it should work with other supported by SteamVR as well. This project requires Valve SteamVR Input for Unreal plugin (Markteplace, Free). Please don’t regenerate manifest and binding files and don’t modify input settings in this project.

I have gloves that should arrive any day now that use the SteamVR Input system, so theoretically they should work. But they use their own proprietary method of tracking, how easy is it to just ignore the tracking information of the gloves (the SteamVR devices) and use a tracker instead?

If you want to use Vive Trackers for capturing hands, open BP_CapturePawn blueprint (VMK/Blueprints), then in properties of the CaptureDevice component change “Motion Controllers Role” from “Hands Only” to “Any Role”. And don’t turn on controllers unless you want to use them to capture, for example, feet.

If you want to use third-party tracking system (for example, Optitrack) for everything instead of SteamVR, you’d need to add SceneComponents (for example, OptiTrack Rigid Body Components) for all tracked points and then in the BeginPlay event call CaptureDevice::InitializeInputFromComponents.

Thanks for the info! Is there a way to ignore certain SteamVR devices, like an extra tracker that I would have on my body, and not use that for the IK rig?

Also, is the menu binded to keys, or would I have to add binds myself?

It’s possible to exclude an active tracker from the body model, but in this case you woldn’t be able to capture its position to the dummy bone (i. e. CaptureDevice would fully ignore this tracker). Although, if you really need it, I could add this feature. It’s not a big problem.

What do you mean exactly?

Sorry for the late reply, I was out of town. I’ll just explain what I am trying to accomplish: I have finally received the VRFree gloves I kick started about half a year ago, and want to use the finger data on those gloves to drive the mannequins hands in real time for motion capture. There are two things I need to do to make it work. One: The tracking solution for the gloves position is an inside out camera that is attached to the headset, but it is not accurate and I want to replace it by just ignoring it and using a Vive tracker on my hand instead. Two: I need to use the finger data to actually drive the fingers of the mannequin. My idea to accomplish this, is to use the SteamVR plugin they developed for the new SteamVR Input System, to drive the hands, as you already made an update for the Knuckles, I believe it should work like that. However, from my preliminary tests, the gloves don’t seem to show up in the scene at all when I start the project. They also have a an Unreal SDK I can use, but I have failed to get project to even open. As to my question about binding keys to the menu- I won’t be holding controllers when I am using the gloves, so I can’t use the menu to go through the calibration process and start the recordings and whatnot, so I am asking if I can have those set to keybinds. I have tried to do it myself, but I am afraid most of these blueprints are way over my head. I am familiar enough with Unreal on the using it for level building and whatnot, but I have very limited scripting experience.

Ok, got it. It should work via the project from this post: https://forums.unrealengine.com/unreal-engine/marketplace/1377349-vive-mocap-kit-support/page16
Just download SteamVR Input plugin from the Marketplace before you open it.

If you can get access to fingers animation data (curls and splays) form you gloves directly, you wouldn’t need to stream this data through SteamVR.

As for input, yes, of course you can bind additional keys to control calibration from keyboard.

Yeah, that was the project I was using, but I just got it to work. I had to assign the skeletal poses in the SteamVR Input legacy thing. I got the hands to to work via Vive trackers, and the fingers to track via the gloves. However, there are a few issues. The thumb does not move correctly, and the fingers do not spread. This is most likely because when you implemented it with the the SteamVR Input plugin, the Knuckles don’t have finger spread and thumb tracking. Is there a way I can add this functionality with the SteamVR method, because I am not knowledgeable enough to assign finger information based on the SDK (also the SDK is broken for me right now).