How do you make the sonic slope physics/360 Movement

Please stop letting me suffer being unable to find a tutorial or even some code but i would like some help on a HIGH importance Mechanic on making the Slope physics like doing a loop and such. someone already did this in just blueprints could someone please help me create this for my sonic game

When it comes down to math there’s many different ways to achieve the same result.

Could be as simple as disabling gravity, align character to hit surface normal then just move forward.

If any other sonics are taken as reference… what Bruno said could be correct.

Sonic adventure 2, for example, has triggers that disable gravity and make the character snap to the surface. They disable when the velocity goes below a certain treshold, which is why you can still fall from it, but it usually needs a full stop first.

Check Games Done Fast, DarkSpineSonic talks a lot about that.

P.S. as it shows… i like sonic

would you be able to show a example of this? i attempted this in the character component but gravity still exists for some reason

Edit: i’m guessing i will need to use a pawn and not the character BP?

2nd Edit: the player doesn’t rotate to the surface right, i have the gravity right, but the rotation wont work

Heres what i was able to do so far with a pawn

While a loop ended up like this

so i need help attempting to fix this

Hey** 10michael01 **are you still looking for an answer to this?

I was able to figure out how to get Sonic rolling downhills in Blueprints using the normal of the surface he’s on and the a (0,0,-1) vector for gravity.

  1. From the character Movement Component use the “Current Floor” reference/node.
  2. Use “Break FindFloorResult” and connect the “Hit Result” to a “Break Hit Result” node.
  3. From there, use the “vector+vector” node and subtract (0,0,-1) from the “ImpactNormal” result. This will give the direction of the slope of the hill
  4. Feed this into a “Launch Character” or “Add Movement Input” node or whatever you want to actually “push” the character in that direction

So in a nutshell, it’s basically just projecting the SurfaceNormal vector onto the surface itself (by adding (0,0,-1) to it). And that gives the direction of the slope everytime :wink:

I got some help from this post: Calculating floor angle, char-movement - UE4 AnswerHub

Conceptually, it’s basically, this:

And this:

Hopefully this visual helps. I’m away from my dev PC, otherwise I’d share the blueprint screenshot.

I did something similar on my 2D project but it does not work at an angle more than 90° for whatever reason, anyway If I can help I set my default movement mode to flying so my character is not affected by gravity, then I set my actor’s rotation to match the terrain’s orientation by using linetraces firing from his feet and using the impact normal and some vector calculations. And finally I have an “add force” node that adds a force in the down vector’s direction so my character sticks to the surface.

I would like to see a blueprint of the zero gravity style. Im trying to make a Sonic game myself.

Is this thread about gameplay mechanics like it was originally intended with Sonic Mars(cancelled Sega 32X Sonic game) also Sonic X-Treme was also another cancelled Sonic game planned for Sega Saturn? Well at least we have Sonic Lost World Nintendo already did it with Super Mario Galaxy series.

Reverse engineering of Sonic X-Treme Sega Saturn rom? I started to think about revival of cancelled Sonic game named Sonic Twist(that game would compete and be more equivalent to Super Mario 64(every copy is personalised which I guess it means the game was rushed up and not even finished according to that new creepypasta of Super Mario 64) in the mid and late 90’s even).