# How do you make the sonic slope physics/360 Movement

**URL:** <https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763>\
**Category:** Blueprint\
**Tags:** unreal-engine\
**Created:** [March 29, 2018, 6:34pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763 "2018-03-29T18:34:32Z")\
**Posts on this page:** 12\
**Page:** 1

<div class="post-metadata">

**Author:** ![MichaelTheAvali](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MichaelTheAvali](https://forums.unrealengine.com/u/MichaelTheAvali)\
**Post date:** [March 29, 2018, 6:34pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/1 "2018-03-29T18:34:32Z")

</div>

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 [https://youtube.com/watch?v=l7Z15SXjIqM](https://youtube.com/watch?v=l7Z15SXjIqM) could someone please help me create this for my sonic game

---

<div class="post-metadata">

**Author:** ![BrUnO\_XaVIeR](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/bruno_xavier/32/1110230_2.png) [@BrUnO\_XaVIeR](https://forums.unrealengine.com/u/BrUnO_XaVIeR)\
**Post date:** [March 29, 2018, 8:16pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/2 "2018-03-29T20:16:18Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![HeavyBullets](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@HeavyBullets](https://forums.unrealengine.com/u/HeavyBullets)\
**Post date:** [March 29, 2018, 8:51pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/3 "2018-03-29T20:51:13Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![MichaelTheAvali](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MichaelTheAvali](https://forums.unrealengine.com/u/MichaelTheAvali)\
**Post date:** [March 30, 2018, 7:13am UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/4 "2018-03-30T07:13:12Z")

</div>

> [@HeavyBullets](#):
>
> 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

---

<div class="post-metadata">

**Author:** ![MichaelTheAvali](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MichaelTheAvali](https://forums.unrealengine.com/u/MichaelTheAvali)\
**Post date:** [April 2, 2018, 1:18pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/5 "2018-04-02T13:18:04Z")

</div>

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

 ![79cf136d0f67ef9d397b5a2228e0e600.png](https://d3kjluh73b9h9o.cloudfront.net/original/3X/b/5/b53c7df8adb65de6dee9e012d17c2d318a3ddc4a.png)

While a loop ended up like this

 ![3ea49eb57ef19856842ff5c221e631b8.png](https://d3kjluh73b9h9o.cloudfront.net/original/3X/f/7/f7f464cc2fef5faaabda97680fa4ff92569f6224.png)

so i need help attempting to fix this

---

<div class="post-metadata">

**Author:** ![Adam\_Kareem](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Adam\_Kareem](https://forums.unrealengine.com/u/Adam_Kareem)\
**Post date:** [August 18, 2018, 5:04am UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/6 "2018-08-18T05:04:03Z")

</div>

Hey\*\* [10michael01](https://forums.unrealengine.com/member/324580-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 😉

I got some help from this post: [Calculating floor angle, char-movement - Character & Animation - Unreal Engine Forums](https://answers.unrealengine.com/questions/350641/calculating-floor-angle-char-movement.html)

---

<div class="post-metadata">

**Author:** ![Adam\_Kareem](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Adam\_Kareem](https://forums.unrealengine.com/u/Adam_Kareem)\
**Post date:** [August 18, 2018, 5:11am UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/7 "2018-08-18T05:11:32Z")

</div>

Conceptually, it’s basically, this:

[![](http://thejuniverse.org/PUBLIC/LinearAlgebra/LOLA/dotProd/projDeriv.png) ](http://thejuniverse.org/PUBLIC/LinearAlgebra/LOLA/dotProd/projDeriv.png)

And this:

[![](https://qph.fs.quoracdn.net/main-qimg-686b0d26dd5f11565c51d04d694187bb) ](https://qph.fs.quoracdn.net/main-qimg-686b0d26dd5f11565c51d04d694187bb)

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

---

<div class="post-metadata">

**Author:** ![Agln](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Agln](https://forums.unrealengine.com/u/Agln)\
**Post date:** [August 20, 2018, 8:10am UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/8 "2018-08-20T08:10:13Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![anon38428815](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anon38428815](https://forums.unrealengine.com/u/anon38428815)\
**Post date:** [August 23, 2018, 11:38pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/9 "2018-08-23T23:38:20Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Gamerz31w](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Gamerz31w](https://forums.unrealengine.com/u/Gamerz31w)\
**Post date:** [March 1, 2020, 3:07pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/10 "2020-03-01T15:07:36Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Gamerz31w](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Gamerz31w](https://forums.unrealengine.com/u/Gamerz31w)\
**Post date:** [September 11, 2020, 11:57am UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/11 "2020-09-11T11:57:18Z")

</div>

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).

---

<div class="post-metadata">

**Author:** ![Wrench1605](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Wrench1605](https://forums.unrealengine.com/u/Wrench1605)\
**Post date:** [April 19, 2026, 7:06pm UTC](https://forums.unrealengine.com/t/how-do-you-make-the-sonic-slope-physics-360-movement/108763/12 "2026-04-19T19:06:19Z")

</div>

I know this was 8 years ago but,

Did you modify the actual default Charcter movement input? how did you get sonic to move actually up the wall?

I’ve been using the set gravity direction node but I can’t get the movement on the wall to feel good. I go a tiny bit more in detail here: [How to do 3D Sonic / Rollin' Rascals Physics](https://forums.unrealengine.com/t/how-to-do-3d-sonic-rollin-rascals-physics/2716467)

Anyones help is appreciated, thank you.
