ValveSoftware / openvr

OpenVR SDK
http://steamvr.com
BSD 3-Clause "New" or "Revised" License
6.06k stars 1.27k forks source link

Sample Skeletal API Driver #1092

Open BenWoodford opened 5 years ago

BenWoodford commented 5 years ago

Something as simple as an "idle animation" driver that provides slowly moving data of an idle hand moving fingers to a fist and back would be more than sufficient, especially if it had splay data too. Or a driver that uses Leap Motion inputs and translates them to the skeletal API.

We can't encourage hardware manufacturers to build drivers for this if they have nothing to use as point of reference after all

Lhun commented 5 years ago

https://github.com/spayne/soft_knuckles Is something I came across a while back, I know it's not exactly what you're looking for but it may help.

spayne commented 5 years ago

https://github.com/spayne/soft_knuckles Is something I came across a while back, I know it's not exactly what you're looking for but it may help.

I wrote that soft_knuckles last year. I just now updated it to change the hand skeletons to pop between open hand and fist. This video clip shows telnet which triggers the fake controller on the left and then in the background you can see the hand popping from closed to open. https://www.youtube.com/watch?v=1ukGHi0VkGs&feature=youtu.be

This is only a low level API demonstration though. It just calls IVRDriverInput::UpdateSkeletonComponent, alternating between two arrays of bone transforms).https://github.com/spayne/soft_knuckles/blob/06e12804b7bc83700ba3e5e312754fad32582afa/soft_knuckles_device.cpp#L291

Like @Lhun said - it's not exactly what you are looking for...

The harder part. To do the hand skeleton aspect of a controller driver whether or not it is a real or example, one would need to consider the following:

SDraw commented 5 years ago

Indeed. This could help a lot, especially with initial transformations for right hand that has disabled mirroring in applications by default. P.s. Figured it out, but it can be a total nightmare for a lot of new developers.