Smooth VR Hand Motion - Controller Jitter Filter + Multiplayer Sync
Stop shaky, jittery VR hands. Reduce VR controller jitter with a runtime 1€ (One Euro) filter, and keep networked hands smooth across multiplayer - drag-
and-drop, no C++ editing.
- Video Demonstration (Before & After Showcase)
- Full Documentation
The Problem:
Raw VR controller tracking is noisy, so your VR hands come out shaky and jittery, even when the player is holding still. That shake shows up exactly when it hurts most: lining up a two-handed weapon, pressing a precise UI keypad, or holding a flashlight steady in a dark corridor. In multiplayer it gets worse: network updates turn other players' hands into stuttering, rubber-banding proxies. This plugin stabilizes and smooths that motion at runtime.
The Solution:
Smooth VR Hand Motion is a drag-and-drop C++ component that applies the industry-standard 1€ (One Euro) low-pass filter to your motion controllers. It tames micro-jitter when hands are slow or still, then backs off automatically during fast movement so you don't add noticeable lag. Pair it with the included replicator component to keep networked hands smooth without fighting Unreal's tick order.
Features
1€ (One Euro) filtering - reduces micro-jitter at low speeds, stays responsive at high speeds
Runtime control - toggle smoothing and change strength from Blueprint mid-game
Split location / rotation tuning - damp rotation for a steady scope while keeping position fast and responsive
Drag-and-drop multiplayer replicator - locally smoothed transforms synced to the server via lightweight RPCs; remote hands interpolate cleanly
Native C++ - runs in its own tick path; attaches to any UMotionControllerComponent or derived class
Blueprint-friendly - no C++ editing required to set up
Setup
Attach the Hand Smoothing Component under each Motion Controller Component, start with the default values, and tune in-editor (can be changed at runtime).
What it does (and doesn't)
A 1€ filter reduces visible jitter by trading a small amount of latency. Tuned well, the tradeoff is imperceptible. It manages tracking noise intelligently rather than "deleting" it. The defaults are a solid starting point for most projects.