cancel
Showing results for 
Search instead for 
Did you mean: 

Oculus Touch has Capacitive Touch

Slayemin
Level 5
Wow, I'm a noob. I just discovered that Oculus Touch controllers have capacitive touch on most of the buttons... So *thats* how "finger tracking" works. I'm using UE4, so you Unity devs may have slightly different results. But here's my notes on how the mappings work:

We can take advantage of the capacitive touch on the oculus touch controllers.

capacitive touch available on 4 buttons, but not side button

Trigger Cap: 1 touching, 0 = not touching
X Cap: 1 touching, 0 = not touching
Y Cap: 1 touching, 0 = not touching
Thumbstick Cap: 1 touching, 0 = not touching

ThumbUp Cap: 1 = !ThumbStick && !X Cap && !Y Cap
Pointing Cap: 1 = !Trigger Cap

Grip 1 is the side button on OT:
Axis ranges from 0 -> 1.0
when Axis hits 0.8, the "pressed" event is triggered. This is defined as TriggerThreshold in unreal engine specific API code.

Usage:
If you're using a skeletal mesh to represent your hands, you probably won't want to directly use the capacitive touch values for your bone alpha blend weights. Otherwise, you'll get popping. Instead, you'll probably want to add/subtract from an external alpha value based on the capacitive touch values, so finger movements blend smoothly over time. You only get pointer finger and thumb data, so you can do "thumbs up" and "point at X" types of hand interactions in addition to the included button inputs.
4 REPLIES 4

JulianB
Level 4
They do and it's pretty cool. I think Cyber mentioned somewhere that they could potentially output a float value for proximity also, although they require a decent usage case.
-j www.julianbutler.com Love is a snowmobile racing across the tundra and then suddenly it flips over, pinning you underneath. At night, the ice weasels come.

Slayemin
Level 5

JulianB said:

They do and it's pretty cool. I think Cyber mentioned somewhere that they could potentially output a float value for proximity also, although they require a decent usage case.


Hmm, that's a bit backwards. Give us the tools, we'll figure out how to use them. In my case, I'd at least use it as a way to better figure out the finger position and finger tracking would be more accurate. That would create a teensy bit more immersion, and that's always great for VR.

JulianB
Level 4

Slayemin said:


JulianB said:

They do and it's pretty cool. I think Cyber mentioned somewhere that they could potentially output a float value for proximity also, although they require a decent usage case.


Hmm, that's a bit backwards. Give us the tools, we'll figure out how to use them. In my case, I'd at least use it as a way to better figure out the finger position and finger tracking would be more accurate. That would create a teensy bit more immersion, and that's always great for VR.


I feel this way also however, I can imagine maybe the raw float data is not consistent as the capacitive capability may vary between individuals? For example wearing gloves or having different skin [callouses] impacts capacitive systems like cellphone screen inputs differently. But returning a 0 or a 1 over a certain threshold is more of a sure thing and therefore more reliably used by devs. Not 100% sure.
-j www.julianbutler.com Love is a snowmobile racing across the tundra and then suddenly it flips over, pinning you underneath. At night, the ice weasels come.

Slayemin
Level 5
Alright! I got a quick demo showcasing my touch controllers with capacitive touch and a few different hand gestures!

https://youtu.be/vEtVgEOZ-K4