InputRecorder & OpenXR

I am trying to use the InputRecorder sample to save a replay VR interactions for testing purposes.

If I make a recording and immediately replay it, it works exactly as expected.
The issue I’m hitting is that the controllers do not animate after either:

  • The controllers have gone to sleep due to being put down
  • Or enter play mode, load a saved recording from file and replay the recording

I’m currently testing in editor using a Quest 2 with a Link cable in editor using the Controllers sample that comes with the OpenXR Plugin package.

Unity and package versions:
Unity 2020.3.33f1
Input System - 1.3.0
OpenXR Plugin - 1.2.8
Oculus XR Plugin - 3.0.0-pre.2

Also
Unity 2021.3.2f1
Input System - 1.3.0
OpenXR Plugin - 1.4.2
Oculus XR plugin - 3.0.2

I’m open to other ideas for input recording and playback if this is just a know restriction of the input recorder.

Hi @DougLuminous ,

Thank you for bringing this to our attention. This definitely should not be the case. We will investigate on our end and try to reproduce it. What version of XR Interaction Toolkit are you using?

Hi Dave,

In the app we’re currently shipping we have version 1.0.0-pre.4, although in the sample project I am testing in does not have it at all.

We are currently using Unity 2020.3.33f1 for our production projects, so the fix there would be most helpful.

Thanks!

Hi again,

I’ve been continuing to look into this and have had a bit of a breakthrough.
I noticed that the controllers that are loaded from the input recorder script were missing the the Device Usage flag that tells it what hand it is for. Unlike the devices that are loaded when using the headset with device link.

So listening to InputSystem.onDeviceChange and if the created device name contains oculus touch I assign it a hand using InputSystem.SetDeviceUsage(device, “RightHand”);

this has the drawback of I don’t know witch hand is witch but it at least replays the controllers now!

Hopefully this will help you implement a better fix into the InputRecorder sample.

I’m running into the same issue using OpenXR, is there any progress ?
Unity 2022.1.5f1, XRIT 2.0.2

Hey @DougLuminous and @PatHightreeXVR ,
Sorry it took so long to get back to you, but we believe we have a workaround for this issue while waiting for a fix to land. Can you please let us know if these steps allow the recordings to animate correctly when the device goes to sleep:

  • Disable the Quest Device in the Input Debugger (Windows->Analysis->Input Debugger). It just needs to be disabled during playback as the physical device looks like it is interfering somehow.
  • Also verify that Replay on New Devices is checked in the Input Recorder Inspector Window.

I hope this helps with what you are experiencing.

I am having the same issues as stated above. I tried the two suggestions that you made - This works for the headset, the camera is animated correctly, but the controllers still do not animate.
Input System 1.3.0
Open XR 1.3.1
Untiy 2020.3.33

I would love any extra suggestions/updates, thank you.

Anyone found a fix for this issue? I’m testing with a XR device trying to record the Headset + controller position.
Record and replay works within the same play session. But if I stop the session and go to restart it via editor, it doesn’t work anymore. Suspect it’s something to do with instance ID? Any help is appreciated.

I’ve also tried turning on Replay on New Devices but it causes the headset to not replay but instead devices around it moving as if it did.