Open shiftyscales opened 3 years ago
This isn't actually how they work, positioning of the component itself doesn't matter, their assigned references do. What they do is get all the bones of the given body part (e.g. spine bones in case of torso, or upper arm and forearm for arms) and then position the locations based on normalized positions along those.
The actual normalized positions also depend on the haptic device being used, to create the final mapping between where the device is on the body and where it maps on the avatar.
We can tweak the values a bit to be more accurate, but I'd need the following:
E.g. for the bHaptics arm, the points should be positioned near the end of the forearm towards the hand.
Interesting. In this case it was just using Index Controllers as the haptic device, and in how they respond to each limb- as mentioned, I had noticed that every one seemed to be positioned directly at the bone I can try to see if I notice this happening with any specific avatars, or more generally.
E.g. while I was testing it out as per #2952 I had noticed that on the user I was touching at the time, the vibrations would occur in a small range right at the wrist, elbow, and shoulder of the avatar rather than on the middle of the hand, forearm, and upper arm as I would have expected.
No other haptic devices were being used as I don't currently own any other haptic devices.
Is there anything in particular that needs to be done to enable the debug visuals if there isn't a haptic device connected for that body part? I'd noticed that when trying to visualize it by using the debug visuals none seemed to be generated despite there definitely still being haptic points placed directly on top of the bones the component was referencing.
If you go to the user's root and to Left/RightController, there's ControllerHapticPointMapper, which allows you to visualize the debug visuals.
I'm actually a bit confused, why are there two issues for this? This one and #2952 seem the same issue if both are concerning the controller haptic point.
I'm probably mis-using some terminology, #2952 is about the HapticPointSampler/where the user has to position their hand relative to a haptic collider to trigger the haptics.
This issue is because it was noticed that after finding out where the HapticPointSampler is placed by default, and accommodating for it, the haptic triggers/colliders on other user's avatars was discovered to also not be in the positioning expected.
(It's possible I'm also misunderstanding how the process works.) But I'm specifically referring to the default/auto-set-up haptic volumes you can trigger when you feel someone's avatar with your controllers.
Is your tweak request related to a problem? Please describe.
Presently, the HapticPointMapper components, e.g. TorsoHapticPointMapper, ArmHapticPointMapper, etc. are positioned right at the bones they reference, producing inaccurate/inconsistent results compared to what a user might expect, e.g. to touch one's forearm, they need to touch at the elbow, to touch one's hand, it needs to be at the wrist, etc.
Describe what would you like tweaked
If the HapticPointMapper components could place the haptic points at the mid point between the bone its referencing and the next bone down the hierarchy, it would produce considerably more accurate and intuitive results.
Describe alternatives you've considered
Users could take the time to map these points themselves- but the goal of this issue is to improve the baseline accuracy of haptics for avatar interactions.
Additional context
Observed by Shifty, Cataena#3067 and others alongside #2952.