Open fuag15 opened 4 years ago
Got a quick follow up to this from today. I realized I hadn't verified the return codes from SteamVR since initially setting things up. I added a function to log an error if the return code wasn't as expected and verified that EVRInputError_None was being returned by both pose updates and skeletal registration.
However! In confirming it i did notice that blowing away my controller bindings and cache that when initially setting the skeletal components in bindings for steam home I get this error in the logs
Item /user/hand/right/input/skeleton/right in "skeleton" array missing path invalid device path for skeleton output
Item /user/hand/left/input/skeleton/left in "skeleton" array missing path invalid device path for skeleton output
However, on restarting steam and messing with the bindings again it no longer appears. and afaik I'm doing all registration according to existing samples in the indexcontroller driver settings / the documentation
I made a debug branch debug/skeletal_data_debug_options. If you have the beta versions of leap motion Orion this branch is setup to repro things without a Northstar or structure sensor. I hope this helps. Please let me know if I can help in another way, the skeletal issue is a blocker right now and I think all the leads available have been chased down.
Ha! Finally got it. A driver that submits skeletal pose data must supply at least one frame of data before it will be considered to be valid, if it does not do this before the application running initially requests skeletal data, it throws an error that it doesn't seem like it recovers from. Not sure if this is a bug or not. I assumed it would use some default skeletal transform relative to the controller if this was requested before a hand had been seen. Down to debugging the reletave skeletal positions. Not closing as I'm unsure if this behavior is a bug or intended. Either way it would be good to call out in the wiki.
I'm working on a Project Northstar driver for OpenVR and am having trouble verifying skeletal data. Afaik I've set up the bindings correctly and am submitting the right pose. I've set up the left and right skeleton to be bound to the left and right skeleton, and left and right pose to be bound to the left and right pose for Steam Home yet the avatar representation options do not show glove hands as an option like they do for Index / touch controllers.
I'm not aware of any other way of verifying skeletal data is correct aside from using Steam Home and switching your representation to the glove. I'll do my best to link relevant config below.
Driver input profile
Driver legacy input profile
Input registration in Driver
Input update in Driver
The rest of the positioning / input work as expected. I've verified I am sending the data in pose relative space and updating each frame with fresh data. I don't see any errors in the logs.