Airborne movement speed acceleratio is tied to framerate
IgbarVonSquid
[Tested on build 1078]
When the player is airborne, the acceleration to their movement speed is tied to framerate.
To break this down: 'Movement speed' is the values that you set in the VRCWorld prefab, so strafeSpeed runSpeed and walkSpeed. 'Acceleration' is the time it takes to reach that speed, specifically when not grounded. Note that when you are grounded there is no acceleration; the transition from a standstill to runSpeed is always instant.
So for example: If you're airborne but not moving laterally, at 90 FPS it takes you about 0.21 seconds to reach your runSpeed. It doesn't matter how big or small, this acceleration is constant with the framerate. So at lower framerates the acceleration takes longer. Here are some benchmarks (approximate):
144 FPS = 0.21 sec
90 FPS = 0.21 sec
72 FPS = 0.26 sec
45 FPS = 0.42 sec
24 FPS = 0.79 sec
11 FPS = 1.73 sec
Video of the benchmarking:
What's going on in this video: The player is floating 1 meter off the ground with a gravity strength of 1e-06 (near 0) which is why the Velocity is going up even though there's no visible movement. The 'Run Speed' is the player's set runSpeed, and 'Time to reach' is how long it took for the player's velocity to reach the Run Speed while running, on desktop, in seconds, starting from 0.01 velocity. After the timer stops I respawn myself and reset the timer then do it again. Note that the time to reach is always slightly different because of the gravity adding a little bit to the velocity. Also not shown in the video but for some reason odd numbers would take ever so slightly longer to reach.
If you want to test for yourself here's my demug world (originally debug but vrchat corrected it):
The world lets you change the runSpeed and enable gravity. You can reset yourself instantly by pressing 'E' on your keyboard.
I understand that this is a REALLY minor issue for the vast majority of worlds, but this is crippling to any kind of momentum based games that require precision strafing. For example: the surf prefab, that I am trying to make, and have hit a brick wall because this issue is incredibly difficult to work-around.
So if you could fix it I would be REALLY REALLY REALLY thankful!!
Log In
Kaugumme
this is just painful
Faxmashine
I've also had issues with ground friction being affected by framerate, might be related..?
Observer․
This has to be a joke. They can't have gone and messed up movement again. If it is true then this may be why the new movement feels so bad in worlds that require precision movement.
IgbarVonSquid I would love to know if you get the same results with legacy movement enabled. Just curious to know if it maybe changes anything.
IgbarVonSquid
Observer․: As far as I can tell this issue has always existed, it's just gone unnoticed. I just tested with an old SDK2 world and it has the same issue. Though funnily enough if you stutter-step then the acceleration is instant? But yeah outside of stutter-stepping you still get slower acceleration at lower framerates.
Observer․
IgbarVonSquid: Okay so this very well may be an existing issue with the movement. Which means they might have checked and fixed the rotation issue but not have looked at the other movement which I find hard to believe. I wouldnt be surprised if it was a physics issue but that is quite a large range in results you have there indicating that something does seem to be frame dependent.
I'm very much hoping once this is fixed it will resolve my hatred for the jumping on the new locomotion. (at least enough to give some worlds a try again)
Franada
That explains why I have trouble to get my landing animation to play at low fps since I wasn't at the minimum velocity set in the transition.