Forum Discussion

🚨 This forum is archived and read-only. To submit a forum post, please visit our new Developer Forum. 🚨
OrbitalZones's avatar
OrbitalZones
Explorer
5 months ago
Solved

custom hand mesh in Interaction SDK

I followed the instructions about how to add custom hand meshes within the Interaction SDK. So i tried it with the Unreal XR hand meshes, since I have many grab animations and other hand meshes that use its skeleton.

Hand and finger tracking is working fine, but there is a strange distortion with the hand mesh. It seem to be caused by skin weighting, but I couldn't find any issue so far. In addition, the Unreal XR hand has the pose of the Oculus hand.

Here is the my modified left UnrealXR hand, with the renamed bones and the bones added for finger tips, according to the documentation.

If anyone has an idea what is causing that issue or has a solution, please let me know.I've been trying for days to use the UnrealXR hand meshes with finger tracking and I'm about to go crazy.

  • Actually I'm not so sure anymore whether this is a hack or rather a workaround for missing metacarpal joints in the Oculus ISDK hand skeleton. The screenshot of the default Oculus XR left hand for ISDK, clearly shows no metacarpal bones for the ring and middle fingers. Or these joints have the same location and rotation as the root or the wrist bone.

    According to the guide about the requirements of custom hand meshes you would need an identical skeleton, but this is not quite correct. You need a skeleton that must have all the bone names listed in the mentioned guide. These are case sensitive, if you made a typo or a bone name is missing, your custom mesh will simply not be rendered at runtime. Apart from that, the skeleton can also have additional joints.

    But back to my 'solution'. I just renamed the actual metacarpal joints of the MannequinXR meshes and added additional dummy joints for them, by using the old names. So the skeleton for the left hand is looking like blelow.

    Metacarpal joints for middle and ring fingers have been renamed and replaced with new bones without skin weighting.

    This only applies to hand skeletons that use the Interaction SDK and only to the MannequinXR meshes, as the joint orientations of the ISDK hand skeleton and Mannequin XR hands are identical.

    I am currently trying to get another skeleton running with ISDK, but struggle with different bone orientations. This is also an issue with the 'Oculus XR Hand Component'.  It's nice to have a list for the bone mappings, but it's useless if you have a skeleton with bone orientations that are different than to the OpenXR standard.

    If you have any questions, objections, or suggestions for improvement, please contact me.

3 Replies

Replies have been turned off for this discussion
    • Anonymous's avatar
      Anonymous

      Would you mind sharing the hack with us so other people can learn from your solution?

      • OrbitalZones's avatar
        OrbitalZones
        Explorer

        Actually I'm not so sure anymore whether this is a hack or rather a workaround for missing metacarpal joints in the Oculus ISDK hand skeleton. The screenshot of the default Oculus XR left hand for ISDK, clearly shows no metacarpal bones for the ring and middle fingers. Or these joints have the same location and rotation as the root or the wrist bone.

        According to the guide about the requirements of custom hand meshes you would need an identical skeleton, but this is not quite correct. You need a skeleton that must have all the bone names listed in the mentioned guide. These are case sensitive, if you made a typo or a bone name is missing, your custom mesh will simply not be rendered at runtime. Apart from that, the skeleton can also have additional joints.

        But back to my 'solution'. I just renamed the actual metacarpal joints of the MannequinXR meshes and added additional dummy joints for them, by using the old names. So the skeleton for the left hand is looking like blelow.

        Metacarpal joints for middle and ring fingers have been renamed and replaced with new bones without skin weighting.

        This only applies to hand skeletons that use the Interaction SDK and only to the MannequinXR meshes, as the joint orientations of the ISDK hand skeleton and Mannequin XR hands are identical.

        I am currently trying to get another skeleton running with ISDK, but struggle with different bone orientations. This is also an issue with the 'Oculus XR Hand Component'.  It's nice to have a list for the bone mappings, but it's useless if you have a skeleton with bone orientations that are different than to the OpenXR standard.

        If you have any questions, objections, or suggestions for improvement, please contact me.