Google VR Motion Controller (Daydream) attached to Pawn Root Bounces Around Screen Once in Awhile

While playing the Google VR Motion Controller (Daydream) attached to my pawn’s root will sometimes bounce around, or flicker or flutter, on the wrong place of the screen once in awhile. It will sort flash to the upper left a half or quarter of a second and then move back to where it should be. It think it happens randomly, but it could also just be based on the positioning of the actual controller. I don’t really know. Curious if anyone else experienced this before?

I have not noticed that before - which version of the engine are you using?

I have not noticed that before - which version of the engine are you using?
[/QUOTE]

Hi .

It’s happening in 4.16 and 4.17,

It’s as if for a quarter or half a second it momentarily gets the wrong values.

So I managed to duplicate my issue using first person template in 4.17.

I am simply using the first person blueprint and attaching the googlevrmotioncontroller component to capsule component (or also the mesh), and if I sort of wave the real controller around in space it will eventually produce a strange effect where in the app the mesh of the controller momentarily appears near the upper left hand corner of the screen for a split second.

Am I doing it wrong?

quick update: I tested this setup in 4.15 for about 10 to 15 minutes and I didn’t notice the problem. Within that same period of time I would notice the issue in 4.16 and 4.17 about 2 or 3 times every minute. I suspect the issue does not occur in 4.15, but does occur in 4.16 and 4.17

These are the versions I was using in my 4.15 testing:

Google VR Motion Controller Version 1.2 (GVR NDK v1.10.0)

Version: 4.15.1-3348071+++UE4+Release-4.15

Hey …and anyone else who might be interested…there was a commit yesterday which I think solved my problem I only tested for 10 to 15 minutes but I didn’t notice the visual artifact whereas before I would see it 30 or 40 times within that time frame. Hopefully they will include this commit with 4.17…so others can use the new audio mixer and the google vr motion controller component. It will make things look and feel slick. Easy to implement, etc.

https://github.com/googlevr-unreal/UnrealEngine/commit/6ffbe30b34dffe410a1e2f0dbca1a6c5ca06fa86

Yeah would be great if epic could already include it to the 4.17 final

I received a response from one of the developers of the Google VR Plugins. They won’t be adding the fix into 4.17 I am told. However you can still change the code manually.

I had the chance today to test it out thoroughly and I can confirm that their fix works.

In the GoogleVRController.cpp file I added these lines at line 718.

// Opt-out the render thread late update for GoogleVR Controller for now.
// We can’t do late update cleanly because updating controller state will also affect the controller
// button status.
if (IsInRenderingThread())
{
return false;

}

I did this using the 4.17 Preview 3 repo found on github

So, now I have the new audio mixer and a non-glitchy motion controller.


Some more context:

bool FGoogleVRController::GetControllerOrientationAndPosition(const int32 ControllerIndex, const EControllerHand DeviceHand, FRotator& OutOrientation, FVector& OutPosition, float WorldToMetersScale) const
{

// Opt-out the render thread late update for GoogleVR Controller for now.
// We can't do late update cleanly because updating controller state will also affect the controller		
// button status.			
if (IsInRenderingThread())
{
	return false;

}


if(IsAvailable())
{
	OutPosition = FVector::ZeroVector;
	OutOrientation = FRotator::ZeroRotator;