vrchat-community / osc

Files and Info on using OSC to communicate with VRChat
MIT License
234 stars 5 forks source link

Native support for bHaptics and DIY haptics #158

Open sacred0 opened 9 months ago

sacred0 commented 9 months ago

What's the idea? A solution, either as a part of the Avatar descriptor or as custom components, to allow for OSC (or direct) output to haptics devices. This could be accomplished in multiple ways, such as "haptic contacts", which wouldn't count towards the performance rank due to only being local. They could be set up similarly to the current way contacts are set up in the avatar descriptor, or as components that are manually placed. The components could either be spheres/capsules like the current contacts, or "collision meshes" that can be formed to the body shape and would map to a configured set of haptic nodes.

Alternatively, a system similar to the existing controller haptics could be used, where collision with the avatar mesh itself could be used for output. I'm not too sure how this could be easily mapped to haptics gear, but I'm sure there's a way.

Is there another way? As a stop-gap solution, making Local Only contacts not count towards the performance rank would mean that the current systems would still remain functional, and fix the issue of being forced into Very Poor.

Additional context Currently, a ridiculous amount of contacts is needed for adding haptics support, which immediately drives the avatar into Very Poor with no other good alternative. Optimisation is very important to me when I work on avatars, and not being able to have a better performance rank because of this is quite demoralizing. The current systems also only provide binary interaction, meaning there is no difference between a light touch and getting punched. This could in theory be improved using proximity contacts and more advanced software, but this currently doesn't exist.