When using a ControllerManager with a GroundController, if the value of AccelerationTime is set to anything other than 0 (i.e. you aim to make the character/part have a slow or “heavy” acceleration), the resultant acceleration will not respect any value of Friction and FrictionWeight set, instead seemingly defaulting to a low value of both during the acceleration, resulting in sluggish and slippery movement if the user decides to move directionally as the character accelerates. The expected behaviour of Friction and FrictionWeight is observed after the character has accelerated fully to the value of BaseMoveSpeed.
Open the repro file. When opened, playtest and adjust Friction and FrictionWeight via the on-screen buttons. “Slippery” acceleration when turning should be visible when using both Friction & FrictionWeight = 1 and Friction = 2, FrictionWeight = 10.
This slippery acceleration should only be observed when both Friction and FrictionWeight values are low like when Friction and FrictionWeight are both set to 1 - this behaviour should not be seen when Friction and FrictionWeight are set to higher values, such as 2 and 10 respectively. When higher values are set, turning whilst still accelerating should be snappy and akin to the behaviour viewed when the character is moving at its maximum speed in this instance.
Hi there. I’ve been thinking about this ticket, and I have some questions that I’d like to discuss with you!
When using a ControllerManager with a GroundController, if the value of AccelerationTime is set to anything other than 0 (i.e. you aim to make the character/part have a slow or “heavy” acceleration), the resultant acceleration will not respect any value of Friction and FrictionWeight set, …
There might be a bug here that we need to address, but aside from that, I wanted out to address how the concept of acceleration time kind of “fights” with the concept of a friction. Say your humanoid is running on ice (very low friction), but acceleration time is set to be very small, i.e., the humanoid can reach its max speed very quickly. This situation is self-contradictory since running on ice should imply that it takes a longer time to reach max speed. In that situation, where you’re on ice with very low acceleration time, what would you expect to happen? Similarly, if you’re on concrete but with a very high acceleration time, what would you expect to happen?
When higher values are set, turning whilst still accelerating should be snappy and akin to the behaviour viewed when the character is moving at its maximum speed in this instance.
Turning itself is an acceleration since it’s a change in velocity (the direction component), so, with non-zero acceleration time, turning will feel sluggish since it must take an AccelerationTime amount of time to accelerate through the turn. Does this mean that you’d expect AccelerationTime to not affect the acceleration that the humanoid must undergo to go through a turn?