Greetings everyone!
I’ve run across an odd issue when using Rotation Rate Event node in blueprints(BP) or setting an axis mapping to Rotation Rate, in a deployed android app, on a Samsung S8. I do not remember this occurring on an IPhone 6s with engine version 4.8-10, but it has been about a year since.
The issue seems to be that the rotation rate regularly returns all 0’s every third of a second or so. The 0’ed rotation rate makes a rather noticeable hitching/stutter effect when the phone is rotated.
The first method I used to capture rotation rate was through axis mapping Turn to Rotation Rate in Project Settings -> Engine -> Input -> Axis Mappings.
The second method I used to capture rotation rate was through BPs. I made a simple BP addition to the FPS BP template. The BP flow follows like this:
[Event Rotation Rate:Axis Value] -> [Break Vector(Axis Value):X] -> [Add Controller Yaw Input(X)]
In both cases, the stutter in rotation rate was present. The stutter only occurred when the app was played on the S8. It did not occur when using a remote control app (Mustafa’s Remote Control) to relay motion data in an editor play window.
I noticed the issue might stem from motion data returning 0’s. After making a BP that captured the rotation rate data, split the vector, made checks to see if all three (x,y,and z) floats were equal to 0, and then printing the values out in different colors, an oddity appeared. I noticed that every third of a second or so, and for a period of about a third of a second, rotation rate would be all 0’s for all axes. Even when greatly moving the phone, all 0 vectors would occur very frequently when the app was played on my phone. In contrast, when having motion data relayed from my phone to an editor play window, the phone had to be placed on a table to yield only a few all 0 vectors.
Am I going about this wrong, or is this an engine/phone issue? I have not tried this in C++ yet or an older engine version.
Any help on the issue would be greatly appreciated, thank you!