https://twitter.com/i/status/1481238826018537474
Hello, please Take a look at the clip i sent ^
I want to achieve that kind of movement system and i have no idea how. i believe its made by using physics but im awful when it comes to physics…
he made it by using this equation
Hey there, you probably won’t find anything exact but at the best something similar.
Here are some points I see from the clip
There is a custom state management system to add in dash and to also handle animations as well. walk → predash → dash → run → ground.
It also looks like it has momentum when turning which means it has some kind of acceleration and not default humanoid movement.
I’ll just post these resources of custom character movement as they have elements of the above points.
the bhopping one is interesting as it does use a form of SUVAT in the acceleration function uses the equation v = u + at or otherwise known as explicit euler integration,
function Accelerate(wishDir, wishSpeed, accel)
local currentspeed = playerVel:Dot(wishDir)
local addSpeed = wishSpeed - currentspeed
if addSpeed <= 0 then return end
-- at part of v = u + at, t is heartbeat wait, a is accel and wishspeed
local accelSpeed = accel * RunService.Heartbeat:Wait() * wishSpeed
if accelSpeed > addSpeed then
accelSpeed = addSpeed
end
-- v = u + at, accelspeed is calculated as at, u initial velocity is playerVel.X
local x = playerVel.X + accelSpeed * wishDir.X
local z = playerVel.Z + accelSpeed * wishDir.Z
playerVel = Vector3.new(x, 0, z)
end