AAA Wall Detection System (THE LAST OF US PART - 2 Style) | Unreal Engine 5.8
Hey Patrons! đź‘‹
Hope y'all doing great! One of the biggest struggles when working with advanced trajectory-based locomotion systems like Epic’s GASP (Motion Matching) is handling wall collisions. Out of the box, Motion Matching doesn't care about your physical capsule velocity—if you push forward into a wall, your character awkwardly runs in place.
Today, I’m officially dropping the ultimate fix: a completely modular, drag-and-drop AAA Wall Stop & Slide System built 100% in Blueprints!
Inspired directly by the hyper-realistic movement in The Last of Us Part II, this system intercepts your raw player inputs and cleans them up before they ever reach your movement logic or trajectory components.
Watch the SHOWCASE VIDEO on my Youtube Channel-
https://youtu.be/EL4s7sHAFV8
⚙️ Key System Features:
Contextual Wall Stopping (Deadzone Check): If a player runs directly head-on into a flat wall (using a specialized -0.95 Dot Product calculation), the system instantly kills the input vector. Means No movement, complete Idle.
Vector Projection Deflection: If the player approaches a wall at an angle, the system mathematically calculates the wall's surface normal and automatically deflects the movement vector. This makes the character smoothly slide and glide along the surface seamlessly.
Input Conflict Prevention Filter: Solves the Enhanced Input override issue. If opposite keys (W+S or A+D) are accidentally or intentionally pressed together, the system cleans the input to a perfect zero, stopping character twitches cold.
This is what Naughty Dog did in THE LAST OF US PART 2.100% Modular Actor Component Architecture: Zero messy logic inside your Character Blueprint. To use this in your current or future projects, you literally just need to drag and drop the component into your character, wire it into your IA_Move graph, and you are ready to roll.
Ultra Performance-Optimized: Built completely without Tick events. It runs purely on-demand when input is triggered using highly lightweight algebraic math nodes (Dot Product, Project Vector on Plane).
📦 What’s Included in the Download:
The Clean AC_WallDetection Component: Ready to migrate.
Commented Blueprints: Beautifully organized with captions so you can see exactly how the camera-space math and deflection pipelines function.
Thank you all so much for your incredible support. It’s because of you guys that I can spend time breaking down these AAA mechanics and building clean, marketplace-ready tools for the community.
DOWNLOAD THE FILES:
Comments (6)
Amazing work!
Thank you so much!
Hi, would it be possible to request a tutorial in the future showing how to integrate custom animations into GASP, starting from your retargeting project using Mover and CMC? Specifically, a short tutorial on integrating a pickup animation or a simple punch animation—including input binding and damage application—so it can serve as a foundation for building more complex mechanics. Alternatively, if you know of any existing tutorials that already cover this, could you recommend them?
Yes it would be possible, but I can't guarantee when such tutorial will come out. Because I also need to balance my time schedule etc yk. But I will make such tutorial to get started with the GASP system. :)
Cool! I'm working with your UE5 Manny retarget gasp version. Does this easily transfer to that project?
Thanks, and yes just migrate and add that component to the CBP. Call SET MOVEMENT INPUT function at IA_MOVE. thats it
