Hey!
I’m diving deep into VR hand tracking with UE 5.3 + MetaXR with Quest 2/3 and Pro, and I need your wisdom.
Looking for any insights into creating/tweaking tracked hands interactions for objects like levers, switches, or anything grabbable would be fantastic. I’m thinking about the nuances—how does the hand smoothly grasp a cylindrical handle versus a flat surface?
Any advice on ensuring objects respond realistically to a throw would be gold aswell!
I had already been able to have a HandTracking wioth grabs that was working, fairly well.
Still it wasn’t enough.
I stepped back adn was able to grab the logic of the video you sent me, mix up with my implementation and ended up with a very robust Grab System that works with both ahnd tracking and controllers in the same project.
I use the default controller setup, but I also integrate hand tracking into my system. When hand tracking is detected, it triggers the creation of independent hand blueprints, each equipped with hand tracking logic. Conversely, when controllers are activated, the hands spawned for hand tracking are despawned, and the original Unreal controller hands become visible.
To achieve this, I follow a setup similar to what Just2Devs demonstrates in this video: Link to Video. Specifically, I implement a method for detecting the distance between fingers. When the fingers are within a certain range, it indicates a grabbing action.
The detection mechanism closely resembles the original VRTemplate. In the VRPawn, there’s a “getgrabcomponent” function that generates an overlap. Any blueprint with a GrabComponent detected in this overlap is considered grabbed.
Essentially, my approach involves incorporating hand tracking and then leveraging the straightforward grabbing functions from the VR Template. These functions provide a solid starting point and work effectively.
Depending on your specific needs, you might need to duplicate or create new functions similar to “getgrabcomponent” for particular interactions. In my experience, having both hands for hand tracking on separate independent blueprints, each with its functions for grab detection, finger distance, and other necessary logics, yields better results.
Enjoy implementing and customizing the system to suit your requirements!