Closed NoviaDroid closed 4 years ago
The hand ray pointer logic is entirely managed by the Oculus OS, and it’s designed to change modes as you use it sitting down, or standing.
Here’s a diagram of it working.
Unfortunately not much I can do improve this. However, it’s worth noting that having worked on custom hand rays in the past, it’s very difficult to do better than what the oculus ray provides in terms of stability and accuracy.
If you really wanted to better support pointing down, you could add a custom transformation offset to the spatial pointer in MRTK-Quest in the OculusHand class, but that’s not something I’m planning on officially supporting.
Actually - you said the ray disappears - that’s from the ray no longer aligning with your head gaze. It might be related the IsInPointingPose check. You may be able to increase the angle tolerance check, but this is the first I’ve heard of it being a problem.
Thanks for the replay.
I'll try to tweak angle tolerance to see if it can be better.
It indeed bother me for using hand tracking feature,personally I use controller mode 90% time during developing app (based on mrtk-quest),and only 10% time use hand tracking only for show off,less accuracy and less feedback makes hand tracking hard to use.
Hi,I followed your suggestion and made some hack to OculusQuestHand.cs to make life easier for me,here is my modification:
public override bool IsInPointingPose
{
get
{
//simply force return true to make hand ray always show ignore rotation(didn't consider teleport case but it is ok for me)
return true;
}
}
currentGripPose = jointPoses[TrackedHandJoint.Palm];
// let pointer rotation follow Palm rotation instead use oculus system hand ray rotation.(but it shakes a lot,maybe add some smooth damp will be better)
currentPointerPose.Position = currentGripPose.Position;
currentPointerPose.Rotation = currentGripPose.Rotation;
In case someone else has the same issue,here is the workaround solution to make hand ray behaves more like controller ray.
Its worth noting that if you enable pointing pose to always true, you'll run into issues with the ray during hand menus and teleport will be unusable.
Also, I highly recommend against setting the pointer pose to the grip position, as it is much less stable can can be difficult to aim in many cases.
Julia Schwarz from Microsoft spoke about this here:
Wrist based rays https://youtu.be/Wythtg38o0M?t=4236
Shoulder based rays https://youtu.be/Wythtg38o0M?t=4420
I did some more testing, and the only time you cannot point downwards is if you try to aim with your palm directly, which is not supported.
when lower my hand,the hand ray did not follow my hand direction,and disappeared instead.
Is it by design? Because it is very inconvenient to manipulate far objects below my hand