oculus-samples / Unity-Movement

Body, Eye and Face Tracking code sample.
Other
270 stars 45 forks source link

Clean Sample Scene / Micro Shuttering when I move left and right + hard shutteringevery few seconds with Refresh Rate 90hz #79

Closed MonologicGames closed 1 week ago

MonologicGames commented 3 months ago

Hello,

In a clean sample scene, unfortunately, on a build for the Quest 3, when I move left and right, both my mirrored character and I experience shuttering visible in the goggles, which makes it uncomfortable.

MetaMovement 5.1.0 SDK 66.0.0

72FPS - Micro shuttering stable visible in headset. 90FPS - Micro shuttering stable visible in headset + hard shuttering every few seconds.

I have tested many settings but unfortunately without success. Please analyze the problem, because we are in the final stretch and we cannot release the game with such an issue.

please provide time/timestamp settings XR settings OVRCameraRig settings

Because maybe the problem lies on their side. If not, it seems to me that something with the scripts is desynchronized relative to the camera update. Maybe the scripts are executing too early or too late. Thank you in advance for the tips!

https://github.com/oculus-samples/Unity-Movement/assets/58339467/2465aed3-dd28-4925-9133-b905db8d05b2

https://github.com/oculus-samples/Unity-Movement/assets/58339467/6c9c3f00-7c42-4d2b-86ca-1d0ba1b5485e

image

image

Thanks in advance for help, Damian.

andkim-meta commented 3 months ago

Hello, when using OVRCustomSkeleton, it calls FixedUpdate() in addition to Update() which has a different update rate that could result in minor stutter at 72 FPS. This problem is made worse as you increase in frame rate (e.g. 90, 120). We suggest you apply the 1-click for Movement Samples->Animation Retargeting (Full Body Constraints) to your character instead of the default Oculus format. This will use the retargeting layer script and shift the processing to the frame update logic which is consistent with the display rate. Please let us know if this resolves your issue.

MonologicGames commented 3 months ago

Thank you for the response. Ultimately, I would like to use OVRCustomSkeleton because I also use TwistDistributionConstraint, and it requires it to function. Is there any way to force OVRCustomSkeleton's fixedUpdate to work at 1/72 or 1/90?

MonologicGames commented 3 months ago

Update: I just tested Movement Samples -> Animation Retargeting (Full Body Constraints). Unfortunately, the problem is identical to the default scene with OVRCustomSkeleton.

andkim-meta commented 2 months ago

The higher frequency hand tracking can adversely affect the body tracking stuttering. Unless you require it for your application, we recommend setting to LOW. This is a known problem and we are working to improve it. This stuttering can also be improved by adding interpolation logic.

MonologicGames commented 2 months ago

We dont use hand tracking for now at all. We must think to add interpolation logic then :(