Problems trying to access hand pinch and aim transforms using input actions

Give us as much detail as possible regarding the issue you're experiencing:

I am trying to use tracked hand positions to drive my XRi toolkit interactors, as per other platforms. I set up the following test -

  • I added four cubes to the 'Hands' test scene in the latest Magic Leap samples project, and added a 'Tracked Pose Driver (Input System)' component to each. I wanted one each to track the left and right hands' pinch and aim transforms, which on other platforms are used for aiming and grabbing.
  • Since the 'Tracked Pose Driver' component expects separate position and rotation inputs, but the ML pose and pinch actions in 'MagicLeapInput.inputactions' are configured as 'pose' type, I added separate position and rotation actions to the left and right hand pinch and aim actions, as per the image -
  • Then I assigned the new input actions to each cube's Tracked Pose Driver, as per the image (right aim transform shown only) -

After deploying and running the app on device, I expect to see coloured cubes tracking the pinch and aim transforms of each hand. Instead, I can see the cubes tracking a maximum of one hand, with only the pinch transform tracking position and rotation, and the aim transform only tracking position. I also see a lot of errors in the log, and after a few seconds the cubes stop tracking altogether. It is unclear to me what is happening but it's not what I am expecting.

Unity Editor version: 2022.3.30f1
ML2 OS version: 1.7.0
Unity SDK version: 0.22.0
Host OS: (Windows/MacOS) MacOS

Sorry to hear that you are running into that issue. You may want to reference our XRI Hand Interaction guide : XRI Hand Interaction Demo | MagicLeap Developer Documentation

The guide walks you through setting up the XRI Hands Interaction Demo for Magic Leap 2. This demo uses both the pointer position/rotation and pinch position rotation for its interaction logic.


Based off of your description, I recommend verifying that the input actions are pointing to the following paths and that the assets was saved.

Left:

  • AimPosition:<HandInteraction>{LeftHand}/pointerPosition
  • AimRotation:<HandInteraction>{LeftHand}/pointerRotation
  • Pinch Position: <XRHandDevice>{LeftHand}/pinchPosition or <HandInteraction>{LeftHand}/pinchPose/position

Right

  • AimPosition:<HandInteraction>{RightHand}/pointerPosition
  • AimRotation:<HandInteraction>{RightHand}/pointerRotation
  • Pinch Position: <XRHandDevice>{RightHand}/pinchPosition or <HandInteraction>{RightHand}/pinchPose/position

Thanks - I was able to get the inputs working using the input actions you specified. I was able to get hand interactions working using XRi Toolkit 3.0.3, including the 'NearFar' interactor.