
OmniWalk – Arbitrary Gravity & Surface Adhesion Framework – Unreal Engine
OmniWalk is a high-performance C++ framework for Unreal Engine 5.5+ that delivers “Impossible Locomotion.” Designed to replicate the high-fidelity magnetism found in titles like Ratchet & Clank and Dead Space, it allows any character to traverse arbitrary geometry — walls, ceilings, pipes, and planets — with zero technical friction.
While UE5.4 introduced basic multi-directional gravity, OmniWalk solves a large number of remaining “showstopper” problems, as follows:
– Arbitrary surface walking by driving SetGravityDirection from live surface normals (walls, ceilings, spheres).
– Surface detection and transition logic (multi‑point traces, wall detection, normal averaging, cooldown smoothing).
– Adhesion force to prevent popping off convex or inverted geometry.
– Gravity‑relative input mapping so movement aligns to the camera on any surface.
– The “Singular Component”: No-code setup. Automatically hijacks Pawn settings, stabilizes camera gimbals, and remaps input vectors to surface planes.
– Gimbal-Free Solver: Custom camera modifier logic eliminates control inversion and view-locking at ±90° pitch.
– Surface-Projected Input: Intercepts and re-projects movement inputs onto triangle normals to prevent “capsule pinning” against vertical walls.
– Slate Telemetry: Dedicated editor debugger for real-time visualization of gravity vectors and alignment quality.
– Strafe/Follow toggle that works correctly under arbitrary gravity.
– Auto‑injection via tags for no‑code adoption in levels.
– Editor tools (example level generator, debugger telemetry).
The “Zero-Config” unified component
Unlike competing frameworks that require rebuilding your character from a specific parent class, OmniWalk features a unified component architecture.
Drop-In Integration: Drag the OmniWalkPro component onto any ACharacter (Pawn, MetaHuman, Synty, etc.).
Auto-Hijack Logic: Upon BeginPlay, the component automatically configures Pawn settings (Yaw usage, floor angles), injects a Camera Stabilizer, and intercepts the Input Buffer to project world-space movement onto local surface planes.
Key Technical USP’s
Native 5.4+ Gravity Integration: Leverages the re-designed CharacterMovementComponent gravity architecture for frame-perfect physics — not forces-based hacks.
Gimbal-Free Camera Solver: A custom C++ Camera modifier resolves the “Euler Singularity.” Mouse/Stick look remains intuitive and non-inverted, even when standing upside down on a ceiling.
Arbitrary Surface Adhesion: No Volumes required. Walks on any StaticMesh, DynamicMesh, or Landscape normal via optimized trace-averaging.
Input Projection Technology: Automatically “steals” world-space movement input and flattens it against the current surface normal, preventing the character from becoming “stuck” against vertical walls.
Slate Telemetry Debugger: A dedicated Editor window (Window > OmniWalk Debugger) provides real-time telemetry on gravity vectors, alignment strength, and trace hits.
Technical Specifications
Performance: All core logic is written in C++ and executes in TG_PrePhysics, ensuring zero latency between surface detection and movement integration. Requires the Enhanced Input plugin to be enabled.
Orientation Math: Uses Quaternions (QInterpTo) and Slerp-normalization to handle 360-degree transitions without gimbal flips.
Procedural Demo Included: Includes a C++ Helix-Generator that constructs “impossible” walking paths at runtime to demonstrate system stability across extreme centripetal forces.
Package Contents
Runtime Module: Core Adhesion Component, Camera Stabilizers, Input Hijacker, and World Subsystem.
Editor Module: Slate UI Telemetry and Debugging tools.
Source Code: Fully commented C++ code.
Example Content: Procedural demo level and a “Zero-Touch” implementation guide.
Features:
Native 5.4+ Gravity: Utilizes CharacterMovementComponent::SetGravityDirection for frame-perfect physics integration.
Arbitrary Adhesion: Walk on any Static Mesh, Dynamic Mesh, or Landscape via optimized surface-normal tracing.
Gimbal-Free Solver: Custom C++ Camera Modifier resolves the Euler Singularity, preventing view-locking at ±90° pitch.
Input Hijacking: Intercepts raw movement input and automatically re-projects vectors onto the current surface plane.
Code Modules:
UOmniWalkPro (Main Actor Component)
UOmniWalkCameraModifier (View Stabilizer)
UOmniWalkSubsystem (Auto-injection World Subsystem)
AOmniWalkPlayerController (Base Input Solver)
Blueprints: 0
Number of C++ Classes: 8
Network Replicated: Yes (Standard CMC Replication)
Supported Development Platforms: Windows
Target Build Platforms: Windows, Mac
Supported Unreal Engine Versions: 5.6 – 5.7
Example Project: Included (Procedural Gauntlet Demo Level).
Important/Additional Notes:
Prerequisite: Requires the Enhanced Input Plugin to be enabled.
Functions on any actor derived from ACharacter.
Procedural Demo Helper: Includes a C++ Helix-Generator for creating complex testing environments programmatically.
Recent Comments