I’m making a Sonic Engine, and I’m using a custom character controller that relies on an AlignPostion constraint to keep the player upright, Issue is: the MaxAxesForce is always (0, inf, 0).
This wouldn’t be a problem if the player was only capable of walking on flat surfaces; but if you know about Sonic games, you know that Sonic can run on walls and ceilings.
The reason why the MaxAxesForce is (0, inf, 0) in the first place is because of the fact that the player will be locked in place if the X or Z values are tampered with, and the Y has to be large in order to combat gravity, keeping the player from falling over.
This works in theory, but on slopes (and especially on walls) the player loses control over the character due to the fact that the Y is never changed. here’s a mock up of what is going on
Since the player is constantly being offset by the Y on walls, they cant move “forwards”, and they aren’t being offset properly because the Y position (from their POV) has become the Z position.
I’ve tried getting the HRP’s upVector and offsetting it based on that, but that doesn’t seem to work, so any ideas would be appreciated!
Thank you in advance!
