Components with an absolute attachment to a MotionController get a late transform update

Reproduction Steps

  1. Create a new empty Blueprint Project
  2. Create a new Pawn class
  3. Set Player 0 to auto possess that Pawn class
  4. add a MotionControllerComponent and attach a Cube to that MotionControllerComponent
  5. In the Cube’s Details, set the transformation parameter to type absolute instead of relative (Absolute Location instead of Relative Location etc.)
  6. place the Pawn class in the level and play in VR

Result: The cube moves back and forth, as you move your motion controller

Expected: The cube does not move at all

Possible Fix

add the following line of code at the beginning of UMotionControllerComponent::FViewExtension::GatherLateUpdatePrimitives

if (Component->bAbsoluteLocation && Component->bAbsoluteRotation) { return; }

Unfortunately this would not fix the problem in a case, where the component’s location is absolute, but the rotation is not or vice versa.

Workaround

Currently the only workaround is to detach any Component, that would be attached absolute to a MotionController.

Hey -

If you select the Motion Controller component there is a checkbox for “Disable Low Latency Update”. Its tooltip states “if false, render transforms within the motion controller hierarchy will be updated a second time immediately before rendering.” This sounds to me like the behavior you’re seeing is expected. If you want to keep the current hierarchy setup, enabling this checkbox will prevent the cube mesh from moving during VR.

Cheers

I am still seeing this issue in ue4 15.1, are they ever going to fix this or publish a work around? I am working on my thesis where I am using Vive trackers to track both real musical instruments and a Perception Neuron motion capture suit. I am using one Vive Tracker on the keyboard to establish the initial location, and adding then I am adding a UI button to update the position when needed due to the fact that nothing I do will allow me to track it continuously without jitters. This really isnt a problem for the keyboard, but it is for establishing my tracked characters position. I can’t even attach a static mesh to the motion controller without seeing this issue. I have tried disabling low latency update, it still suffers form this issue. I don’t want to have to move my project back to Unity this far into the game, and I would much rather use UE4 and I desperately need a solution to this issue. Any help would be greatly appreciated

Hey MusicHubVR-

I tried the steps mentioned in his original post again in 4.15.2. With a mesh attached to the motion controller component in my blueprint, when I enabled the checkbox for Disable Low Latency Update the mesh did not move when using the motion controller. If enabling this setting still causes the mesh to move when moving the motion controller for you, could you provide the full setup steps or a sample project demonstrating the behavior you’re seeing?