(repost kinda) How would I make a roll mechanic?

I want to make a roll mechanic. If you don’t know what I mean, I’ll explain it with words before I show a video example. When I say “roll” I want to turn temporarily turn the character into a physics ball either by clicking a tool or with the press of a button. This will allow the player to roll down a slope the same way an unanchored ball in roblox would. After a short moment or after the button has been pressed again, the player would return back to normal.

If my explanation wasn’t enough, watch this video

I’m not really looking for an answer on how to move the ball while you’re in ball form although that would be a nice bonus answer. I just want to know how to turn the player into a physics ball and turn them back to normal after a short moment or after a button press.

I’m not asking anyone to make the script for me, I just want to know how I can make it (what would I need to research, tutorial videos, where I would put the script, ect)

I would try simply making an actual ball part, making the players character parts massless and cancollide off, and then simply welding the players hrp to the center of the ball. Roblox physics will handle the ball roll itself.

EgoMoose has a great open source custom character controller that features a physics ball for a slide mechanic. Check it out here [Release] Platformer character controller