Announcement

Collapse
No announcement yet.

Check if motion controllers are tracked not working on Windows MR?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

    Check if motion controllers are tracked not working on Windows MR?

    This is the code I used for checking if the Vive controllers were powered on (or tracking):

    Click image for larger version

Name:	Capture.PNG
Views:	1
Size:	103.8 KB
ID:	1646668

    But even when my Windows MR controllers are powered off they appear in my game world, which means that they're being reported as tracked?

    #2
    Nobody is developing for WindowsMR directly, I guess?

    I wonder if OpenXR has a generalized solution for this... or if it simply is Microsoft that ignores some protocol on their side.

    Comment


      #3
      Apparently, the tracking cameras on a WindowsMR HMD can also fail silently, and when that happens, you only get the gyro (3DOF), but no height information and in the Mixed Reality Portal, they then lock the height to how tall they think you are, but in Unreal, the HMD ends up in the floor.

      Is there also no built-in way of detecting that in Unreal?

      Do I really have to set a repeating timer and compare transforms manually?

      EDIT: Hello... and this seems to be exclusively for WindowsMR and the HMD (exactly what my last post was about), although it doesn't seem to differentiate between 3DOF and full tracking:

      Click image for larger version  Name:	Capture.PNG Views:	1 Size:	22.0 KB ID:	1656139

      But still no solution for controllers?
      Last edited by roberteker; 08-23-2019, 05:23 AM.

      Comment


        #4
        Not a perfect solution, but I simply check if location and rotation (for components - relative) are exactly equal to zero.
        Marketplace: Vive Mocap Kit / Fingers Solver / VR IK Body Solver / Subtitles to LipSync / Dialogue System with Character Animation
        And random stuff at Youtube

        Comment


          #5
          We were missing some plumbing to the proper BP functions. This fix allows you to use IsTracked and HasValidTrackingPosition:
          https://github.com/fieldsJacksonG/Un...07b7bd96396e69

          Comment


            #6
            Originally posted by jacksonf View Post
            We were missing some plumbing to the proper BP functions. This fix allows you to use IsTracked and HasValidTrackingPosition:
            https://github.com/fieldsJacksonG/Un...07b7bd96396e69
            Thank you!

            Does it also distinguish between camera tracking and gyro-only tracking, or do we have to implement that ourselves?

            (Now that I think about it, the above question goes for both the HMD and controllers, as they both are able to lose camera tracking while still having other features active...)
            Last edited by roberteker; 08-26-2019, 04:21 AM.

            Comment


              #7
              If IsTrackingAvailable(), you will have at least 3-dof tracking, if HasValidTrackingPosition() you will have 6-dof

              So:
              if (IsTrackingAvailable() && !HasValidTrackingPosition()) // 3-dof
              if (!IsTrackingAvailable()) // All tracking data is unavailable

              I'll need to take another look at the controllers - IsTracked will be true for 6-dof, we may need to add a new BP function for controller 3-dof

              Comment

              Working...
              X