As the tittle says im working in a mechanic where my character can walk on any surface using only with blueprints,
A little context first. As far as I have read in forums, this type of work requires to either; Rewrite the Gravity in the Engine; Create custom components in c++; Create new Classes in c++; Rewrite the X Y Z planes of the engine.
In a nutshell c++, something I’m not very skillfull so i decided to give it a try and find a workaround with BPs.
My results so far
My Character can Walk on special walls as long as the capsule trace detects it in front of him. It wil call the event to move the capsule component to the location of the hit and make the hit normal its Z axis, set. the movement mode to flying and, also in will uncheck the camera “Orient Rotation to Movement” to keep the camera behind the character so it can rotate aswell and finally it sets a Planar constrain to the Up and Right vector of the Wall Normal.
After that, an event tick will execute a trace to the current “negative up vector” to get location and normal of our current walkable floor, also it will update the constrain of the planes and set the location and the rotation accordly to the trace location.
As for coming tweaks, i like that the camera also rotates, so i’ll have to implement root motion to turn the character in the direction of its velocity. Also an interpolation of floor degrees is necesary to transition fron diferente angle floors smoothly. So I’ll keep uptating!